Yii2って良いの?メリット・デメリットまとめ

投稿者: | 2015年12月3日

この投稿は Yii Advent Calendar 2015 の 3日目の記事です。昨日は田中久輝さんの「ActiveRecordにユーザーの入力を直接突っ込むのはやめよう」という内容でした。

自社のプロダクトではYii2がα版だった頃から使って来ましたが、私がYii2でやったことといえばローカルのPHP7環境下で動かしてみた、くらいしか触ったくらいのものです。無謀にも初心者向けのYii2の記事でも書きました。

Yii2ってなんだろう?ちょっと興味あるなぁくらいの方に読んでもらえたらありがたいです。

とりあえず使ってみたい!と思った方は公式のGetting Startedで試してみてください。うまくいかない時はこちらを参考に。

Yii PHP Framework Best for Web 2.0 Development

Web 2.0とかいう残念なワードがあるけど気にしない

Yii2でこんなサービス作れます

そもそもYii2でどんなサイトやサービスが作れるのか。今、弊社のサービスでYii2を使っているものを一部紹介します。

一般ユーザー、求職者ユーザー、企業ユーザー、管理者ユーザーという複数のロールがあるサービスなのですが、エンジニア1人+デザイナー1人という体制で3~6ヶ月程度で構築できました。

実際にYii2を使って開発をしたエンジニアとデザイナーにその魅力を聞いてみました。

エンジニアに聞いてみた

「どう?Yii2って便利?」

Symfony使いの場合

「めっちゃ便利!SymfonyのDoctrineは厳しすぎる!Yii2のActiveRecordは簡単だし早いし最高だね」

私には何のことかさっぱりですが、とにかく良いらしいです。彼は、わりとカオスな設計のDBに接続するためのAPIを、TDDで1ヶ月足らずで構築してしまいました。Codeceptionのエクステンションが用意されているのでめちゃくちゃ楽そうでした。

初心者エンジニアの場合

「テーブル設計さえちゃんとやれば、めちゃくちゃ楽。ER図で書いたとおりに実装できる」

なるほどなるほど~、何だか凄そうだね。横で見てた感じではモデル設計にほとんど時間をかけていて、コーディングは2ヶ月程で終わっていました。GitもcomposerもYii2も初めてという初心者エンジニアでもかなりのスピードで開発できる模様です。

デザイナーに聞いてみた

「どう?Yii2って難しい?」

「特に困ったことは無いですね。最初はリンクの仕方が癖があって慣れなかったけど、すぐに使えるようになりました。」

HTMLヘルパーのことですね。

これ以外は、普通のHTMLとCSSのコーディングだったので特に難しい訳では無かったようです。

まとめ

Yii2何それ?流行ってるの?ドキュメントが全部英語で難しいんだけど。みたいな意見が多いYii2ですが、実際に触っているクックビズのエンジニア&デザイナーたちからは高評価です。

・・・私の意見ですか?

豊富なエクステンションとCRUDジェネレータで、普段プログラム書かない人間でもとっつきやすくて良いフレームワークだと思います。強いて言うなら、Requiredのバリデーションエラーメッセージ「○●は空白ではいけません。」が気に食わないですね。「○●は必須項目です。」に変えたいんだけど、どのファイルを修正してプルリク送れば良いのでしょうか?

誰かおしえてください。

 

現在、クックビズでは新しいメンバーを募集しております!

このブログを書いているのはクックビズ株式会社の開発チームです。私たちと働いてみたいと思った方はWantedlyから話を聞きにきて下さいヽ(=´▽`=)ノ  

Yii2って良いの?メリット・デメリットまとめ」への5件のフィードバック

  1. 田中ひさてる

    12 / 6「 気に入らない文言に独自の翻訳ファイルを」で再登場予定です

    返信
  2. 木原伸夫

    良いですねえ。
    本家のガイドのページ、いつになったら英語以外に対応してくれるか分からないし、現在のデザインは読みやすさがいまいちな感じがしますので、是非、お願いします。

    返信
    1. Tomoyuki Sugita 投稿作成者

      ありがとうございます。
      そうでした!GitHubには日本語ドキュメントがありましたね!
      勝手にmdファイルを使ってWEBページ化しちゃうプロジェクトやっても良いですよね。

      返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Calculate it, plz.(captcha) * Time limit is exhausted. Please reload CAPTCHA.