私は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ライブラリにすばらしい作業を続けさせることができます。 。