【戯れ言】PHPフレームワーク選択のベストプラクティス

【戯れ言】symfonyはCakePHPよりは大規模向けです - ぷぎがぽぎ

すでに過去の資料に言及されていますが、敢えて釣られてみます。
自分の基本的なスタンスとしては大規模であろうと小規模であろうと好きなフレームワークを使って開発するのが良いと思います。

結局のところ同じ程度に成熟していればどのフレームワークを使っても、レアなケースを除いて望んだアウトプットが得られると思います。
ただそれぞれのフレームワークにベストプラクティスというか勝ちパターンのようなものはあると思います。
業務での利用について自分なりに知っていると思えるCakePHPsymfonyについて勝ちパターンを考えてみました。

  • CakePHPのベストプラクティス
    • PHPのコーディングかRailsの経験者がチームに居る
    • 連想配列が中心となるデータモデルに慣れる
    • 各種日本語書籍で全体感をつかんでおく
    • 開発のイメージにフレームワークの機能が合わない部分については潔く個別に実装する
    • AppController、AppModelなどの継承ではなくComponentなどで共通化を図る
    • なるべく簡単に、快適にプログラムを書く

思いつきで書いているので矛盾しているところもあるかも。
ざっくりしたところでいうと、symfonyは用意された機構やプラグインを使えば使うほどに旨みが出てくるフレームワークだと思います。逆にいうとそこに振り回されてしまうような体制や納期、短期間のスパンで使うのは厳しい時があると思います。
特に知らないうちにsymfonyの機能を無視してしまったりすると非常にもったいない事になっちゃいますね。
(filterを知らなくて、何重にも継承されたアクションを作っちゃったりしたら悲惨)
CakePHPの場合はスタートアップはとにかく早いので、万能です。またちょっと合わないなーという部分を無視してもわりと後腐れがないです。
あとは全体的な作業の流れとして秀丸FTPしか使えないみたいな状況だとsymfonyの豊富な機能が泣いてしまうので、トータルでみて効率的な開発を行う為の学習を怠ってはいけないと思います。

CakePHPのコンセプトは「すべてのPHPユーザが素早く開発を行える」がウリなので言葉どおり初心者から上級者まで使えるという所が特徴です。

大規模論議については・・・

  • アクセス数が多いのが大規模?
  • コード量が多いのが大規模?
  • サーバ数が多いのが大規模?

のどこを重視するかで違いが出てきますが、symfonyの機能にはこういった状況を考慮したものが多いのは事実ですね。
ただ一方でCakePHPを使って上記のどの条件にあてはまるアプリケーションでも開発されている実績は十分にあると思います。

まとまりがない感じですが、戯言ということでご勘弁を。