symfony懇親会に行ってきました

ディノで開催されたsymfony懇親会に行ってきました。

PHPフレームワークのsymfonyについて語らう会です。いつもの勉強会だと発表者と受講者ですけど、今回の懇親会はみんなで気軽に親睦を深めるためのものです。

ピザばっかりとか言ってすいません。今日はデリのサンドイッチやベーグルでした。ディノの誇る(ビール)サーバと、新しく増えた(ワイン)ストレージも活躍で、楽しい会となりました。11時半でもまだ半分以上人がいて、いったい電車は大丈夫なんだろうかと思いつつ終電で帰ってきました。

再来週会社の出張でパリに行くことになったのですが、よい機会なのでパリ郊外のSensio Labs(symfonyを作っている会社)にも訪問する約束を取り付けました。今日の懇親会では、そこでFabienさん等に日本のウェブ業界やPHP, symfonyの状況を解説するためのプレゼン(の下書き。まだ現時点では)を飛び込み発表して、みなさんの意見をいろいろと伺うことができました。

今日はsymfonyプラグイン開発者の日です

symfony公式ブログで案内されていますが、11月8日 世界標準時15:00-21:00の間、symfony Plugin Developers Dayがオンラインで開催されます。

時間を日本時間に直すと、こうなります。

時間 セッション 場所
11/9(日) 0:00-2:00 プラグインの作成とリリース irc #symfonyチャンネル@freenode
11/9(日) 2:00-4:00 カスタマイズしやすいプラグインについて irc #symfonyチャンネル@freenode
11/9(日) 4:00-6:00 新旧プラグインをその場で改良 irc #symfonyチャンネル@freenode

最初の試みなので、実際にはその場のノリで変わるかもしれない、ということ。新作のpluginを提案したり、他のplugin作者に提案したりも期待されています。

ディスカッションを見てるだけでも歓迎、ということなので、今夜PCの前にいるsymfonyユーザのみなさん、ぜひ世界中のsymfony開発者とセッションを楽しみましょう。

僕はユーザネーム”akky”で入っています。

# 朝6時まで起きていられるかわかりませんが。

The second symfony study meeting Tokyo

The second time casual study meeting of popular PHP5 framework was held at Dino‘s seminar room, Shibuya, Tokyo.

There were three main sessions and one LT (lightening talk, flash 5 mins speech).

The first one by Kiryu Tsukimiya was about the coming version symfony 1.2, and “realistically” what version you should use for your starting project.

The second talk was on symfony 1.2 and its bundled Doctrine ORM by katsuhiro.

The third session was my talk, “symfony plugins, etc.“, where I talked about symfony plugins structures, and some useful plugins which can let you add a new functionality quickly.

The last lightening talk’s title was “how to set up symfony environment with 2 lines” by brtRiver.

There was an after-party at the same room, by almost all attendees with Dino’s-proud professional-use beer server and delivered pizzas.



Originally uploaded by Kiryu Tsukimiya


This month, the first CakePHP conference in Japan was held and one CakePHP core developer visited Japan to make speech to 150 PHP users. We spoked (with cups of beer) about the possibility if we will be able to ask people from sensiolabs and/or other experts for similar symfony conference in near future.

symfony camp 2008が始まってます

PHPフレームワークsymfonyのカンファレンスsymfony camp 2008がオランダで開催中です。

Fabienさんの初日のレポートで、さっそく面白いプレゼン資料が出てきてるので紹介します。(写真みたら、ほんとに「キャンプ」してるんですね)

この中で僕が興味を持ったのは、3番目のYahoo!でのsymfonyの使われ方の話と、4番目のチューニング話。

Yahoo!のほうは、大成功しているQ&AサイトのYahoo! Answersなどがsymfonyベースで動いていることの説明。初出じゃない話ですけど、なぜsymfonyを選定することに至ったかとか、大規模サイトの設計で考慮した点とか、symfonyから何を使って何を使わなかったかという取捨選択の話、そして最近公開されてきてますけど、Yahooが作った数々のsymfony pluginsについて(p.24)、などが語られています。

チューニングのほうは、symfony+PHP+Apache等で性能を稼ぐためのポイントがよくまとまってます。

Yahoo!のDustin Whittleさんがプレゼン資料の最後につけてくれた6冊の「オススメ本リスト」、日本語訳が出てるものが多いです。

[am]1590597869[/am]
[am]067232699X[/am]
[am]4873112095[/am]
[am]4873113113[/am]
[am]4873113644[/am]
[am]487311361X[/am]

僕は3冊読んでました。集合知プログラミングはまだ買ってないんだけど、読まなきゃなと思ってます。

Windows+symfony1.1でproject:deployを動かすためのパッチ

[追記 2010-08-16] symfony1.4ではこのあたりのコードが変更され、別のバグ(#8177)になっているみたいです。こちらを参照

symfonyには、ローカルから変更されたファイルだけを見つけてホストへアップロードしてくれるproject:deployというコマンド(symfony1.0ではsync)があります。書き換えたファイルを自分で選んでFTPでアップロード、なんてことはなくなるのでミスも減るし、なにより楽です。

前準備として、rsyncクライアントが必要なので、Windowsで動くcwRsyncを入れて、PATHを通しておきます

config/properties.iniで、デプロイ(展開)先のホストの情報を設定しておきます。

[production]
host=my.example.com
port=22
user=webmaster
dir=/home/htdocs/myapps/hoge

rsync_exclude.txtのほうは、ホストに上げたくないファイルを書くのですが、とりあえず初回はデフォルトのままでもいいかと。後で、ホストの環境向けに書き換えるファイルとかが出たときは、それをローカルのファイルで上書きしないよう、このファイルに追加しておきます。

あとは、プロジェクトのトップディレクトリでコマンドを打てばいいのですが、

> symfony project:deploy production

Windowsではこれが何も言わずに止まってしまいます。1.0からある問題で、1.0ではたとえばこちらで対処方法が書かれています。あとこれとかここも。

symfony1.1では、コマンド名や内部で呼ばれているファイルが変わったので、同様の対処をするには

> edit (symfony1.1)/php/symfony/task/sfFilesystem.class.php

のファイルを探して、passthru()を呼んでいるところを、下のように書き換えてください。

//  passthru($cmd.' 2>&1', $return);
    if (DIRECTORY_SEPARATOR == '\\') {
      passthru('start ' . $cmd.';pause', $return);
    } else {
      passthru($cmd.' 2>&1', $return);
    }

これで、

> symfony project:deploy production

と入力すると、別のコマンドプロンプトが開き、そこでホストのパスワードを尋ねてくるようになるはずです。

上のコマンドでは、どのファイルがアップされるかの確認だけになります(上記の修正では新しく開いたウィンドウがすぐ閉じてしまうので、実際には確認は大変ですが)。本当にアップロードを行なうには、オプションを追加して、

> symfony project:deploy –go production

とします。1.0とはいろいろと変わっていて面倒ですが、まあしょうがないか。

ああ、あとsymfonyのバージョンを上げるために pear upgrade symfony/symfony とかすると、書き換えたファイルがまた元に戻っちゃいます。1.1.0から1.1.1に移行してまた動かなくなってしまった。

[追記 2008.05.06] symfony1.2.6でも、まだこの問題は残ったままです。