php – 逐步转换为zend项目的基于模块的文件夹结构,赏金来了
我有250点的赏金,但系统不允许我立即启动它.
我正在寻找有关如何从应用程序文件夹包含模型,视图,控制器的左侧的常规文件夹结构到应用程序包含模块的右侧基于模块的文件夹结构的分步说明包含各个模块的文件夹,包含自己的模型,控制器. 我说“转换”是因为我认为zend不允许我们从一开始就使用模块架构创建项目,但如果确实如此,那将会膨胀,并且无需手动更改这些文件夹结构. 这是我迄今为止的经历 >当我创建模块zf create module产品时,将生成modules文件夹并在其中生成文件夹产品,并且还会生成该模块的视图,控制器和模型. 问题的一半解决了.但是当我尝试查看应用程序时,我从索引/索引视图中看不到任何内容.我也没有任何错误,但我什么都没看到.我怀疑这是因为应用程序不知道索引/索引视图已移动. >这曾经位于application / views / scripts / index / index.phtml 我猜我需要对application.ini或bootstrap.php或其他一些位置进行更改.那么究竟是什么步骤让这件事顺利完成并让它发挥作用?我正在使用最新的ZF 1.10.8.请从创建一个新的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以查看默认模块索引操作是否仍然有效,但它没有,而是我得到了错误:
听起来这就是你要去的地方. 有两种方法可以解决此错误,文档很容易产生误导(可能甚至是错误的).它states:
但很明显上面的错误表明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命令;特别是在重组时. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |