【发布时间】:2012-09-19 14:05:45
【问题描述】:
我使用 Zend Framework 并在我自己的库(不是主要 ZF 库)中有以下自定义文件(这是该库中唯一的文件!):
/home/web/library/php/Zend/Form/Element/Xhtml.php
我的包含路径是:
/home/web/domains/secondstart/application/../../../library/php:/home/web/domains/secondstart/application/../library:.:/usr/local/zend/share/ZendFramework/library:/usr/local/zend/share/pear
常规文件存在于 ZF 库中(在 /usr/local/zend/share/ZendFramework...)。
现在在 ZF 中 Zend_Form_Text_Element 扩展了 Xhtml_Element 如下(sn-p):
...
require_once 'Zend/Form/Element/Xhtml.php';
/**
* Text form element
*
* @category Zend
* @package Zend_Form
* @subpackage Element
* @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: Text.php 23775 2011-03-01 17:25:24Z ralph $
*/
class Zend_Form_Element_Text extends Zend_Form_Element_Xhtml
{
...
但是在调用 Text_Element 时我的自定义文件被忽略了。当我从 ZF 库中删除 Xhtml.php 文件时,它会选择我的自定义文件。所以看起来 ZF 常规库比我的自定义类更受欢迎,尽管我的自定义 Zend 库是我包含路径中的第一个条目。请注意,我在我的开发环境中具有完全相同的配置,它可以按预期工作。
非常感谢任何关于为什么会发生和可以避免这种情况的帮助。
一些背景:我不喜欢摆弄外部库,但在这里它真的很有用:我可以闯入内部 Zend 扩展链(更改 Zend_Form_Element 的默认装饰器)然后让 ZF 库继续做其出色的工作。
【问题讨论】:
标签: php zend-framework include-path zend-server-ce