其实zend做的只是把一个超级牛的专业phper的全部知识打包成一个程序包,提供给大家使用。当然这个phper的习惯不一定符合你的需求,只拿需要的内容吧。
这些都看过之后,可以自己挑部分源码出来,做自己专属的zend framework应用,或者专门做MVC的zend framework。
Access control list 实现角色对资源的权限模型。只是个概念,我正在用的权限方式基本上跟acl差不多,acl在权限方面并没有什么创新的。而且需要去扩展acl要写更大量的代码。不如自己写。
验证,只负责验证,传说中有HTTP认证和支持openID。对我来说只是传说…验证就是去对比一下是或否,然后分别操作。
缓存。这个比较有用,最起码教给我们一种最简单的缓存方法,一对if else,有缓存,读缓存,没缓存读数据库存缓存。zend_cache有三大特色,也就是让你用zend_cache不用其他的缓存的三个优势。1标识缓存记录唯一性,省的自己做了。2生命周期,也省的自己做了。3条件执行…其实zend_cache最值得我们学习的是分开了前端和后端,这两个分别负责不同的事情,后端负责存储,前端负责参数等等。关于缓存,基本上是系统有,程序有,服务器有,连smarty都有…
传说中的操作配置,这个配置的操作在PHP中已经有支持,做的也不错。Config中最好的是可以读xml格式…其实能读什么和xml的配置是什么格式都是zend规定的。我看了他们最常用的DB的配置。那种结构不是普通的配置文件。更多的层次。更多的规则。也许会更清晰吧。
帮助命令行程序解析它们的选项和参数。这句是抄来了。确实和现实的开发没什么关系,有人用过吗?听说可以把这句(rm * -fr)解释出来,但是解释出来后干什么???解释它做什么???
这个是最关键部分之一,zend最核心内容之一,最让PHPER感到zend可用的部分之一,跨时代的php产物之一。内容太多了。需要注意:NowaMagicController::blogmmmyyyAction()在URL中是这样的bkjia/blog-mmm-yyy ,或者中间是用 。 分隔开。所以建议还是写成这样:NowaMagicController::blogmmmyyyAction()。当然还有很多很多很多的地方需要注意。zend的规范实在是多了些。
这个是处理钱的问题的,就是根据不同的地区,使用不同的货币格式。$1000 or ¥1000。
典型的西方式的日期解决方案,就是关于日期型数据的操作。
大多数项目所必须的,既然结合了zend来开发项目,就要看一看zend_db提供的类到底比我们的好在哪里。Zend_DB使用的是pdo,所以一定要打开这个扩展…费话。仅次于Controller的zend第二大被经常使用的类。包括各种数据库的操作封装,连select都有专门的使用方法。再也不用写完整的sql语句了?不好吧。反正我用到的只是其中一少部分。包括连接。查询。特别的插入,更新,删除操作。
这个用于调试,简单的调试。相当于echo $some;当然它会输出更详细的信息。
异常处理,Zend使用过程中的异常。有兴趣拿DB测试一下,自己抛着玩。
Web应用吧,Feed中最需要看的就是rss和atom,感觉atom更现代一点,最少是看上去比rss更好一些。
各种乱七八糟的过滤。需要的时候去查一下,也许你会发现php的函数使用起来会比这个东西方便。只是也许。
这个东西似乎是为标准程序员准备的,所谓标准程序员就是一点也不考虑界面,当然标准程序员一定不是一个好的web程序员。没有web程序员不懂html的。呵呵。这个意义对我来说不大,对其他人我就不知道了。用来生成一个html表单。
Gdata是Google Data的缩写,当然也就是google的东西,但是不包括著名的gmail,search,map。这个只是google data API。对google的API感兴趣的可以研究一下。俺不是GOOGLE迷…也不是baidu迷。
这部分是我目前主要研究php的方向。当然zend做了很多有意义的事情。zend_http很像php的curl,感觉没有curl强大,不过curl的操作有点不透明,使用起来感觉对了都不知道怎么对的。这个东西还需要改进啊。比如可以在这个东西的基础上开发一个检测http的类。呵呵。我比较喜欢。
传说中的个人身份认证信息。只是传说中的,应用很少的。
JavaScript Object Notation,这个东西负责对json的操作,其实就是编码解码…对json感兴趣的研究一下。我是没什么兴趣…
一个和view有关的,实现了二级视图的东西。这个我更习惯于使用zend controller或者shtml来解决。方法不同。
动态加载,当然是和静态的include做对比。可以根据需要加载。当然这是一个模糊的概念,不过确实省去了不少的工作。很不错的代码。效率?呵呵。
国际化?本地化?就当成是国际化的东西吧。谁想知道马永占翻译成意大利语是什么?反正我是用不到。
通用的log记录。很像操作系统内的log也很像apache里的log。有点像我写的log…Zend_log里面最好的两个概念:1分级error级notice级等等,zend分了8级,2保存log,zend可以把log放到输出,数据库,文件当中。当然我们最常用的就是输出到文件。zend_log给了我不少的启发。用于改进我的MyZ_log。很有用的东西。
目前我在用的是一个php写的smtpMail类…当然zend也是php写的…如果你正好要用mail,或者觉得原来的mail函数不够好的话,建议看看zend_mail。
用于转换,最简单的例子是把英尺转成公尺。对于我们这样的小庙…用不上啊…
内存管理,恩。这个来头不小。程序级的内存管理。不了解…底层程序员也许会关心这个程序级的内存管理吧。
多用于mail函数的mime,当然也可以自己使用。
OpenID啊。很火的东西,目的是整合世界上所有的帐号,不过现实的情况是每个厂商也不愿意被整合。都想着怎么整合别人。所以这个东西发展的不是很好。
Pdf一种文件格式,是adobe的,就是电子书最经常用的格式。zend被宣传说支持pdf操作,我想这东西有必要宣传吗?难道是zend的主要功能?太小题大做了吧。
将一个东西(变量,数组,类…)注册到全局应用当中,就是write once use anywhere ,当然这个anywhere是指你的整个项目。开销是不是大了些?但是如果你经常用的话,这样做会很有帮助。免去了每次使用都要new class。
这个来头也不小。zend里面到处都是经典的程序。rest类似于xmlrpc和soap,是一种目前最新的web service,使用似乎没有xmlrpc多。也没有soap多。传说中我还有一份rest之父的论文…传说中的zend。
基于文本的搜索引擎,当然是改编于那个Lucence,现在开始怀疑,zend是不是象称霸php。怎么什么都写…没试过。
为其他zend的类提供支持。是一个基础类。当然也可以自己拿出来用。也许你能开发出来比rest更优秀的web service靠这个东西…
网络上的除了google的各种服务,为啥要把google单拿出来呢?不好实现?还是google太强大了…这些我是一个也没用过…会用到的。当初在csdn看到一个牛人用delicious在自己的csdn博客上加上了相关文章…(我多次请求csdn,加上相关文章,结果石沉大海…这老兄真的很猛。csdn给不了我们的。我们自己做。没有枪没有炮,我们自己造。)
这个是个好东西,提供存储session和提供session的API,当然这个是为了跨域名,跨服务器准备的。当然也能代替传统的session_start()…如果你想这么做的话…
解决了语言问题。。。最另我高兴的是看到了zend使用.mo文件。这个mo文件是在drupal里的语言包。zend做的不错。
验证url的类,这个也是基础,是被其他zend成员调用的。也能自己用。
校验器,前面有个filter是过滤的。这个是验证的。本质都是一样的。是判断是否符合规则,然后validate是返回对错。filter是直接把不符合的地方去掉。当然我们大家一定都有自己的过滤和校验器。好好的参考一下zend ,然后进行修改吧。
这个是zend里源码最好读的一部分…是最简单的。建议无论是否想学习zend都去看一下…这样在和被人吹牛的时候就能这么说:zend啊。前几年我看过它的源码,写的不错…
Zend MVC当中一员。也能算上是五虎上将之一。不过在我这却没有被使用…我使用了smarty作为替换…感觉有点对不住zend,zend这么多东西,我只用了几个…哎…不过zend_view的helper很不错。可以替代手写,生成各种需要在view层显示的代码。
Web service,xmlrpc是最简单的一种。当然zend的这的类也是完成80/20使命。我想用的人很少吧。
Zend也挺符合2/8理论的,20%的程序被经常使用。剩下的用的很少。但是作为一个完整的framework,zend是经典的。