0

私はZendFrameworkを使用しており、自分のライブラリ(メインの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を呼び出すとき、私のカスタムファイルは無視されます。Xhtml.phpファイルをZFライブラリから削除すると、カスタムファイルが選択されます。したがって、カスタムZendライブラリがインクルードパスの最初のエントリであるにもかかわらず、ZF通常ライブラリがカスタムクラスよりも優先されているように見えます。私の開発環境では、期待どおりに機能するのとまったく同じ構成になっていることに注意してください。

なぜこれが起こり、避けることができるのかについての助けは大歓迎です。

背景:外部ライブラリをいじるのは好きではありませんが、ここでは非常に便利です。内部のZend拡張チェーンに侵入して(Zend_Form_Elementのデフォルトのデコレータを変更するため)、ZFライブラリにすばらしい作業を続けさせることができます。 。

4

1 に答える 1

1

問題はおそらく、zendサーバー(CE)によるコードのサーバー側のキャッシュでした。昼食後に戻ってきたときは、期待通りに動きました。Chromeシークレットを使用してブラウザのキャッシュを排除しましたが、サーバーのキャッシュについて考えるのを忘れていました。

于 2012-09-19T14:09:02.037 に答える