php require不使用include路径顺序

时间:2012-09-19 14:05:45

标签: php zend-framework include-path zend-server-ce

我使用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,如下所示(片段):

...
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 Library是我的include路径中的第一个条目。请注意,我在开发环境中具有完全相同的配置,它可以按预期工作。

非常感谢任何关于为什么会发生这种情况并且可以避免的帮助。

一些背景:我不喜欢摆弄外部库,但这里真的很有用:我可以进入内部Zend扩展链(更改Zend_Form_Element的默认装饰器)然后让ZF库继续做它的出色工作。

1 个答案:

答案 0 :(得分:1)

问题可能是zend server(CE)对服务器端代码的缓存。午饭后我回来时按预期工作。我确实使用Chrome隐身功能消除了浏览器缓存,但忘记了服务器缓存。