menu
阿波銘木 公式ブログ

有限会社 阿波銘木 公式ブログ

Symfony4 Release!!

東京もすっかり寒くなりました。

 

東京では僕の地元の北海道とは違って、クーラーをつけていてもジャージとかの長袖で過ごす毎日です。

ストーブのパワーに脱帽しますね。

 

お久しぶりのwebシステム担当です。

 

さて、前回のブログでSymfony3について書かせて頂きましたが、

ついにSymfony4が正式にリリースされました!!

 

当サイトも既にSymfony4へのコンバートに取り掛かっており、来年頭には4系での運用に入る予定です。

ちなみに同時期にリリースされた3.4は長期サポートになっておりますのでリスクを背負わずにSymfonyを使いたい方はまだ4系にするべきではないですね。

この辺は好みにもよると思いますが。

(追記:2017年12月26日により、当サイトはSymfony4.0.2・PHP7.2.0での運用を開始致しました。)

 

そんなSymfony4ですが2系3系と比べて非常に大きく変わった印象を受けます。

と、言うコトで下記にまとめてみます。

 

Bundleless Applicationになった↓↓

これが最も大きく変わった部分ですね。Bundlelessにするのは想定外でした。

Symfonyといえば2系からはBundleを切りながら、そのBundle内で1アプリケーションの機能を完結させるフレームワーク設計だったのですが、それがなくなりました(1系は忘れましたが似たような機能があったような)。

僕個人の感想ですが、Bundleを切ることでその中で完結できる反面、各Bundleごとに似たようなロジックを書くことも多いなという印象がありました。

もちろん共通のBundleを切るなりclassを実装するなりしてそっちを見ろよという意見もあると思いますが。

 

Controller Action Namingの変更↓↓

毎度恒例だったController内のfunctionにActionサフィックスをつける必要がなくなりました。

 

DIが使いやすい↓↓

DIとはDependency Injection(依存性注入)のコトを指します。

3.3系の時からなのですが4系も変わらずDIが圧倒的に使いやすいです。それまでずっと設定ファイルがカオスになってましたからね^^;

PHPのフレームワークではLaravelのDIが衝撃的に使いやすかったのですが、今のSymfonyも同じくらい使いやすいと思います。

詳しいコトはこちらのリファレンスを見れば分かるかと思います。

 

Annotationで設定を記述するのがBest Practices↓↓

Best PracticesではRoutingなどはAnnotationで記述したほうがいいとのことです。

従来と同じく設定ファイルにまとめる方法でも出来ますが、デフォルトの設定がAnnotationでやろうねってなっていますね。

当サイトも現在、設定ファイルから各Annotationへの記述に寄せています。

正直、yamlで設定するほうがいいんですが。。。

 

ディレクトリ構造が変わった(おまけ)↓↓

メジャーバージョンアップの際は毎度好例なのですが今回もディレクトリ構造に変更があります。

また、設定ファイルにも変更があります。

まぁ儀式のようなものなのでリファレンスを読めば問題ないですね。

 

 

サンプルロジックもGitHubに上がっていますのでそれを見たほうがしっくりくるかもしれません。

僕はサンプルロジック等は見ていません。リファレンスを見た結果、内部で使われているclass何かはほとんど同じと判断したので。

思想は大きく変わりましたが、1つ1つのclass自体はほとんど変化はないように思えます。

 

個人的には、旧バージョンより非常に使いやすくなった印象を持ちました。

 

 

 

これからバグなんかも出てきて何度かマイナーバージョンアップがあるかと思います。

Symfony4がどのように評価されるか今から楽しみです。

Symfonyの奏でかた

最近は阿波銘木のシステム開発にも精力的に関わっています。

 

お久しぶりです。webシステム担当です。

 

今日の東京は暑かったです。

朝から中央線が人身事故で動かなかったのが悲しかった。。。

なぜ自分はこんな日に限って早起きしたのだろうと^^;

 

まぁ、それはいいや^^

 

さてさて、

7月に当サイトのレスポンシブWebデザイン版をロンチした後は、臼・杵のページをアップデートしただけでフロントにはほとんど手を入れていません。

では、何をしてるの??と言いますとサーバーサイドの改修を行っています。

 

いつかのブログでも書きましたが当サイトはフレームワークにSymfonyを採用しています。

 

開発当初は最新版が2.3だったのですが現在はサポートも切れてしまったので(まぁサポートなどどうでもいいが^^;)現在はSymfonyのバージョンアップに注力しています。

 

現在はSymfony2.8で運用しているのですが、開発環境では3系にバージョンアップをしています。

ロンチ出来るのもまもなくではないでしょうか。

(追記:2017年09月30日により、当サイトはSymfony3.3.10での運用を開始致しました。)

まぁロンチしたところで誰も分からない部分ではありますが。。。

開発者としては最新版で運用することはとても大切なことです^^

 

また、それと平行してPHPを5系から7系にバージョンアップしました。

PHP7は無名クラスやメソッドの引数・戻り値での型付けなどの点で大きな変更があり、限りなくJavaに寄せてきたなという印象です。7.1からはNullableやvoidの指定(今までは戻り値の指定がない場合はnullが返る仕様でした)もできます。

これはJava出身の僕からするとありがたい話で、Symfonyのバージョンアップと平行して7系にどんどん寄せています。

当サイトは今現在、PHP7.1.10で運用しています。

 

本当にこの世界は移り変わりが激しいですね。

もう8年前になります。

僕が初めてSymfonyを採用したときは最新バージョンが1.2でした。

当時はSymfonyの奏でかたというブログを見ながら開発していました。懐かしい。

そんなSymfonyも今では3.3までバージョンが上がっています。

そして、PHP4大フレームワーク(CakePHP、Symfony、Zend Framework、CodeIgniter)と言われていた時代も終わり、今はLaravelに人気が集まっています(僕も何度もLaravelのプロジェクトに参画しましたが確かに使いやすい)。

 

ちなみに東京ではPHPを上回る勢いでRuby(Ruby on Rails)が伸びている印象です。

現在は僕も、Ruby on Rails + React.jsの開発に携わっています。

 

アニメーション以外でjQueryを使用するのもそろそろ終わりそうです。Ajaxもaxiosのほうが推奨されてますしね。

 

 

とりあえず今の仕事が落ち着いたらプログラミング言語の勉強を一旦止めて旅行に行きたいです^^

 

最後に大好きなSymfonyのロゴ↓↓

 

 

もうすぐ選挙だ!!

 

 

laravel5

ご無沙汰しております。

阿波銘木のwebシステム担当です。

最近はたまの週末にちょこちょこやってるくらいですが。。。

 

現在の僕は他の仕事も担当しているため、阿波銘木の大きなシステム開発は出来ていません。

それでもちょこちょこ呼ばれてはマイナーチェンジしてます。

要チェックや(スラムダンク風に)w

 

さて、私事ではありますが、今年はlaravelでの仕事を担当しています。

基本はsymfonyをラップしたものですからsymfonyを使っていた僕からすると

 

「はいはい、なるほどね。」

 

という感じで扱いやすいです。

 

laravel自体が非常に伸びているフレームワークなので僕としても早く触ってみたかったという感じです(詳しくはこちらのグラフを見てください)。

 

PHPのフレームワークは非常に乱立しているので数年後には新しいフレームワークが人気になってるのかなと思います。

 

PHPもversion7が発表されてますしね。

 

本当にこの業界は勉強×2ですね^^;

こんな業界だって知ってたら多分やってないですw

 

北海道は冬に移っている途中です。

寒いです^^;

 

Symfony

先日、ノートPCを購入しました。

当然ディスプレイは小さいのでもう1つ付け足してデュアルディスプレイに、

キーボードが使いにくかったのでキーボードをつなぎ、内蔵タッチパッドも使わないので

マウスをつないで。。。

結局、ノートPCは電源ボタン以外触れなくなってしまいました。

 

今回はフレームワークのお話です。

阿波銘木のサイトはSymfony2を導入しています。

SymfonyはPHPフレームワークの草分け的存在なんです。

今まで関わってきたPHP案件ではZend FrameworkやCodeIgniter、fuelPHPなんかを触ってきましたが、

なぜこのサイトにSymfonyを導入したのでしょうか?

 

それは名前がカッコイイからです^^

うん。半分くらい本気なんですが、一番の理由は最初に使ったフレームワークがSymfonyだったからです。

Symfonyは手数の多いフレームワークなのですが、マッピングや制約が厳格なため大規模開発に向いていると言われます。

このサイトは決して大規模ではないのですが、ゼロベースからの開発ということで2系を使おうと思ったワケです。

ちなみにメジャーのバージョンアップは思想まで変わっているので名前が同じだけで中身は大きく変わります。

大きな変化がなかったのはCodeIgniterくらいでしょうか。

このサイトを作ったのは約1年前なのですが、当時はSymfony2の日本語のドキュメントも充実しておらず、英語の公式ページとにらめっこしながら開発してました。

今は、日本語の翻訳も進んで非常に充実したドキュメントになっているので分からなくても比較的すぐ解決できます。

 

 

ただ最近はSymfony自体、学習コストが高いとの理由で導入しにくいという声を多く聞きます。残念^^;

 実績としてはYahoo! BookmarksやDailymotionなどがSymfonyを採用しているみたいです。

 

カテゴリー
最新記事
アーカイブ
カテゴリー
最新記事
アーカイブ
facebook
Twitter
TOPへ戻る