Wednesday, 2. September 2009, 00:39:40
Framework, Zend, PHP
Zend Framework 的组件,不少要用到 PHP 的扩展模块。
详情见:
http://www.mikaelkael.fr/doczf/zh/requirements.extensions.html我整理了一下其中比较常用的模块,列举如下:
apc
ctype
curl
dom
gd
hash
iconv
json
ldap
libxml
mbstring
memcache
mime_magic
pdo_mysql
pdo_pgsql
pdo_sqlite
posix
Reflection
session
SimpleXML
soap
SPL
Sqlite
xml
zlib
搭建环境,编译 PHP 的时候,最好把以上模块包含进去,以免用到的时候再次编译 PHP。
Tuesday, 4. August 2009, 06:20:43
Zend, PHP
一. render不指定render结果: {当前Module}/{当前Controller}/{当前Action}.phtml
$this->render('bar') ;结果: {当前Module}/{当前Controller}/bar.phtml
二. forward$this->_forward('bar') ;结果: {当前Module}/{当前Controller}/bar
$this->_forward('bar', 'foo') ;结果: {当前Module}/foo/bar
$this->_forward('bar', 'foo', 'hoge') ;结果: hoge/foo/bar
$params = array(
'a' => '1',
'b' => '2'
) ;
$this->_forward('bar', 'foo', 'hoge', $params) ;结果: /hoge/foo/bar/a/1/b/2
三. redirect$this->_redirect('/hoge') ;结果: /hoge
$this->_redirect('/hoge/foo') ;结果: /hoge/foo
$this->_redirect('/hoge/foo/bar') ;结果: /hoge/foo/bar
$this->_redirect('http://localhost/hoge/foo/bar') ;结果:
http://localhost/hoge/foo/bar$this->_redirect('http://localhost/hoge/foo/bar?a=1&b=2') ;结果:
http://localhost/hoge/foo/bar?a=1&b=2四. 特殊情况不使用 layout结果: $this->_helper->layout()->disableLayout() ;
不使用 view结果: $this->_helper->viewRenderer->setNoRender() ;
Wednesday, 3. September 2008, 00:23:31
Framework, Zend, CakePHP, PHP
Wednesday, 27. February 2008, 06:09:37
Symfony, Framework, Zend, CakePHP
...
在一个日本人的博客上看到《
Zendでも、Symfonyでもなく、CakePHPを選んだ10の理由》,题目翻译过来就是《不选 Zend, 也不选 Symfony,而选 CakePHP 的10个理由》。文中所列举的理由,比较有参考价值,因此整理翻译如下:
理由1 PHP4、5两头对应这个对开发者来说是值得庆幸的。
因为有时候客户现有的服务器环境,无法选择PHP的版本。这时候,如果原有的环境是 PHP4,Zend 和 Symfony 就鞭长莫及了
理由2 不依赖于 PEAR这个和理由1一样,可以确信自己所写的代码在什么地方都能运行。
还有就是,若有在框架之外还有依赖的东西,从开发环境到实际环境的移行,有时候会有意外的麻烦。
理由3 设置简单Symfony 由于依存于 PEAR,敲几个命令就能把环境搭起。CakePHP 则只要解压缩就OK了,
在设置简便这一点上,CakePHP 无疑高出一筹。
Zend 与其说是开发框架,还不如说是函数库群,光是设定就非常麻烦。
理由4 模型(Model)很智能Symfony 的 YAML 不能不写,
Zend_DB 的预先设置就很麻烦,SQL 也不能不写,这可不行。
理由5 不会用 mod_rewrite 也不要紧无法使用 mod_rewrite 的环境下,用近似的 URL 访问,发现也能正确动作。这是一个非常让人称谢的功能。
理由6 控制器(Controller)的参数非常出色CakePHP 下处理 get 参数,只需给控制器的 Action 方法准备好参数即可,它能自动传递,这是个出色的功能。
若结合 mod_rewrite,可通过
/user/index/userid001
这样的静态 URL 取得参数。
理由7 错误处理太亲切了缺少 Controller,或是缺少 Model,像这样根本性的错误,错误画面上会给出所需的最低限代码。初学者得感谢有这样的功能。
理由8 数据净化(Sanitize)方便每当进行数据净化(Sanitize)的时候,$this->这东西做不了。
h就行,相当轻松。
(
译者注:以上两句偶也不太明白)
理由9 日期输入很轻松Helper(v1.1是HTML, v1.2是Form)中有专门处理日期输入的方法,稍微改动一下就够用,在这种地方不用太费力气,是很具魅力的。
理由10 很容易集成第三方的制品只要把东西放在 vendors 下,然后在 bootstrap.php 中写一行 vendor(),就能在任何地方使用了。
大体上,若需在框架中实现比较麻烦的功能,选用现成代码那是理所当然。从这些方面考虑,CakePHP 实在是太棒了!
译者注:Zend、Symfony 和 CakePHP,这几个框架我也有过接触,实在是难以取舍。最近在修改一个采用 CakePHP 开发的项目,发现 CakePHP 确实有不少优点,这篇文章基本上说出了 CakePHP 的优点,所以和大家分享一下。