将Zend Framework项目移至Ubuntu并停止工作

时间:2011-01-17 17:58:21

标签: zend-framework ubuntu zend-framework-modules

我有一个Zend Framework项目,我开始在Windows工作了一段时间。它在Zend Server CE上运行,一切正常。在Windows机器之间移动它完全没问题。但是现在我想把它放在Ubuntu服务器上,仍然使用Zend Server CE。但它开始抱怨缺少控制器插件。但他们位于“正确”的位置。我想自动加载器会以某种方式混淆。

感觉应该是Windows应该在文件夹和文件上使用不区分大小写的名称。在正确的情况下,Zend Framework需要哪些文件夹? 查看标准项目布局的文件夹的小写名称。但是看看Zend Framework本身的资本首字母被使用了。可能还有Zend Framework自动加载器在复数表单文件夹名称上接受单数类名称的事实,如

Form_Foo位于forms/Foo.php

在我的项目中,项目的主要部分使用标准的小写样式。

application
  modules
    default
      controllers
      views
      models
      forms
      plugins
        controller
          acl
            Plugin.php  -- The class Plugin_Controller_Acl_Plugin in this file is not found on Linux
    foo
      controlles
      views
      models
      forms

但是在我的库文件夹中,我有一个Core文件夹,我有我的核心类,在那些我使用Zend Framework命名它们的方式

library
  Core
    Model
      User.php -- Contains the class Core_Model_User

快速测试似乎表明Zend Framework能够很好地找到这些类。

在Linux中的Zend Framework中,您必须在哪里使用正确的案例名称才能使自动加载工作?是否应该选择第一个资本名称,如

Application
  Modules
    Default
      Controllers
      Views
      ...

欢迎任何想法和提示。

1 个答案:

答案 0 :(得分:2)

“Plugin_Controller_Acl_Plugin”是唯一无法加载的类吗?如果是这样,你应该尝试在插件中的每个目录(如插件/ Controller / Acl)使用大写,因为自动加载器只将命名空间的“Plugin_”部分与“plugins”目录相关联,其他部分将被加载,就像其他类(保留大写目录名,只有下划线将转换为目录分隔符)。看一下Zend_Application_Module_Autoloader的默认设置,你应该在那里列出的目录下使用大写目录名(表单,插件等)。