この投稿は Yii Advent Calendar 2015 の 3日目の記事です。昨日は田中久輝さんの「ActiveRecordにユーザーの入力を直接突っ込むのはやめよう」という内容でした。
自社のプロダクトではYii2がα版だった頃から使って来ましたが、私がYii2でやったことといえばローカルのPHP7環境下で動かしてみた、くらいしか触ったくらいのものです。無謀にも初心者向けのYii2の記事でも書きました。
Yii2ってなんだろう?ちょっと興味あるなぁくらいの方に読んでもらえたらありがたいです。
とりあえず使ってみたい!と思った方は公式のGetting Startedで試してみてください。うまくいかない時はこちらを参考に。
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ヘルパーのことですね。
1 2 3 4 5 6 7 |
<?= Html::a( Html::img('@web/images/signup-banner.png', ['alt' => '会員登録しよう']), ['signup/index'], [ 'class' => 'signup-banner', ] ) ?> |
これ以外は、普通のHTMLとCSSのコーディングだったので特に難しい訳では無かったようです。
まとめ
Yii2何それ?流行ってるの?ドキュメントが全部英語で難しいんだけど。みたいな意見が多いYii2ですが、実際に触っているクックビズのエンジニア&デザイナーたちからは高評価です。
・・・私の意見ですか?
豊富なエクステンションとCRUDジェネレータで、普段プログラム書かない人間でもとっつきやすくて良いフレームワークだと思います。強いて言うなら、Requiredのバリデーションエラーメッセージ「○●は空白ではいけません。」が気に食わないですね。「○●は必須項目です。」に変えたいんだけど、どのファイルを修正してプルリク送れば良いのでしょうか?
誰かおしえてください。
現在、クックビズでは新しいメンバーを募集しております!
このブログを書いているのはクックビズ株式会社の開発チームです。私たちと働いてみたいと思った方はWantedlyから話を聞きにきて下さいヽ(=´▽`=)ノ著者プロフィール
- 開発部にいるのに何やってるの?と他のスタッフからよく思われてます。ブログ書いたり、社外勉強会でプレゼンしたり、やたらと会社の備品を増やしたり。ちゃんと仕事やってますよ?
12 / 6「 気に入らない文言に独自の翻訳ファイルを」で再登場予定です
おぉ~!さっそくw
楽しみにしています
良いですねえ。
本家のガイドのページ、いつになったら英語以外に対応してくれるか分からないし、現在のデザインは読みやすさがいまいちな感じがしますので、是非、お願いします。
Github 上にガイド一式の日本語訳がありますので、参照してください。
https://github.com/yiisoft/yii2/tree/master/docs/guide-ja
残念ながら、まだ、yiiframework.com の Guide のページ http://www.yiiframework.com/doc-2.0/guide-index.html からは読むことが出来ないのですが、、、
ありがとうございます。
そうでした!GitHubには日本語ドキュメントがありましたね!
勝手にmdファイルを使ってWEBページ化しちゃうプロジェクトやっても良いですよね。