自分で作成したライブラリとコンポーネント(主に学習体験)のみを使用してMVCアプリケーションフレームワークを作成していますが、各種類のライブラリを互いに分離する方法がよくわかりません。
私のアプリケーションをCatと呼びます。
Dogというライブラリを作成しているとしましょう。これは、Zendのようなもので、さまざまなタスクを実行するさまざまなコンポーネント(データベースクラス、DAL、特定のURLから選択するコントローラーを特定するためのルーターなど)でいっぱいです。ルート/ライブラリ/ディレクトリに配置されます。
また、アプリケーション固有のアプリライブラリを作成します(アプリの開始と構成に役立つFrontControllerやApplicationなどのクラスが含まれている場合があります)。これはroot/app /library/にあります
このアプリケーションと他のアプリケーションの両方でDogライブラリを使用し、Catから独立していることを願っています。これにより、他の多くのアプリケーションで使用できるようになります。
私のCatアプリケーションで、新しいデータベースオブジェクトを作成するとします。私は書くべきですか:
$database = new Dog_Database();
または、Dog_Databaseクラスを純粋に拡張するCat_Databaseクラスを使用する方がよいでしょうか。つまり、後で必要に応じて代わりにFerret_Databaseを拡張するようにCat_Databaseに指示できます...
主な質問は、アプリケーションが共有ライブラリから直接物事を呼び出すべきか、それとも必要に応じて共有ライブラリから拡張されるアプリ固有のライブラリクラスを呼び出すべきかということだと思います。