20019


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に置けばいいのか疑問な部分です。

以上、ご教授お願いいたします。


CC BY-SA 3.0
2015-12-14T17:24:51.127
19981
2015-12-15T08:54:53.393
5839
question
php fuelphp
【FuelPHP】モジュールを使った時の共通ライブラリ＆ビジネスロジックの設計について


FuelPHPの枠内で考える場合と、FuelPHPの枠に捉われずに配置する2つの方法が考えられます。

# FuelPHPの枠内で考える場合

質問1は、packagesです。  
FuelPHPでのパッケージというのは再利用するライブラリということですから。  
<http://fuelphp.jp/docs/1.8/general/packages.html>

質問2は、modelです。純粋なビジネスロジックはMVCで考えるならモデルだからです。  
また、もともとFuelPHPの標準のModelクラスは空のクラスであることからわかるように、FuelPHPはモデルを広く捉えています。

# FuelPHPの枠に捉われない場合

いずれも、[PSR-4](http://qiita.com/inouet/items/0208237629496070bbd4)
に従い、任意のわかりやすい場所に配置し、Composerのオートローダを設定してください。

<http://blog.a-way-out.net/blog/2014/06/17/fuelphp-psr-model/>  
に一例があります。

この場合は、ライブラリをComposerのパッケージにすることも可能です。


CC BY-SA 3.0
2015-12-15T08:54:53.393
20019
2015-12-15T08:54:53.393
5489
19981
answer