Zend Framework存储修改类的方法?

Pek*_*ica 1 php zend-framework zend-translate

我有一个使用Zend Framework和的项目Zend_Translate.

我不得不稍微改变标准的CSV适配器到Zend_Translate.现在我遇到了将这个改变的适配器放在哪里的问题.

默认情况下,适配器存储在

/Library/Zend/Translate/Adapter/Adaptername.php
Run Code Online (Sandbox Code Playgroud)

这也是我放置新适配器的地方.

但是,我不想用我的自定义扩展"污染"Zend库:我希望能够更新ZF而不必担心丢失文件; 我希望能够使用集中安装的ZF版本; 并且自定义适配器是我正在进行的项目的一部分,真的.

是否有Zend Framework处理此方法或指定替代加载位置的方法?

语言适配器使用加载

$this->_adapter = new $adapter($data, $locale, $options); 
Run Code Online (Sandbox Code Playgroud)

($adapter将在哪里Zend_Translate_Adapter_Adaptername)

因此适用标准自动加载规则.是否有一种简单的方法可以告诉Zend Autoloader在第二个位置查看?

Gor*_*don 5

您可以将其添加到lib文件夹

/lib
 /Zend
  /Translate
   /Adapter
    /Csv.php
 /My
  /Translate
   /Adapter
    /Csv.php
Run Code Online (Sandbox Code Playgroud)

根据自动装带器的设置方式,您必须使用它设置"命名空间":

$autoloader->registerNamespace('My_');
Run Code Online (Sandbox Code Playgroud)

或者,如果您不喜欢这样,请将其放入模型文件夹中.基本上,无论你把它放在哪里,只要它可以通过自动加载器以某种方式访问它.在Zend_Autoloader可以注册任意自动加载回调,所以这真的取决于你.