- 締切済み
class定義のphpをファイル分割したい
classを定義したファイルに複数のfunctionがあります。 functionもコードも多くなったので、ファイルサイズが大きくなりました。 そこで、同じクラスのままファイルを分割したいのですがどうやればできますでしょうか。 同じクラス名のファイルに分割->だめですね functionだけ別ファイルにして、includeで取り込む。->だめみたい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- JaneDue
- ベストアンサー率75% (263/350)
別ファイル分を別クラスとして定義、requireして、 class 現在のクラス extends 別クラス{~} と継承を利用すれば分割できないこともありません。ただし本来の意味からすると ??? です。 個人的には無理に分割すべきではないと考えますが、どうしても分割するならファイル操作やデータの取得・整形など、現在のclassに別のオブジェクトが隠れていないかを見直し、それを別クラスにする方が遥かに良いかと。(1クラスが冗長になった場合、大抵別の「何か」を発見できます) また継承以外では __call()を定義して別ファイルの関数を取込む等いろいろな方法があるにはありますが、関数内で$thisが使えない、private等のアクセス権がぐだぐたになるなどどの方法も一長一短、見通しは悪くなります。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
リファクタリング。 具体的には ・命令の簡略化 ・クラスの細分化及び、責任範疇の分離化 などが挙げられるでしょう。 PHPはC#などのようにpartial指定は出来ないので、 1クラスを複数ファイルにまたいで定義することは できません。 また、肥大化してきたとしても、そのクラス内で絶対的に 必要な機能なら、分割する必要はどこにもありません。 1つのfunctionが100行も200行もあるなら、privateメソッドを 利用してリファクタリングすれば済む話です。
補足
ありがとうございました。でもすみません。難しすぎて理解できませんでした。