zend新建php文件夹,php – 逐步转换为zend项目的基于模块的文件夹结构,赏金来了...

以下是我尝试按照您的示例(从头开始)所做的事情:

$zf create project .

$zf create module product

$zf create module default

然后我将控制器,模型和视图从./application移动到./application/modules.

接下来我打开了application.ini,并替换了这一行(它告诉ZF在非模块化应用程序中找到控制器的位置):

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

有:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

告诉ZF在哪里可以找到模块.

然后我手动为产品模块创建了一个索引控制器,这样我就可以测试它是否正常工作了.然后我打了http://localhost/index/index以查看默认模块索引操作是否仍然有效,但它没有,而是我得到了错误:

Fatal error: Uncaught exception ‘Zend_Controller_Dispatcher_Exception’ with message ‘Invalid controller class (“Default_ErrorController”)’ in …

听起来这就是你要去的地方.

有两种方法可以解决此错误,文档很容易产生误导(可能甚至是错误的).它states:

Note that in the default module, controllers do not need a namespace prefix. Thus, in the example above, the controllers in the default module do not need a prefix of ‘Default_’ — they are simply dispatched according to their base controller name: ‘IndexController’ and ‘FooController’. A namespace prefix is used in all other modules, however.

但很明显上面的错误表明ZF正在寻找名为Default_ErrorController的ErrorController类.要解决此问题,您可以执行以下两项操作之一:

>将应用程序/模块/ default / controllers / IndexController.php的类名从IndexController更改为Default_IndexController,将application / modules / default / controllers / ErrorController.php从ErrorController更改为Default_ErrorController

>或删除此行:

resources.frontController.params.prefixDefaultModule =“1”

来自application.ini.这一行告诉ZF在默认模块类上使用’Default_’命名空间,所以没有它它只会查找’IndexController’.我选择了后一个选项,然后http://localhost/index/index按预期工作.

在你的情况下你说你在/ index / index有一个空白页面,这意味着:

>你有一个不同的问题

>您在开发模式下禁用了错误

>您正在生产模式下运行,默认情况下禁用错误(最有可能)

要检查最后一个选项,请打开application.ini并在生产部分暂时将phpSettings.display_errors从0更改为1.如果你得到我上面的错误,希望你能够让一切正常.

我希望这是有帮助的.我只能说是不要过于依赖Zend_Tool来管理您的应用程序 – 它无法完成所有事情,而且通常手动移动事物比尝试通过所有事情更容易. zf命令;特别是在重组时.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值