開発合宿 in 圡善 -PHPフレームワーク・Symfonyとは-

どーも。ばぁどです。

海の日の三連休を利用して、開発合宿行ってきました。

今回のテーマは、Drupalフレームワークとして利用されているSymfonyを使ってwebアプリケーション構築です。

Drupalを深く理解するための、Symfonyの勉強でございます。

フレームワークの名前的に、七色シンフォニー聞きたくなってしまいますね。

www.youtube.com

というわけで、Symfony2の入門書を引っさげて開発合宿に参加してきました。

gihyo.jp

今回の開発合宿の目標

  • Symfony触る

  • お酒飲みながら開発する

  • 合宿中であっても規則正しい生活を!

Symfonyって?

PHPフレームワークです。

Symfony, High Performance PHP Framework for Web Development

歴史としては、Zend Frameworkの次に古いPHPフレームワークのようです。 RubyRailsJavaのSpringから少し遅れて開発が始まったとのことでした。

現在はSymfony2と呼ばれる、ver 2です。

PHPフレームワークとしての検索トレンドはこんな感じ。

(2017年7月16日、8:00頃の結果)

期間:5年間

フレームワーク以外の検索結果も入ってしまうので 各FWごとに、小文字のphpをつけています f:id:UltraBirdTech:20170716202314p:plain

検索ワードの問題もあるけど、まぁ中間くらい?安定した人気ですね。 こうやってみると、Laravel最強説。

地域別にみるとこんな感じ。 f:id:UltraBirdTech:20170716202407p:plain

Symfonyは欧州で人気あるっぺぇ。 そして、圧倒的なLaravel人気・・・

Symfonyの基本機能

Symfony2のFWとしての基本的な機能は下記のようでした。

ルーティング

ymlやアノテーションで指定することで実装できます。

今回は参考書に従ってアノテーションで実装。

個人的には設定ファイル(yml)の方が好みだな。

アノテーションでやる場合はこんな感じ

 class ToppageController extends Controller
{
    /**
    * @Route("/")
    */
    public function indexAction(){     
        // なんかの処理... 
    }
}

DBとの接続

Doctrine勉強してね

Home — Doctrine Project

Doctrinは、PHPのORMです。 PHPでWebアプリケーションを開発するために作られたORMのようです。

どうしてもRubyActiveRecordと比較してしまう。

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力はもう少し高めなければと思っております。

次は、もっとサービスインできるくらいの何か作ってみたいなー。

開発合宿は、ご飯美味しいし、温泉も入れるし、開発できる機材は整っているし、とても楽しいですね!

どーせ、何も予定がない休日に一日中開発しているのであれば、これからも積極的に参加していきたいです!!

おまけ

飲んだお酒。 開発合宿中に三本飲めました。 (お酒弱いのですが、酒入れながら開発は一回やってみたかったのです)

まぁ、千葉に来たし、せっかくなので・・・

www.kirin.co.jp

  • YEBISビール 350ml 缶

YEBISビール美味しいよね。

エイジゲート | サッポロビール

  • KIRIN本絞り 350ml 缶

レモン系が飲みたかった・・・

www.kirin.co.jp

次回はもっとガッツし飲みたいですね。(開発合宿の目的とは

f:id:UltraBirdTech:20170717104941j:plain

以上です。