どーも。ばぁどです。
海の日の三連休を利用して、開発合宿行ってきました。
今回のテーマは、Drupalのフレームワークとして利用されているSymfonyを使ってwebアプリケーション構築です。
Drupalを深く理解するための、Symfonyの勉強でございます。
フレームワークの名前的に、七色シンフォニー聞きたくなってしまいますね。
というわけで、Symfony2の入門書を引っさげて開発合宿に参加してきました。
今回の開発合宿の目標
Symfony触る
お酒飲みながら開発する
合宿中であっても規則正しい生活を!
Symfonyって?
Symfony, High Performance PHP Framework for Web Development
歴史としては、Zend Frameworkの次に古いPHPフレームワークのようです。 Ruby のRails やJavaのSpringから少し遅れて開発が始まったとのことでした。
現在はSymfony2と呼ばれる、ver 2です。
(2017年7月16日、8:00頃の結果)
期間:5年間
※ フレームワーク以外の検索結果も入ってしまうので 各FWごとに、小文字のphpをつけています
検索ワードの問題もあるけど、まぁ中間くらい?安定した人気ですね。 こうやってみると、Laravel最強説。
地域別にみるとこんな感じ。
Symfonyは欧州で人気あるっぺぇ。 そして、圧倒的なLaravel人気・・・
Symfonyの基本機能
Symfony2のFWとしての基本的な機能は下記のようでした。
ルーティング
ymlやアノテーションで指定することで実装できます。
今回は参考書に従ってアノテーションで実装。
個人的には設定ファイル(yml)の方が好みだな。
アノテーションでやる場合はこんな感じ
class ToppageController extends Controller { /** * @Route("/") */ public function indexAction(){ // なんかの処理... } }
DBとの接続
Doctrine勉強してね
Doctrinは、PHPのORMです。 PHPでWebアプリケーションを開発するために作られたORMのようです。
どうしてもRubyのActiveRecordと比較してしまう。
ActiveRecordと比較すると、あまりメソッド名が直感的ではないなと思ってしまった。 おそらくDoctrinの思想を理解できていないんだと思います。
Doctrineが開発された経緯とか、Symfonyに組み込まれた経緯とかは知りません。 後ほどの調査タスクで・・・
HTMLへのレンダリング
Twig勉強してね
Home - Twig - The flexible, fast, and secure PHP template engine
TwigはSymfonyの機能ではなく、独立して利用可能なテンプレートです。 確か、Symfony2からTwigに対応した認識。 ちなみに、Twig独自の関数と、Symfonyが拡張したTwig関数があるので、そこの分別は気を付けてください。
Twigが開発された経緯とか、Symfonyに組み込まれた経緯とかは知りま(以下略
使ってみた感想
フレームワークとしては、難なくWebアプリケーション開発できるなーという印象。
外部のコンポーネントを取り込んで開発するってのが多いなと思いました。
フレームワークは便利なコンポーネントを独自に取り込んで、使っていくみたいな形になってきているんですかね。
結局、DoctrineやTwigの勉強をそれぞれした方が理解深まるなー、という所感です。
今後の展望
Symfonyを利用して、MVCやオブジェクト指向でどう書くのがベストなのかは探らなきゃいけないなと思っています。
あとは、ユニットテストの導入ですかね。
そして・・・「すべての道はDrupalに通ず」
まとめ
今回、開発合宿でSymfonyに触ってきました。
本当は、もっと成果物としてしっかりとしたものが上がればいいんだけど、毎回こんな新しい技術触って何ちゃらでした☆みたいなものにしちゃうんですよね。
PHP力はもう少し高めなければと思っております。
[本日のセミコロン原因のparse error 発生回数]
— ばぁど (@UltraBirdTech) 2017年7月16日
11回目(1度に5箇所やった)
次は、もっとサービスインできるくらいの何か作ってみたいなー。
開発合宿は、ご飯美味しいし、温泉も入れるし、開発できる機材は整っているし、とても楽しいですね!
どーせ、何も予定がない休日に一日中開発しているのであれば、これからも積極的に参加していきたいです!!
おまけ
飲んだお酒。 開発合宿中に三本飲めました。 (お酒弱いのですが、酒入れながら開発は一回やってみたかったのです)
- 千葉に乾杯(キリンビール)350ml缶
まぁ、千葉に来たし、せっかくなので・・・
- YEBISビール 350ml 缶
YEBISビール美味しいよね。
- KIRIN本絞り 350ml 缶
レモン系が飲みたかった・・・
次回はもっとガッツし飲みたいですね。(開発合宿の目的とは
以上です。