プロが教えるわが家の防犯対策術!

classを定義したファイルに複数のfunctionがあります。
functionもコードも多くなったので、ファイルサイズが大きくなりました。
そこで、同じクラスのままファイルを分割したいのですがどうやればできますでしょうか。 
 同じクラス名のファイルに分割->だめですね
 functionだけ別ファイルにして、includeで取り込む。->だめみたい。

A 回答 (2件)

別ファイル分を別クラスとして定義、requireして、


class 現在のクラス extends 別クラス{~}
と継承を利用すれば分割できないこともありません。ただし本来の意味からすると ??? です。

個人的には無理に分割すべきではないと考えますが、どうしても分割するならファイル操作やデータの取得・整形など、現在のclassに別のオブジェクトが隠れていないかを見直し、それを別クラスにする方が遥かに良いかと。(1クラスが冗長になった場合、大抵別の「何か」を発見できます)

また継承以外では __call()を定義して別ファイルの関数を取込む等いろいろな方法があるにはありますが、関数内で$thisが使えない、private等のアクセス権がぐだぐたになるなどどの方法も一長一短、見通しは悪くなります。
    • good
    • 0

リファクタリング。


具体的には
 ・命令の簡略化
 ・クラスの細分化及び、責任範疇の分離化
などが挙げられるでしょう。

PHPはC#などのようにpartial指定は出来ないので、
1クラスを複数ファイルにまたいで定義することは
できません。

また、肥大化してきたとしても、そのクラス内で絶対的に
必要な機能なら、分割する必要はどこにもありません。
1つのfunctionが100行も200行もあるなら、privateメソッドを
利用してリファクタリングすれば済む話です。

この回答への補足

ありがとうございました。でもすみません。難しすぎて理解できませんでした。

補足日時:2012/09/02 11:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!