PHP教程之PHP.MVC的模板标签体系(二)
毕业设计作品自己个人还是觉得比较满意的,尽管有些功能考虑的不全面,也没有很好的实现。 The Php.MVC Tag Action DispatcherTagActionDispatcher是一个尺度的ActionDispatcher类的完成,它撑持会见根基模板标签.TagActionDispatcher类撑持不异的ActionObjects纠合和ViewResourcesConfig属性作为默许的ActionDispatcher.TagActionDispatcher类能被用在带有或没有带有模板标签体系上,虽然因为它的额定处置会形成小的功能下落.
模板标签库是PHP.MVC框架布局的子体系.模板标签库结合TagActionDispatcher一同任务来撑持一些复杂的模板标签.
上面的图表显示了PHP.MVC模板标签体系的总揽.右边展现的是模板标签体系的法式流程.右侧是TagActionDispatcher的法式流程,还有标签模板是如何使这些类停止交互.
1.初始化
当掌握器传递掌握抵达TagActionDispatcher,一些初始化触发去设置ActionObjects和ViewResourcesConfig属性为了利用咱们的模板:
从request中从头取得$form,$errors和$data对象,假如这些对象中的恣意一个已在之前被创立(好比在Action类中),那末对象如今将在资本模板中不成见,不然对象将被设置为NULL.
从头取得ViewResourcesConfig对象的参考,它包括了设置装备摆设参数.
设置在ViewResourcesConfig参数中指向模板源文件和编译的模板文件的途径.
2.设置标签页面
模板源文件的扩大名(多是".ssp")被用来和ViewResourcesConfig->tagFlagStr参数比拟较来决意是不是这个页面需求处置,不然页面将被处置为尺度(无标签)模板文件.咱们能在view-resources元素中设置装备摆设标签文件扩大名,就像如许:
<view-resources
...
tagFlagStr = ".ssp"
tagFlagCnt = "-4"
...
</view-resources>
tagFlagStr唆使了标签模板源文件能被预处置,好比:myPage.ssp.这个扩大名触发标签处置.属性tagFlagCnt界说了文件名开头的字符数,包含"."(xxxYyy.ssp).据个例子,-4代表源文件名最初4个字符.默许值是.ssp和-4,因而假如咱们利用一个模板文件名像myPage.ssp,咱们不需求设置这些参数.
3.处置标签文件
模板标签体系决意是不是运转标签处置器,要依据ViewResourcesConfig->processTags属性.假如这个属性为真,模板页(及它所包括的页)将被标签处置器类所处置,不然标签处置器不会被挪用.开辟者只需将它在开辟中将其设置为真便可,假则不处置.但要注重的是当processTags属性设置为真,修正过的标签页才会被编译(这依附于compileAll属性设置).咱们能界说processTags属性在view-resources元素,就像如许:
<view-resources
...
processTags = "True"
...
</view-resources>
注重,它的默许值是假.
4.编译模板页.
假如TagActionDispatcher决意模板页将被处置,那末它会传递掌握给模板标签体系.如今模板标签体系将决意是不是只编译修正过的页,仍是编译一切页.这类行动利用ViewResourcesConfig->compileAll属性来界说.咱们界说compileAll属性就像如许:
<view-resources
...
compileAll = "True"
...
</view-resources>
这个属性默许为假.
5.只编译修正的页.
假如compileAll属性设置为假(默许值),那末只会编译修正过的页.据个例子,假如被恳求的页面自从前次被恳求以来被修正过,此页将会被编译.
6.编译一切的页.
假如compileAll属性设置为真,模板标签体系将老是编译页面(包含包括的页面)不管此页面自从前次恳求以来是不是修正过.开辟者利用在开辟中利用这个选项可以包管一切的页面都被处置.
7.处置VIEW资本.
在处置完模板页以后,掌握权回到TagActionDispatcher.被恳求的VIEW资本(模板文件)将被任何其他的正轨PHP.MVC模板文件所处置.TagActionDispatcher从头取得被编译的页(包含包括的页面)而且将页面输入给用户的阅读器.假如模板标签体系没有被挪用,TagActionDispatcher将被恳求的页面作为正轨的VIEW资本来处置.好比TagActionDispatcher能被用来取代尺度的ActionDispatcher.
多去关于PHP的网站,尤其有很多经典的文章,多读读这些文章显然是有好处的。 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 实践是检验自己会不会的真理。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
页:
[1]