php – Zend应用程序模型不是自动加载的
发布时间:2020-12-13 16:11:56 所属栏目:PHP教程 来源:网络整理
导读:我开始使用名为Api的模块中的模型,使用以下内容 classname / filename约定: filename: {project}/application/modules/api/models/Account.phpclassname: Api_Model_Account 正如预期的那样,他们很乐意通过框架自动加载. 我决定其中一些模型会更好, 从组织
我开始使用名为Api的模块中的模型,使用以下内容
classname / filename约定: filename: {project}/application/modules/api/models/Account.php classname: Api_Model_Account 正如预期的那样,他们很乐意通过框架自动加载. 我决定其中一些模型会更好, 我移动它们并重命名它们: filename: {project}/application/models/Account.php classname: Application_Model_Account 但是,它们不是自动加载 – PHP会抛出一个未找到的类.我检查并确认了我的 [production] appnamespace = "Application" 因此,应用程序命名空间是“应用程序”,但模型中的 只是为了让事情变得有点疯狂 – 应用程序/插件中的插件正在自动加载. 测试: <?php class Application_Model_ExampleTest extends AMH_Test_PHPUnit_ControllerTestCase { public function testLoad() { $moduleModel = new Api_Model_Product(); $plugin = new Application_Plugin_ModuleErrorControllerSelector(); $applicationModel = new Application_Model_Example(); } } class AMH_Test_PHPUnit_ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase { public function setUp() { $this->bootstrap = new Zend_Application( APPLICATION_ENV,APPLICATION_PATH . '/configs/application.ini' ); parent::setUp(); } public function tearDown() { $this->resetRequest(); $this->resetResponse(); parent::tearDown(); } } 组态: [production] appnamespace = "Application" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" includePaths.library = APPLICATION_PATH "/../library" phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 phpSettings.date.timezone = "Australia/Adelaide" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.frontController.params.displayExceptions = 0 resources.modules[] = "" [staging : production] [testing : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 [development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 resources.frontController.params.displayExceptions = 1 相关文件夹路径: <project name>/ application/ models/ Example.php modules/ api/ models/ Product.php plugins/ ModuleErrorControllerSelector.php 错误信息: PHP Fatal error: Class 'Application_Model_Example' not found in /var/www/accounts.amh.localhost/tests/application/models/ExampleTest.php on line 9 这是使用Zend Framework 1.10(Ubuntu 10.04的包) 解决方法
不知道为什么这种方式不加载.但另一个建议是你可以在包含路径中设置模型.
set_include_path('.' . PATH_SEPARATOR . 'application/models' . PATH_SEPARATOR . get_include_path() ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |