PHPで、複数の画面において、共通部分があれば、includeにして、呼び出すということが考えられる。ただ、このとき、一部分だけ違うということがある。
この場合、考えられる対応は3つ
・そのinclude元を直接修正する
・includeファイルをコピー、コピーしたものを修正して、それを参照する
・includeがクラスなら、それを継承する。継承したものを修正し、それを参照
以下、それぞれのメリットデメリットを書いてみたいと思います。
(1)そのinclude元を直接修正する
include元のファイルにたいして、if文を追加して、もし、あるときならば、一部分かえるように、プログラムを修正する。
この方法は、後日、他の人が修正しようとした場合、そのソースを参照するので、修正が分かるというメリットはあるけど、同時に修正している場合、競合が起こる可能性がある。
とくに、フリーソフトをこのように修正した場合、後日そのソフトがバージョンアップすると、追加した部分を、新しいバージョンにも追加しないといけなくなる。
(2)includeファイルをコピー、コピーしたものを修正して、それを参照する
include元のファイルをコピーしてきて、そのコピーしたものを参照するように書き換える。さらに、コピーしたものに、変えたい内容を修正する。
この方法だと、バージョンアップしても、参照するのは、コピーしたファイルのほうだから影響はない・・・こともあるけど、コピーしていたファイルが、さらに何かをincludeしていて、そのinclude元が書き換えられて不整合ということもありえる。
また、みんなが、好き勝手にコピーしてしまうと、今、どこで何が更新されているのか分からなくなってしまう。
・includeがクラスなら、それを継承する。継承したものを修正し、それを参照
PHPならクラスが出来るので、こういう話もある得る。
が、これは、クラスになっていて、適切なメソッドに分かれていないとできない。
また、(2)同様みんなが、好き勝手に継承しまくってしまうと、今、どこでどーなっているのか分からなくなってしまう。
ってなかんじですかね(^^)