プログラミング - THIS IS IT !

より良い開発をすべく日々奮闘しているプログラマーのブログです。設計に興味があります。主にPHPネタを書いてます 日本Symfonyユーザー会

PHPカンファレンス関西に参加してきました。

もう1月近く前になりますが、6/28日に行われたPHPカンファレンス関西 2014に参加してきました。 スタッフの皆様はお疲れ様でした。

前回ブログを書いたのが、2013-10-27 (http://okapon-pon.hatenablog.com/entries/2013/10/27) ということで、あまりにブログ離れし過ぎているのでせめて記録だけでもと思い、日記ということで書いておきます。

初のPHPカンファレンス関西参加

PHPカンファレンス関西は今回が初めての参加でした。

東京以外で行われている勉強会に参加すること自体、先日参加した「BEAR.Sunday meetup #3 in Osaka」に続き2回目でした。

感想

基調講演は、郡山さんの「全てを結ぶ力」でした。

講演者、@koriymさんのブログ記事 基調講演「全てを結ぶ力」にも一部公開されています。

基調講演は素晴らしい内容でした。

私のチープな表現では全てを表現しきれないですし、まとめることなんてできはしないのですが、

  • WEBの始まり、PHPの始まり、全ては1人の人間(開発者)から始まった。(BearSundayやその他の多くの開発者も)
  • PHPに未来はあるか? PHPは変化し続ける言語だから未来がある
  • 歴史の中でみたWEB:図書館から始まり、印刷革命からの本、そしてWEB/電子書籍へ(メディアシフトのまっただ中にいるのではないか?)
  • 私たちエンジニアの仕事は宇宙に星をつくるようなもので、WEBという歴史を作ることに参加しているのではないか(そう考えるとワクワクしませんか?)

この辺りのお話に心を揺さぶられました。

講演タイトル「全てを結ぶ力」ということで、一貫して「結びつく」というテーマでお話されており、聞いていワクワクし鳥肌が立ちました。

郡山さんだから話せる内容だし、魅力的だったのだと思います。

P.S.

ランチの時に郡山さんから基調講演裏話ということで、基調講演にかけられた想い試行錯誤などお話を聞けたのでは幸運でした。

そういえば朝もたまたま会場近くのスタバでご一緒しました。ベア吉が描かれたTシャツを見せて「これ分かります?」と嬉しそうに質問されたのが印象的でした。(その時は隣の席で近すぎた為わからず…講演の時にはバッチリベア吉だと分かりました。)

Symfony2.3 Standard Edition と 2.2 の差分

久々の更新です。

小ネタ程度に投稿しておきます。

Symfony2.3がリリースされてからもうだいぶ日もたっているのですが、2.3と2.2を比べてみました。

比べたと言ってもチェンジログを追ったわけでも変更点を説明するわけでもなく、vendorディレクトリ以下を除くStandart Editionのdiffををとっただけです。

たまたま、前回のSymfony勉強会(http://okapon-pon.hatenablog.com/entry/symfony-study8)で2.2でアプリを作ったので、それに 2.3のStandard Edition を放り込んで diffを見てみようと思っただけです。

では早速そののdiffについて
https://github.com/okapon/symfony-workshop/compare/master...update2.3

ぱっと見でよみとれるのは、JMSSecurityExtraBundle.git がスタンダードエディションから外れたので、それ関連のDemoコードが変わったり、debugコンポーネント、intlコンポーネントが使われるようになってるぐらいですかね。

configファイルの違いは多少は参考になるかもです。

以上です。

Symfony 勉強会 #8 に参加&開催してきました

先日5/25日に、Symfony 勉強会 #8 に参加、またワークショップの講師としてお手伝いしてきました。

会場はいつもお世話になっている 株式会社 VOYAGE GROUP さんでした。@brtriver さん会場の手配ありがとうございました。

前半

まず、前半には2つのセッション「Symfonyの基礎」と「Symfonyの最新情報」で、Symfonyというフレームワークがどういうものなのかというお話を、@hidenorigotoさんと@brtriver さんにお話いただきました。

「これだけは押さえておこう!Symfonyの基礎」

@hidenorigoto さん
http://phpmentors.jp/post/51433385026/8-symfony

まとめ→ Symfonyは良い線をいっている

Symfony最新動向」

@brtriver さん
スライド等はないですがブログはこちら
http://d.hatena.ne.jp/brtRiver/20130529/1369842211

  • SymfonyHWのリリーススケジュール(まもなく 2.3 long time supportバージョンがリリースされます)
  • BC breakについて
  • symfonyを取り巻く環境
  • symfonyオススメポイントなど

前半の話から

Symfony界の大御所お二人の安定感ある非常に分かりやすいお話でした。

基礎に関しては@hidenorigoto さんのスライドを見て頂くとして、お二人のお話で共通して話題となっていたのは、安心してつかえるフレームワークと言う点ですね。

  • フレームワーク自体がしっかりテストされていること。
  • 「リリーススケジュールが示されている」こと

これら2点はバージョンアップを重ねていくオープンソースフレームワークを使う側としては、これらがきちんとサポートされているのは非常に安心できるのではないでしょうか。

【参考】
Symfony2本体コードのテストページ(Travis CI)
https://travis-ci.org/symfony/symfony
※テストが落ちていることもありますが、それは機能している証拠です

【参考】
Symfonyのリリーススケジュール
http://symfony.com/doc/current/contributing/community/releases.html#schedule

アップデートに関して

また、バージョンアップに伴う後方互換性も比較的高いのもポイントです。(2.0→2.1は比較的大きな変更も多かったですが)
互換性の変更がないアップデートが仮にあったとしても、今後はデバッグツールバーが教えてくれるので早めに気がつけますし安心ですね。

デバッグツールバー
f:id:okapon_pon:20130531015910p:plain

私は普段の仕事では2.2を使っていないので、この勉強会に向けて改めて触ってみたりchange logを見てみたりしたのですが、本当に完成度の高いフレームワークになってきたように思います。こういうの欲しかったみたいな機能が次々と足されていくのは嬉しいですね。

前半の感想

"Symfonyの世界に触れてみよう!" という副題通りの素晴らしいお話でした。ただワークショップでコードを書いて動かすだけよりもSymfonyへの理解が深まったのではないかと思います。

Symfonyはよく難しいと聞きますが基本となる考え方はとてもシンプルで、そのような設計思想のもと出来上がったフレームワークです。どのフレームワークにしても背景にある哲学を学ぶのが大切なのだと思います。

それにしてもSymfonyユーザー会の人が面白いのは、決してSymfonyが一番いいフレームワークであると言わないことですね(笑)

後半ワークショップ

こちらは私の担当でした。 当日ワークショップで内容については、私のgithubのサンプルリポジトリwikiにてご確認いただけます。

ブログチュートリアル
https://github.com/okapon/symfony-workshop/wiki

また実際に動くコードをダウンロードしていただくことも可能です。Gitでtagを打っているので、wikiの各章とtagのpart1~8の対応を見ながらソースの変更を追いかけることもできます。
タグごとのアーカイブ
https://github.com/okapon/symfony-workshop/tags

完成形をまるっとDLしたい方は中央の、ZIPよりアーカイブをダウンロード下さい。
ブログチュートリアルリポジトリ
https://github.com/okapon/symfony-workshop

このチュートリアルは初めてSymfonyに触れる方を対象にしているため、例えば「本来SymfonyのFormの組立ならこう書く」みたいな話であったり、本来WEBアプリケーションとして考慮すべきことは割愛しています。

最後の15分ほど準備不足で駆け足で進めましたが、ほとんどの方がCRUDのあたりまで作りきることができたようです。

ワークショプの合間合間に教えて頂いた@brtriver さんの tipsが本当に素敵でした。

  • コマンドは重複がなければ省略形でも実行可 (app/console router:debug なら app/console r:de)
  • プロファイラーは過去のものも見れる

私も知らなかったので勉強になりました。

LT

  • ○○を支える技術 - Symfony導入事例 - by @_nishigori
  • 「Profiler が無いと開発できないカラダになってしまいました」+「DIを用いてクラスを差し替えられるお話*1」 by @brtriver

ProfilerについてはMySQLのEXPLAINが見れることの実演など

  • 「BEAR.AceをSymfonyに組み込んでみたお話*2」by @koriym

【参考】
BEAR.Ace: Ace online editor utility for PHP
https://github.com/koriym/BEAR.Ace

app_dev.phpに1行追加するだけで、syntaxエラーが発生した場合に、WEB上でエディタを立ち上げて編集できてしまうのはすごかったですね

謝辞や感想

初めてのワークショップの講師でしたが、@hidenorigotoさん、@brtriverさん、@_nishigoriさんにサポート頂きなんとかやり切ることができました。
また、Symfonyに興味を持って集まってくださった皆様ありがとうございました。

最後にDIを用いてサービスをつくる部分に関しては、本当に口頭のみの説明となってしまったうえ、私自身の力不足でDIの良さ、がコントローラー側に漏れ出さないようServiceを作ることなど十分に伝えることができなかったので、@hidenorigoto さんにサポート頂きました。ありがとうござます。

感覚的になんとなくDIやドメイン駆動設計の良さを感じているだけでは、いざ自分の口で表現しようとした時に十分伝えきることができないのだということを改めて感じました。

ブログでの情報発信や勉強会での発表を通して、磨いていきたいなと思いました。

次回はLTにも挑戦したいですね。

せっかくですので宣伝というか宣言しておきます。

こちらの日本Symfonyユーザー会のblogチュートリアルが古くなってしまっているので、今回のワークショップで作成した内容をベースに書き換えていきたいなと思います。

最後に

Symfonyを使っていて分からないことがありましたら、Symfonyユーザー会のメーリングリストまでお気軽にご質問下さい。
https://groups.google.com/forum/?fromgroups#!forum/symfony-users-ja

P.S. しんふぉにゃんかわいい

(公開後追記)
当日中や翌日にさっそくブログを書いてくださった方々もいらっしゃいます。

http://shiro-goma.hatenablog.com/entry/2013/05/26/005456
http://blog.livedoor.jp/ryo511-web/archives/27470234.html
http://tdak.hateblo.jp/entry/20130527/1369581393
http://frog377.hatenablog.com/entry/2013/05/26/211227

拙い講師でしたがトータルで見て、比較的満足度の高い勉強会となったようで良かったです。こういうのを読むと開催して良かったなと本当に思います。

私自身もいい刺激をもらうことができ、非常にモチベーションが上がりました。

皆様、ありがとうございました。

*1:ワークショップ中にProfilerの話を出してしまったので予定の変更がありました、予定外のお話でしたのでタイトルは私が適当につけてます

*2:飛び込みLT参加でしたのでタイトルは私の方でつけてます

ブログの更新「プログラミング - THIS IS IT」に名前を変更しました。

今までこちらのブログ名を「ぽんぽんブログ」と仮置きしていたのですが、「プログラミング - THIS IS IT」に変更しました。

「THIS IS IT」といえば、マイケル・ジャクソンが有名ですが、「THIS IS IT」自体の意味としては「これですよ」「まさにこれ!」なんて意味があります。

あーこれ!まさにこれだ!というような記事を書いていけたらなと思います。

今まであまりブログを書けていなかったのですが、頑張って書いていきたいと思います。

あと、hatena dialy時代に書いた記事はこちらにインポートしました。

【2013/6/1追記】
THIS IS ITといえば「PHP: Dis Is It」という話題の(?)発表もありましたよね。
http://www.bear-project.net/blog/2011/12/php-dis-is-it/

(続)SonataAdminBundleを翻訳してみたよ - Symfony Advent Calender 2012 24日目

こんにちは。@です。

この記事は Symfony Advent Calender 2012 Day24の記事です。

昨日は@co3kさんの「 Symfony のセキュリティリリースハンドリングがチョベリグになった話 」でした。私自身、なかなか公式ブログやメーリングリストを追えていなかったこともあり非常に勉強になりました。

それでは本題です。

『(続)SonataAdminBundleを翻訳してみたよ』 ってなんぞや?

実は昨年のAdvent Calender23日目に同じ内容( SonataAdminBundleを翻訳してみたよ)でエントリーしてAdminBundleの翻訳や使い方について紹介しました。

しかしながら、、それ以降まったくメンテされていなかったんですね。(_ _;)
AdminBundle自体全くと言っていいほど触っておらず、翻訳作業も完全に停止状態orz... これを機に重い腰を上げてみることにしました。

以前よりGitHub上には公開していたのですが、翻訳ドキュメントの場所が非常に分かり辛らかったと思うので、今回翻訳サイトを公開してみることにしました。ついでに少しばかりではありますが、翻訳作業も進めましたので紹介させて頂きます。

日本語翻訳サイト

http://sonataadminbundleja.site44.com/
http://sonatadoctrineormadminbundleja.site44.com/

本日(2012/12/24)公開しました。
あまり英語は得意でないので原文を残しつつ、日本語訳を載せました。

まだ翻訳できていない箇所がありますし、翻訳が不自然な箇所等あるかと思います。
個人でやっているので、更新が滞ることもあるかと思いますが(既に1年滞ってましたが)色々ご指摘いただけたらなと思います。

なお、このサイトはSymfony2.0系のバンドルの翻訳になります。Symfony2.1系や2.2系を期待されていた皆様。
ごめんなさい。masterの方の翻訳も対応していきたいと思います。

使い方は?

上の翻訳サイトで公開している内容がこの記事
の全てです。今回はBundleの使い方については紹介はできませんでした。また機会があれば紹介したいと思います。

色々ご紹介

今回翻訳サイトの公開にあたり、無料のWEBサービスオープンソースを利用しましたので紹介します。

リンクは後日
本家のプロジェクトををforkして翻訳してます。お手伝い頂ける方pull requestお待ちしています。
まだGitHubの方は去年のまま残っているのでもう少し整理したいと思います。整理できましたら追記したいと思います。

  • ドキュメント生成ツール(Shpinx)

python製のドキュメント生成ツール。ドキュメント生成系ではもはやデファクトですかね。色々なプロジェクトで利用されていますね。

  • Dropboxでサイトを公開できるサービス「site44」

http://www.site44.com/

気がついたら、dropboxのpublicファルダってなくなったんですね。上記のサービスを利用したらわずか5分ほどで簡単に公開できました。5サイトまで無料で公開できるようです。
Shinxでドキュメント生成して公開するのにもってこいのサービスですね。

最後に

皆さんもSymfonyの翻訳のお手伝いをしませんか?
ソースコードを公開するのはちょっと気が引けるというような方でも(私も含めて笑)、翻訳ならお手伝いできますし、翻訳を手伝いながらSphinx覚えたり、Git hub pull Request の 練習をしてみたいはいかがでしょうか?

ホントに最後に

皆様メリークリスマス〜
よいクリスマスをお過ごしください〜ヽ(=´▽`=)ノ



24日聖なる夜にやりきったった。。(´・ω・`)