akiyoko blog

akiyoko の IT技術系ブログです

「PHPフレームワーク4本勝負!!」に参加してきました

タイトル


PHPフレームワーク4本勝負!! - connpass (2015.8.5)

主催

nagonodoka


会場

hitomedia"the p@rk"
港区元麻布3-1-35 A棟 B2

Twitter




今回は、今話題の「Laravel」を含む 4大 PHPフレームワークのメリット・デメリットや採用理由などをフレームワークを業務で使用している各社がプレゼンする、という大変興味深いイベントでした。

  • Laravel
  • CakePHP
  • Yii
  • Symfony

プレゼンに含まれなかった「CodeIgniter」「FuelPHP」「Zend Framework」などの有名フレームワークは、たまたま使っている会社が集まらなかったということでしょうか。まあ、仕方ないですよね。


各フレームワークのざっとした印象はこんな感じでしょうか。

Laravel コードが読みやすく書きやすい人気急上昇中のフレームワーク
CakePHP Rails流の高速開発が可能なフレームワーク
Yii 高性能、コンポーネントベースのフレームワーク
Symfony MVCフレームワークの古株

参考




今回の発表では、「Laravel」が一番気になりました。
Google Trend でも 2015年以降はダントツのトップ人気のようですし。

「Laravelエキスパート養成読本」は、現時点でおそらく唯一の日本語 Laravel 本です。


(2015年10月16日追記)
少し先ですが、本格的な Laravel 本が出るみたいですね。これは期待!


  

1. Laravelを選んだ理由

友菊 敬太氏(株式会社インタースペース)

  • Webサイトは、Laravel4 と Laravel5 を採用
    • ただし、Grouta のAPI開発は CodeIgniterを採用(初回起動でメモリを一番使わないので)
  • Symfony, CakePHP 以外が使いたい、でも管理画面のジェネレーターもほしい
    • CodeIgniter, FuelPHP も候補に
  • レイアウト出力方法
    • Laravel は Controller がすっきり掛ける
  • ルーティングの書き方がよい
  • 他の良いところ
    • Eloquent の QueryBuilder で JOIN とかも自在に書ける
    • パッケージが充実!
  • 選定期間は30分
  • これまでで困ったことはない
  • Optimizeという機能を使うと、パフォーマンスが一段階上がる??
  • バージョン4 と 5 で結構違う。移行しようとは考えていない
  • テストの書きやすさもメリット?


 

2. CakePHPを使ってます

長屋 洋介氏(株式会社うるる)

  • クラウドワーク「シュフティ」
  • 2008年から使用
    • 採用理由は、流行っている、軽快簡単、ドキュメント豊富
    • 仕組みがシンプルで覚えやすいので、新たにJOINした人が分かりやすい
    • コミュニティが活発だったのも理由の一つ
  • プルリク単位でDockerでデプロイ。最近のヒット
  • phinx
  • デプロイ自動化に、whenever導入
  • componentで共通機能を外出し
  • 辛いところ。。
    • 下位互換が弱い。バージョンアップしたときに、メリット < 工数
    • Model fat
  • viewの切り離しが今後の目標
  • 管理画面は Bakeで
  • 生のSQLを書きたくなっちゃう??
    • 基本的にはビルトインのものを使うが、結局、メンテナブルかどうかがポイント
  • フレームワークとしてはたいして早くない部類
    • New Relicを導入すれば、ブラウザ上でボトルネックを表示することができるので便利


 

3. 弁護士ドットコム with Yii framework

市橋 立氏(弁護士ドットコム株式会社)

  • 4つの中で一番マイナー?
  • 特徴
    • Yii=Yes, it is! 何でもできるよ!
    • 高速(CodeIgniterよりも速い?ただし、DB接続やセッション管理なしの条件では)
      • 低オーバーヘッド
    • 旧共産圏で人気?
      • ロシアや中国語で検索が引っ掛かることも多い。オフショア開発向き?
  • Yii はほどほどに速く、低オーバーヘッド
  • MVCから外れた拡張も用意
  • 善し悪しあるが(カオスになりやすい?)、自由度が高い
  • 方針として、配列じゃなくて文字列で何でも処理しちゃう?傾向がある
  • Fat Controller になりがち??
  • 最終的には「好み」で選定


 

4) Web Application with Symfony2 + Silex

井村 元宗氏(株式会社ヒトメディア)

  • 大学出願サイト「applyjapan」
  • パッケージではない。大学ごとにカスタマイズが発生
  • Symfony2 いいところ
    • 疎結合の柔軟さ ⇔ Railsは密結合
    • LTSがあるなど、サポート体制がしっかりしている
    • コンポーネント単位での使用も可
  • Symfony2 の悪いところ
    • 学習コストが高い(Form, SecurityはSymfonyの2大難解コンポーネント)
    • やや遅い
    • エンジニアが少ない
  • Silexのいいところ
    • Micro framework (inspired by sinatra)
    • 学習コストが低い
    • 割り切ってオレオレ実装もできる
  • Silexの悪いところ
    • Symfonyのエコシステムに乗っかりきれない
    • Symfonyに比べるといろいろ足りないので自前で実装