2017-10-23 21 views
0

私はPHPクラスに関する質問が好きです!私は顧客のテーブル、通りのテーブルと町と呼ばれる別のテーブルを持っているとしましょう。 OOPでは、クライアントクラス、ストリートクラス、タウンクラスがあると仮定しなければなりません。だから、すべてのクラスは、次のような別のものに関連している:phpクラスと拡張クラス

クライアント:のclientId、clientFirstname1、clientLastname1、ClientAddressに、clientStreetCode、clientTownCode、clientPostCode .....

ストリーツ: streetCode、streetName、 townCode

町: townCode、townName

私は、私は1つを拡張するものと私はクライアントレコードを作成していた場合、あるお願いしたいと思い何クラスを別のクラスにするか、それらを拡張せずに残して、それを単一のクラスとしてPHPに組み込む必要がありますか?

+0

を参照して、代わりにStreetCityStreetへの参照を含む新しいクラスAddressを、導入を考えるべきですか? – Devon

+0

** CLASS **の目的のために** CLASS **が存在すると考えるならば、それらの3つのどれもが本当に相互になることはできません** CLASS ** ified。 – coderodour

+0

@codeodourous classy – apokryfos

答えて

1

OOPでの拡張は、is-aの関係です。 ClientCityStreetの3つのクラスに関しては、それらのどれもis-a他のインスタンスはありません。

代わりに参照のみを使用してください。 ClientStreetStreetCityです。

class Client { 
    /** 
    * @var Street 
    */ 
    protected $street; 

    // .... 
} 

class Street { 
    /** 
    * @var City 
    */ 
    protected $city; 

    // ... 
} 

class City { 
    // ... 
} 

たぶん、あなたはまた、あなたが何を求めているCity

+0

あなたの答えはありがとうございますphilipp。私はstreetcodeとtowncode(streetnameとtownnameではない)の両方でクライアントレコードを読む必要があるとき、クライアントクラスまたは関連するクラスから名前を取得する必要があるかどうかを尋ねています。申し訳ありません。 – user3448324

+0

ストリートと市の '$ client-> getStreet() - > getCode()'の後にクライアントクラスに質問します。 – Philipp