ZF的module不错

  前面使用Zend framework开发的项目不算太复杂,目录结构和controller都相对简单,近期开始的东西涉及到子域名、多子系统,于是重新看了Zf的文档,发现了Controller里面的module功能很不错。

  先规划如下目录结构:
[coolcode lang=”php”]
docroot/
index.php
application/
default/
controllers/
IndexController.php
blog/
controllers/
IndexController.php
models/
views/

[/coolcode]
  然后在index.php里面写入类似下面的代码
[coolcode lang=”php”]
$front->setControllerDirectory(array(
‘default’ => ‘/path/to/application/controllers’,
‘blog’ => ‘/path/to/application/blog/controllers’
));
[/coolcode]

  可以通过 http://host/blog/controller/action 的方法来访问了。

17 thoughts on “ZF的module不错”

  1. default是默认的,就是不用写也行。

    另外,如果说是一个index.php处理多个host,可以自己在index.php里面根据 $_SERVER[‘HTTP_HOST’]来判断,然后设置不同的参数即可。

    不过感觉的确有些别扭,因为既然两个host,还是分开两个应用的好。

  2. 上周末有幸,能跟Michael大哥一起吃顿晚饭,聆听你的指点
    感觉到很是幸运,受益非浅,这周很忙,但时时回忆你所讲的,受益启发很大。

    也使我能安心好好做技术,经你一点拨,感觉做技术开发的人生一样也会很丰富。
    本来以为在互联网、SP之类的公司做技术很没有层次感,现在有了更深入的认识。

    感谢你的能开阔无私的跟后来的人分享你的经验、技术。
    以后一定向你学习,在技术方面提高自己,深入下去,在做人做事态度上胸襟开阔

  3. Michael,
    这种文件结构,公用的类怎么放置合适呢?比如:分页类、检测用户登录等。

    你基于ZF做的产品,目前性能和效率方面怎么样?希望再看到你的分析。

  4. 公用类放在include_path跟Zend目录平级的地方,或者任何其他目录,不一定全部都要放到models下,其实都是灵活的,并不是ZF的controller就限制了你不能使用PHP的其他特性和功能了。

  5. 没错,要灵活使用。
    目前公用类就是放到跟zend目录平级的地方。

    另一问题:
    你是怎么处理找不到页面/程序有问题这一类的错误处理呢?
    如果要把它们定向到一个页面怎么处理呢?

    谢谢!

  6. 现在用户贡献内容的成本提高了,我发现写留言提交后都要到另一个页面填验证码。
    并且填写正确的验证码后就到了一个不知所云的页面,想看看是否发送成功,只能重新www.toplee.com

  7. [Comment ID #15915 Will Be Quoted Here]

    错误捕获的方法一般两种:
    1、使用 $front->setParam(‘useDefaultControllerAlways’, true); 这样每次找不到的方法都会访问默认的controller,这个默认的controller可以通过$front->setDefaultControllerName(); 方法来设置。
    2、使用ErrorController的plugin,具体的可以阅读这个地方的文档,在ZF的RC1版本后,这个plugin是默认打开的。
    文档地址:http://framework.zend.com/manual/en/zend.controller.plugins. html#zend.controller.plugins.standard.errorhandler (7.5.10.1文档)

    不过我遇到过一些问题,比如使用第一种方法,会导致各个controller里面调用$this->_forward()方法的时候,指定任何controller参数都不会生效。在使用第二种方法时,按照官方文档会报错,$this->_getRequest()方法不存在。

    基本知道的就是这些。

  8. 请教一下博主Michael大哥,用ZF开发MIS系统,里面设置多个module,是不是在application目录下面设置多个目录,每个目录里面都有
    controllers/
    models/
    views/
    这样三个目录吗?

    能否给一个MIS系统的整体目录结构的例子

Leave a Reply

Your email address will not be published. Required fields are marked *

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image