【问题标题】:php require does not use include path orderphp require 不使用包含路径顺序
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-02-15
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      相关资源
      最近更新 更多