[symfony] admin generatorでデザインがあたらないとき


symfony1.2の管理画面自動生成機能を使うと、

$ symfony propel:generate-admin backend Post

だけで、Postクラスのオブジェクトを一覧して追加表示更新削除する画面を作ってくれますが、なぜか画面にデフォルトの管理画面のデザインが適用されず、アイコン類も出ないというのでつまりました。

呼べていない画像に/sfPropelPlugin/というパスがついてるので、それで検索をかけたら、同じ問題ではまってる人が公式フォーラムに。しかし、二人居て二人ともすぐに自己解決してます。

「脚注じゃなくて本文に書いてよ」とボヤかれていたので、マニュアルを見返したら、ちゃんとマニュアルに書いてありました。

$ symfony plugin:publish-assets

これを呼ばないと、generatorで作られた管理画面から呼ばれるCSSや画像ファイルがアプリの/web以下にコピーされないんですね。プラグインに含まれているCSS, 画像, Javascriptなんかを見える場所に移してくれるのがこのコマンドでした。

symfonyの主要ドキュメントがPDFでも提供開始


オフラインでもドキュメントを参照しやすいように、PDF版の提供が開始されました。

Jobeetチュートリアルは、symfony1.2の新しい本として出版されたPractical symfonyと同じものですね。バックエンドのORMでpropelを使う場合[pdf]のとDoctrineを使う場合[pdf]のと両方あります。

その他、sfFormの使い方を解説したForms bookやcookbook、symfony1.2への移行ガイドなどもpdfで入手できます。詳細は公式ブログで。

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冊の「オススメ本リスト」、日本語訳が出てるものが多いです。

The Definitive Guide to Symfony
著者/訳者: Francois Zaninotto
出版社: Apress( 2007-01-29 )
定価: ¥ 3,706

Scalable Internet Architectures (Developer's Library)
著者/訳者: Theo Schlossnagle
出版社: Sams( 2006-07-21 )
定価: ¥ 4,117

実践ハイパフォーマンスMySQL
著者/訳者: ジェレミ・D. ザウドニ
出版社: オライリージャパン( 2004-10 )
定価: ¥ 3,780

スケーラブルWebサイト
著者/訳者: Cal Henderson
出版社: オライリー・ジャパン( 2006-12-26 )
定価: ¥ 3,570

集合知プログラミング
著者/訳者: Toby Segaran
出版社: オライリージャパン( 2008-07-25 )
定価: ¥ 3,570

ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール
著者/訳者: Steve Souders
出版社: オライリージャパン( 2008-04-11 )
定価: ¥ 1,890

僕は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でも、まだこの問題は残ったままです。