22917


FuelPHPで開発をしているのですが、下のようなDBがあります。

[code]

    userテーブル
    id, service, service_id
    
[/code]

* * *
[code]

    deliveryテーブル
    id, ...
    
    saleテーブル
    id, ...
    
[/code]

userテーブルのserviceカラムには'delivery'や'sale'の文字列が入り、  
service_idと各サービスのテーブルのidと紐づいています。

ここで質問なのですが、これらのテーブルに該当するModelはModel_Softを継承しています。  
deliveryテーブルとsaleテーブルのようなserviceに該当するテーブルのみの  
共通処理を書きたい場合、  
serviceと言うModelを作成し、serviceモデルがModel_Softを継承し  
さらにserviceモデルをdeliveryやsaleが継承し、共通処理をserviceに書くと言うやり方は  
FuelPHPやFW的に考えた場合正しい設計になっていますでしょうか？  
ご存知の方がいらっしゃいましたら、教えてください。


CC BY-SA 3.0
2016-02-25T03:16:59.987
22504
2021-05-05T00:52:10.820
2021-05-05T00:52:10.820
19110
7918
question
php fuelphp mvc orm
FuelPHPのModelの階層化について


FW的に言うと、継承を使うこと自体に問題はありません  
継承利用時一般にいえる注意として、LSPだけ気を付けた方がよいです  
なお、

  * 子で共通の$_propertiesや$_observersをserviceに入れたい
  * かつ子は子で独自の$_propertiesや$_observersを追加で持ちたい

といった場合、_init()でオートロード時にserviceとその子のプロパティをマージするといった工夫は必要となります


CC BY-SA 3.0
2016-03-08T07:06:28.660
22917
2016-03-08T07:06:28.660
13349
22504
answer