2016-09-15 5 views
1

私はカスタムクラスを書いて、それらをpimcoreアプリケーションで使いたいと思っています。 私は/website/lib/Customディレクトリに移動しました。その後、ディレクトリにある各クラスの再帰スクリプトincluderを作成し、そのスクリプトを/index.phpファイルに含めました。Pimcoreカスタムクラス

pimcore規格ではありませんが動作します。 pimcore /設定/ startup.phpで

が存在スニペット:

$autoloaderClassMapFiles = [ 
    PIMCORE_CONFIGURATION_DIRECTORY . "/autoload-classmap.php", 
    PIMCORE_CUSTOM_CONFIGURATION_DIRECTORY . "/autoload-classmap.php", 
    PIMCORE_PATH . "/config/autoload-classmap.php", 
]; 
$test = PIMCORE_ASSET_DIRECTORY; 
foreach ($autoloaderClassMapFiles as $autoloaderClassMapFile) { 
    if (file_exists($autoloaderClassMapFile)) { 
     $classMapAutoLoader = new \Pimcore\Loader\ClassMapAutoloader([$autoloaderClassMapFile]); 
     $classMapAutoLoader->register(); 
     break; 
    } 
} 

私は、これはのautoload-classmap.phpから戻っ配列に入れ、すべてのこれらのクラスを含めることを提供することを推測します。 /pimcore/config/autoload-classmap.phpということを覚えておいても、上記のループは最初の反復で壊れてしまい、カスタムautoload-classmapに入れるクラスはプロジェクトには含まれません。

私の質問は、ファイルを/pimcoreディレクトリに変更できますが、システムのアップデート後にすべてがうまくいくと思いますか?

答えて

1

いいえ、そこにあるファイルは更新メカニズムによって上書きされるため、pimcoreディレクトリ内のファイルは上書きしないでください。

あなたは上書きされ得ることはありません/website/config/startup.php使用することによって、あなたがやりたいことができます。 https://www.pimcore.org/wiki/display/PIMCORE4/Hook+into+the+startup-process

をしかし、その代わりに、あなたが行ったように、すべてのクラスをロードする、ことにより、オートローダーを活用します/website/config/startup.phpにこれを追加する:あなたが適切に名前空間を使用している場合

// The first line is not absolutely necessary, since the $autoloader variable already gets 
// set in the /pimcore/config/startup.php, but it is a more future-proof option 
$autoloader = \Zend_Loader_Autoloader::getInstance(); 
$autoloader->registerNamespace('Custom'); 

とあなたのファイルに名前を付けることは正しく、それはあなたがする必要があるすべてです。