日期:2014-05-20  浏览次数:20684 次

ZendFramework学习第三章(核心组件—动态加载文件与类)附加学ZF感慨!

        周末大家是不是过的和happy呢?嘿嘿,同样我也很高兴又到周一了,又可以发文章写博文,这个到这里有人可能就开始疑惑吭,会说:周末不能发文章么。这个嘛,周末时间我一般不做有关学习的事,我建议周末有时间起来早早的,散散心,吃个营养早点,回到屋,打开笔记本玩会忍了5天没有玩的游戏。哈哈,没法个人爱好。

        在这次文章中我对学这个ZF表个态,也就是我的个人体会。刚一开始学ZF的时候吧学的是搭建。搭建也没什么学的吭,然后呢接触的第一个重要的模块就是控制器,满怀信心的看了两边书发现竟然看不懂,完全不理解什么个鸟意思,当时就感觉自己心有余而力不足呀。请教了各路大神之后依然闹不懂,他们解释无非就是给你copy下手册上的知识点,在这我要吐槽一下,不要解释给别人问题的时候照搬手册或者书,因为人家没有傻到连手册都不知道看,给人家解释的时候用点心,比如说举个例子什么的,没事别乱发言,既然决定帮人家一把了,就用点心,好好回答问题,送佛送到西,虽然没什么实际的回报,但别人会记在心底的。做事不怕麻烦才会更稳嘛!接着回来,控制器不怎么了解,然后我就直接打建好项目后跳过控制器往后看,既然不了解就先学后边的呗,没准学完后边的前边的顽固知识点就会迎刃而解。为了减少心里压力,我把ZF就分为了五部分,那五部分相信大家已经了解了,也就是学ZF呢需要了解六个知识点就够了。第一章呢就是搭建问题,从第二章呢介绍MVC组件,第三章开始核心组建部分,第四章为数据库组件,第五章是服务类组件,第六章是国际化,最后自己再试着做一个简单的增删改查的小项目,嘿嘿,ZF也就学完了。

        学习一样知识其实没多少窍门,尤其是编程,最重要是试。这和做事情是一样的,你一直在问,问别人,问自己。有时间等别人回答不如自己试一试,雷不死的。比如说:哎呀你看这代码怎么个意思,没关系拿来试一试,看看会有什么灵异事件发生。。 不能光说这段代码我理解了。爱信不信,有的时候你看别人的代码你理解了,但是让你照着别人的代码打一遍没准都出不来效果,这就需要我们找原因,亲自去试一试,不要怕麻烦,学知识嘛。

        好了下边我也不跟大家啰嗦什么了,总之呢今天说这么多。。。昂。我估计没几个人静下心来看我文章闲扯淡这部分,也就是捡着我知识点部分粗略的看一下,没人看,行,就当我写给自己的,小小的记录我曾经这伟大的感慨历程。 自己的心得,想说呢就说出来,谁爱吐谁吐去,谁爱骂谁骂去。反正我我痛快了!

 

        今天给大家介绍动态加载:

        所谓动态加载呢就是把一个php文件或类通过特殊语句加载到其他文件中的过程。好处呢就是比如果你自己写了一个类,通过动态加载可以将他在多处使用,就不用你没用到一次写一次了。大家都知道在ZF中包含着大量的文件与类,在使用这些文件与类时你可以通过Zend_Loader组件对其他文件与类实现动态加载。这个组件不仅可以实现文件加载,还可以判断文件是否可读。我在这也不卖关子了,这两个方法就是Zend_loader::loaFile()方法和Zend_loader::isReadable()方法,从不一样的英语字义上就能看出他们的功能。

动态加载文件——

加载文件都知道是一个文件加载到另一个文件中,那么动态的呢,就是可以将变量所指代的文件加载的过程。

方法:Zend_Loader::LoadFile($filename,$dirs=null,$once=false)

其中,$filename就是文件名,$dirs为文件所在的目录,默认是空,则程序会自动到php设置的include_path目录下进行查找。$once为布尔型变量,默认为false。当值为true时,则指定的文件只会加载一次,反之会重复加载。如果文件加载失败,该方法将会抛出一个Zend_Exception异常。

 

方法:Zend_Loader::isReadable($filename)

此方法就是验证额外年间是否可读,在对文件进行操作之前小小的验证下还是有必要的。只有文件可读才能对其进行操作嘛。次方法返回的值也是布尔型。

 

 动态加载类——

了解加载文件,那么加载类和这个加载文件查不了多少。

方法:Zend_Loader::LoadClass($class,$dirs)

其中,$class为指定的类名;$dirs为包含类的文件所在的路径及文件名。其中的文件名(也就是你创建类的文件名)格式为"$className.php" (即文件必须与文件中的类同名),通过次方法可以检查文件中的类是否存在。

在使用此方法值钱呢,要注意类名竟会根据下划线(下划线作为目录的分割线)对应到相应目录下的php文件,如果Zend_Controller_Action会指向Zend/Controller/Action.php。

如果参数$dirs是一个字符串或数组,则该方法会根据顺序查找相应的目录,并加载第一个配置的文件。如果文件不存在,该方法还会到inculde_path指定的目录下进行查找。

和LoaderFile类似,如果加载不上,也会抛出一个Zend_Exception异常。

 

 

永远记得路飞说过的一句话,很有气势,灰常有魄力,那就是: 那又怎么样!

 

最后说声中国奥运加油!!奖牌不算什么,重要的是这四年你们努力了,拼搏了!

(八个避孕套!)