2013-10-02 6 views
13

対ベンダー/ VS/libに行くべきと私はまだ本当に/Vendor/Plugin/Libに行くべきか理解していない。私は、プラグインは基本的に独自のコントローラーなどを備えたミニアプリだと知っています。しかし、3つすべてがokオプションのように見える多くの状況があります。誰かがこれにいくつかの光を当てることができますか?CakePHPの:私はしばらくの間、CakePHPのを使用してきた何/プラグイン

+0

http://stackoverflow.com/questions/24261432/how-to-use-common-function-in-helper-and-component-in-cakephp – trante

答えて

22

Libの

サードパーティーや 外部のベンダーから来ていない第一パーティのライブラリが含まれています。これにより、組織の 内部ライブラリをベンダーライブラリから分離することができます。

プラグイン

pluginパッケージが含まれています。

ベンダー

サードパーティ製のクラスやライブラリは、ここに配置する必要があります。 これにより、App :: import( 'vendor'、 'name')関数を使用して簡単にアクセスできます。キーンオブザーバーは、 のように冗長であることに注意してください。 構造の最上位にベンダーフォルダがあります。 では、複数のアプリケーションの管理とより複雑なシステム設定について説明します。

出典:http://book.cakephp.org/2.0/en/getting-started/cakephp-folder-structure.html

がさらに明確にするため、Libは、あなた自身の書き込みライブラリをお勧めします。これは、いくつかのクラスまたはライブラリ全体だけかもしれません。例えば、githubからダウンロードできるライブラリやスクリプトには、Vendorをお勧めします。 Pluginは厳密にcakephpフレームワークプラグインです。

あなた自身のスクリプトやサードパーティ製のスクリプトでLibVendorについては、私が認識している違いはありません。私は両方の場所にサードパーティのスクリプトと同様に両方のスクリプトを入れましたが、それは何の違いもありませんでした。これは、ファイルを整理するための推奨された方法です。

LibまたはVendorからと同じApp::import()を使用してスクリプトを読み込むことができます。 cakephpの規則に従ってフレームワークファイルや独自のスクリプトをロードするには、App::uses()を使用します。これは、App::path()またはApp::build()を使用して定義されたパスを使用してファイルを検索します。

+0

ありがとうございます!私は違いがはるかに明確だと思う。あなたは/ Lib vs/Vendorを選択することの意味についていくつかの言葉を加えてもいいですか?例えば、Vendorのものは 'App :: import()'でアクセスされますが、Libのものは 'App :: uses()'とその他の設定が必要なようです。彼らが違った仕方で実装されている理由があると確信していますが、私には分かりません。 – emersonthis

+0

全く明らかではありません。両方を持っているのは余分なようです。特に、LibとVendorのアクセスファイルはまったく異なっています。 – zmonteca

関連する問題