さて、あなたにはいくつかのオプションがあります:
アプリケーション「パッケージ」
アプリケーションパッケージを使用すると、独自のライブラリ、モデル、ヘルパー、構成、および言語ファイルを備えた、リソースの完全なセットを1つのディレクトリに簡単に配布できます。これらのパッケージは、application/third_partyフォルダーに配置することをお勧めします。
ディレクトリの使用に関する推奨事項に関係なく/third_party
、これは任意のディレクトリを選択できます。
以下は、「FooBar」という名前のアプリケーションパッケージのディレクトリの例です。/ application / third_party / foo_bar
config /
ヘルパー/
言語/
ライブラリ/
モデル/
「FooBar」アプリケーションパッケージの目的が何であれ、独自の構成ファイル、ヘルパー、言語ファイル、ライブラリ、およびモデルがあります。コントローラでこれらのリソースを使用するには、最初に、パッケージパスを追加して、パッケージからリソースをロードすることをローダーに通知する必要があります。$this->load->add_package_path()
パッケージパスを追加すると、ローダークラスは、後続のリソース要求のために特定のパスを追加するように指示されます。例として、上記の「Foo Bar」アプリケーションパッケージには、Foo_bar.phpという名前のライブラリがあります。私たちのコントローラーでは、次のことを行います。
$this->load->add_package_path(APPPATH.'third_party/foo_bar/');
$this->load->library('foo_bar');
詳細については、ローダーのドキュメントで説明されています:http: //codeigniter.com/user_guide/libraries/loader.html
繰り返しになりますが、Phil Sturgeonによる、それがどのように機能するかを理解するのに役立つ可能性のある別の投稿があります:http: //philsturgeon.co.uk/blog/2010/04/codeigniter-packages-modules
ここでの考え方は、リソースをロードするためのフォールバックとして使用される3番目の「アプリケーション」フォルダー(「パッケージ」)を持ち、他のアプリケーションのいずれかに一致するものを配置することでファイルをオーバーライドできるようにすることです。そのため、共有リソースをオーバーライドできる柔軟性を備えた共有リソースのメリットを享受できます*。
*これは、私がドキュメントを読んでいることを前提としています。私はこれをテストしていないので、さらに多くのことがあるかもしれません。
パッケージディレクトリを他の2つのアプリケーションフォルダの隣に配置し、次のMY_Controller::__construct()
ように参照することをお勧めします。
$this->load->add_package_path(FCPATH.'my_package_name/');
私はまだパッケージを使用していませんが、この投稿を書いた後、次のプロジェクトのためにそれをチェックしたいと思っています。