Help us understand the problem. What is going on with this article?

PHPフレームワーク雑感

I was using the following framework for business.

英語が読めない(そもそも英語だと読まない)人が多かったので補足しておくと、I was using the following framework for business. とは、私が業務で使用したフレームワークの話という意味です。

TOP7(七武海)

  1. symfony

    • ORMは凄いと思った。(開発は別プロジェクトだけど)
    • 完全なORMとは、Form <-> Object <-> Database だと思った。1
    • 仕様が複雑で整理されてないと思った。
    • 仕様が複雑なので理解しないまま使ってグチャグチャにしちゃう現場を2度見た。2
  2. CakePHP

    • モデルの複数形がウザいと思った。
    • 複数形にするための実装がスゲー間抜けだと思った。
    • 擬似ORMっぽいものがついてる。
    • それ以外は普通だった。(そもそもそんな使わなかった)
  3. CodeIgniter

    • 簡単・速いって言うけど、機能が全然ないじゃん!って思った。
    • テンプレート機能はあるが、レイアウト機能が無い。
    • フォームヘルパーもデータベースヘルパーも無い。
    • 初心者が最初に勉強するフレームワークとしては良い。
      (なぜなら、機能が少ないため学ぶことも少ない。従って迷いにくい。)
    • ActiveRecordが使えるっていうけど、それ、他のフレームワークでも使えるじゃね?って思った。
    • 基本的な機能は高校生が夏休みで作れるレベル。
    • プロなら1日で作れると思う。3
  4. ZendFramework

    • FWとしての仕組みがカオスなので、これで作られたシステムもカオスにならざるを得ない。
    • サラリーマンが給料を貰うために業務として作ったって感じ。没個性。
    • フォームヘルパーが使う価値がないと思った。
    • データベースヘルパーが使う価値がないと思った。
    • どうでもいいヘルパーがてんこ盛りだった。
    • だったらフォームとデータベースを強化しろと思った。
    • 何も考えずに使ったら、セキュリティ的にザルになると思った。
      フレームワークが担保しないの?セキュリティは人間任せ?だったら使う意味なくね?
    • 確か、フォームヘルパーは単にフォームのinputを出力するだけで、値の保存は自前で実装しないといけない。←だったら手書きでいいじゃん!
    • しかも、フォームの実装の仕方が面倒くさくて使ってられない。←手書きの方が分かりやすくて早いし速い
    • そして最後に echo '</form>' とか書かなくちゃいけなくて、「江戸か!」って叫びたい気持ちでいっぱいだった。苦痛だった。
    • validatorは別のクラスに分離されてて、それはいいんだけど、\$_GETとか\$_POSTとかで取得した値をvalidatorを通して、正しかったら保存するんだけど、htmlentitiesはプログラマーが明示的に処理しないとXSSが発生するっていう手抜きな仕様で、フォームの再入力が発生したらinputのvalueには自動的に代入しないから、代入される仕組みも書かなくちゃいけなくて、htmlentitiesしてたら二重にエスケープされて、そこも調整しなきゃいけなくて、「これFWで作る意味があるの?フルスクラッチと変わんなくない?」っていう原始時代に突き落とされたような気分でいっぱいだった。ZFスゲーって言っている奴はあまりにも不勉強だと思った。
  5. Yii Framework

    • Yiiって、何て発音するのか分からなくて、軽くイラっとした。4
    • チャイニーズが作ってるので、気にならない人はどうぞ。
    • Modelの継承の流れが、作った人以外わからなくなるシステムになりやすい。
    • たいした機能がないのに、FW自体のファイル数が多過ぎると思った。
    • とにかく無駄に複雑。(システムが複雑になるのは、設計者の思慮が足りないから)
    • Dispatchの処理がやたら長い。(FW作者の中で考えがまとまっていないんだと思う)
    • 擬似ORMが付いてる。
    • エラーのキャッチの仕方が個人的に好きじゃない。
    • エラーのキャッチの仕方がプロダクション環境だと問題になった。
    • i18nに対応する気概は素晴らしいけど、仕様が残念だった。
    • FW作者の記法が、とにかくダメだった。この記法を真似してる奴がいて、「江戸か!」って叫びたくなった。
    • Memcacheをキャッシュとして使うヘルパーが付属するが、ドメイン毎にネームスペースで区切らないので、同じmemcachedを参照する他のサイトのキーとコンフリクトしてた。この中途半端さはZendFWに比肩できると思った。
    • 付属のMemcacheヘルパーを使って作ったシステムがあったんだけど、諸事情でmemcachedを止めたらシステムも止まった。
    • 上記の理由でmemcache関連のバグ調査をしたかったんだけどできなくて、諦めて運を天に任せて今日も動いてます。あゝ無常。
    • まぁとにかく、片手落ちな実装がてんこ盛りだったので、商用環境で使うのは止めた方がいいっすよ。地獄をみます。(地獄を見たい人にはおすすめ。一度くらい見とけ!)
  6. Phalcon

    • 無難。可もなく、不可もなく。
    • 設定は割りと分かりやすい。
    • 速いっていうけど、実測はそれほど差がでない。
    • そもそもストレージをSSDにしたり、データベースの問い合わせ結果をキャッシュしたら埋まるような差でしかない。
    • 機能に取り立てて優れた点はない。
    • DIの実装方法が良くなく、コード補完が効かない。コード補完を知らない人には関係ないっぽい5
    • ORMっぽいのが付いてる。
    • ORMに指定できるのはColumns, Conditions(WHERE句), Bind, Order, Limitだけ。OrderはASCのみで、Offsetは指定できない。
    • ORMに謎の仕様がある。
    • 邦訳が途中で力尽きてる。ご愁傷さまです。
  7. Ethna

    • 完全に時代遅れ。67

Rookie

  1. Laravel
  2. FuelPHP
  3. CharcoalPHP
    • 概要しか見てないけど面白そう。

脱落

  1. ちいたん
    • http://php.cheetan.net/ よく分かんないけどドメインが第三者に乗っ取られててウケた。(会社でクリックするのは止めておけ!)


  1. Object <-> Database は、Half-ORM と呼ぶべきだし、Array <- Databaseは、そもそもORMではない。 

  2. Disったね?!いま、OpenPNE2をdisったね!! 

  3. CI8っていう大会を開いて、8時間でCodeIgniterを作ったら楽しいと思う。 

  4. ショッカーの雑魚の掛け声です。 

  5. コード補完を使わないのか、知らないのか。便利を知らなければ不便と思わない。ちなみにコード補完が最強なのは、Microsoft謹製Visual Studioです。PHPの開発もできるらしい。Macでも動くらしい。8 

  6. 今見返したら、そもそもSmartURLに対応してなかった。(そんなことすっかり忘れてた)SmartURL対応版はこちら驚くことに、まだこれを現役で使っている上場会社があるんだよ。驚くよね。 

  7. ドキュメントが途中で力尽きてる。ご愁傷さまです。(-人-) 

  8. Microsoftの製品がダメだって言われるけど、これはMSに限った話ではない。WindowsのUIやOffice製品を作っている開発者は、サラリーマンとして給料をもらうために、仕事として、特に愛着のない製品のプログラムをしているから。Visual Studioは自分達が使うプロダクトだから情熱が注がれるのだろう。これはMSに限った話ではない。 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away