質問: FuelPHPのバージョンは1.8です。 siteというFuelプロジェクトの構成を下記とします(省略してるフォルダもあります) fuel/ |- app/ | |- logs/ | |- classes/ | | |------- controller/ | | |------- model/ | |- config/ | |- views/ | |- modules/ | |------- admin_module | |------- site_admin_module |- core/ |- packages/ public/ siteという一般的なWebサービスを作り 他のサービスでも使いたい汎用管理画面をadmin_modulesに、siteサービスに特化した管理画面をsite_admin_modulesに (設計都合で汎用と特化で管理画面を二つに分けてます) のようなモジュール設計を考えてます。 □ 質問1 app下のclassesやmodules内のclasses で共通して使いたいライブラリ、例えばutilクラスや汎用apiなど(mvcの構成はとらないもの) はどこに配置すればベストでしょうか? (他fuelphpで作成したサービスにも使いたいライブラリです) □ 質問2 model配下にはorm¥modelなどのActiveRecordを作りますが、 純粋なビジネスロジック(ActiveRecord以外)はどこに配置すればいいのでしょうか? (やはりmodel/でしょうか?) utilなどはpackagesに置けばいいのか疑問な部分です。 以上、ご教授お願いいたします。
回答: FuelPHPの枠内で考える場合と、FuelPHPの枠に捉われずに配置する2つの方法が考えられます。 FuelPHPの枠内で考える場合 ================ 質問1は、packagesです。 FuelPHPでのパッケージというのは再利用するライブラリということですから。 質問2は、modelです。純粋なビジネスロジックはMVCで考えるならモデルだからです。 また、もともとFuelPHPの標準のModelクラスは空のクラスであることからわかるように、FuelPHPはモデルを広く捉えています。 FuelPHPの枠に捉われない場合 ================= いずれも、PSR-4 に従い、任意のわかりやすい場所に配置し、Composerのオートローダを設定してください。 に一例があります。 この場合は、ライブラリをComposerのパッケージにすることも可能です。