○小規模サイトでは必要無い?
→例えばお問い合わせフォームのみであったり、PC・携帯表示切替だけのサイトであったり、簡単なプログラムの場合、使わない方が良いのではないか?
○第三者に提供する場合のソースのわかりにくさ
→PHPシステムを無料配布しているのですが、CakePHPにする事で設置する難易度が上がるのでは?
○重くなるのではないか
→xdebugをしてみると、大量のファイルを毎回読み込んでいるので、サイトが大きくなると付加が増えるのではないかと危惧しています。
○これまで作成したプログラムやライブラリが勿体なく感じる
→venderに入れたり、コンポーネント化して使う方法もありますが
ただ一方で、移行する事によるメリットも十分理解できておりますので
他の人はどういうきっかけで移行した(CakePHPやフレームワーク中心の開発にした)
のか知りたいと思い、質問しました。
経験がある方は体験談を教えて下さい。
(出来るだけ詳しく記載された方には、多めにポイントを付与します)
コメント(3件)
今までの作り方(俗に言う、オレオレフレームワーク)からCakePHPに作り替えるという事は=移行と言って良いのではないでしょうか?
どちらにしろ、体験談が聞きたいので表現は気にしないで下さい。
一般論になりますが、フレームワークを導入するメリットは、以下のURLにまとめられています。
http://www.phppro.jp/article/framework/framework.php
このメリットを見てもらうと分かると思いますが、「大規模な開発」で「開発効率を上げる」ことが大きな利用目的となります。そのため、既に開発されているシステムで、かつ、これからも大きな修正を加えるのでなければ、移行する意味はないと思います。
ただ、これからも頻繁にアップデートを繰り返していくようなシステムであるのであれば、今後のメンテナンスの効率化など、フレームワークの恩恵があずかれるため、メジャーバージョンアップの際に、検討する価値はあるかと思います。
k27wさんは、移行するメリットを理解されているとのことですが、どのようなことをメリットとしてとらえておりますか?
さて、経験から言うと、スクラッチから構築したシステムをCakePHPに移行したことはありません。上記のようにその移行に対するコストが、移行によるメリットよりはるかに大きいと判断されるものばかりだったためです。
また、逆に、新規で開発するシステムに関しては、CakePHPは大変役に立ちました。
スクラッチで記述するよりも、仕様変更が発生しても修正が容易であったり、簡単なプロトタイプを見せる状態にまでは、すぐできますので。
個々の懸念事項について、個人的な感想を述べさせてもらいますと、
○小規模サイトでは必要無い?
CakePHPを使わない方がいいとは言いませんが、将来的に拡張を考えているのでなければ、使うメリットもさほどないかなと思っています。小規模サイトでも使ったりしましたが、これはどちらでもいいと思っています。
○第三者に提供する場合のソースのわかりにくさ
mod_rewriteが動作することなど、いくつか制限事項が発生するのは確かでしょうね。
ただ、これは配布先としてどのようなユーザを想定するかではないでしょうか?素人がブログを始める感覚で、サーバにおけばいいって感じで使わせたいのであれば、避けるべきでしょう。
ただ、いずれにしろDBの設定など必要になるでしょうから、配布先がエンジニアを想定しているのであれば、配置方法などを明確にしておけば、問題ないかなと思います。
ソースの見やすさに関して言えば、スクラッチで人が書いたコードよりも、僕はフレームワークに従って記載されたコードの方が読みやすいと思っています。それは、仮にそのフレームワークの知識が乏しくてもです。
これもどんな人にソースを読ませたいかですが、人がスクラッチで書いたソースに手を加える能力がある人ならCakePHPをちょっと調べれば理解できるでしょう。そして、理解してしまえば、DBの設定はどのファイルに記載されているなどがはっきりして、一層読みやすいでしょう。
また、プラグイン的なものをユーザに書いて欲しいだけならば、そのプラグインの作成ドキュメントと、サンプルを用意すれば、CakePHPであろうとなかろうと同じように扱えるのではないでしょうか?
○重くなるのではないか
これは重くなります。速度が重視されるような場所はCakePHPを使いながらも適宜回避する必要があります。PHPアクセラレータなどを利用しても問題となるページなどは、別途対処する必要があります。個人の提供するサービスであれば、十分だとは思いますが、どれだけのパフォーマンスが要求されるかということ次第でしょう。
○これまで作成したプログラムやライブラリが勿体なく感じる
どんなものか分からないと何とも言えませんが、再利用する設計をしていなかったプログラムやライブラリはどのみち再利用できません。再利用するなら書き換えが必要なので、vendors、plugins、componentsなどに書き換えるのはいいかと思います。
ということで、長くなりましたが、僕の結論としては、
新規で作りものすごいパフォーマンスを要求されるのでなければCakePHPを利用する。
既存のシステムの修正はよほどの理由がない限り、CakePHPに移行はしない。
でよいと思っています。