symfonyコマンドでPhingエラーが出たとき

symfonyが呼んでいるPhingが、SfPeerBuilder.phpを見つけられないというエラーを吐いたとき

[PHP Error] Phing::include_once(symfony/symfony/addon/propel/builder/SfPeerBuilder.php): failed to open stream: No such file or directory [line 863 of C:/php-5.2.5/PEAR/symfony/vendor/phing/Phing.php]
[PHP Error] Phing::include_once(): Failed opening symfony/symfony/addon/propel/builder/SfPeerBuilder.php' for inclusion include_path='パス')

propel.iniの中のpropel.output.dir=以降のディレクトリ設定(sfPeerBuilderの場合はpropel.builder.peer.classとか)が違う可能性があります。他者のsymfonyプロジェクトを持ってきたときによく違っています。

ローカルで作った別のsymfonyプロジェクトからpropel.iniの該当部分をコピーすると直ったり。もちろん、元のプロジェクトの作者が意図的に変えているところは理解して残さないといけませんけど。

PHPライブラリで覚える英単語 – 数字編

Perlモジュールで覚える英単語 – 数字編 – – Yet Another Hackadelicを見て、ついかっとなって作った。


数字を英語にする

ぜひ使ってみてください。ついでにドイツ語とフランス語も出すようにしました。といっても僕はそれが正しいのかどうか確かめられないのですが。

# ドイツ語はなんか、すごい適当でダメだったということなので外しました。

これで海外で大きな金額の小切手を書かないといけなくなったときも大丈夫だねっ!

中身ですが、PHPClassesのNumber to wordというライブラリを使いました。

# いかん。ならべて新機能のリリース文を仕上げるはずだったのに、いつのまにか全然関係ないことを…

symfony1.1のtaskの作り方・使い方

symfony1.0ではinit-batchでCLI処理を作っていましたが、1.1ではtaskというのが導入されたようです。ブログで書かれていたチュートリアルを見ながら試してみます。バージョン1.1のCookbookにもこの解説は入るようです。

symfonyコマンドが元々呼び出せるタスク群(symfony generate:moduleとか)と同じように自分の作ったタスクを登録し、symfonyコマンドから呼び出すことができます。

$ symfony generate:task akky:hello-world

これで、akky:hello-worldという新タスクが登録されます。

symfonyコマンドを実行すると、タスクの一覧にもこのakky:hello-worldが出てきます。実行も既存タスクと同じで、

$ symfony akky:hello-world

このタスクの本体は、lib/task/akkyHelloworldTask.class.php にできています。

この生成されたコードの中に、タスクのヘルプを書いたりタスクが受け取れるパラメータを指定したり、そしてタスクの本体処理を書けます。

protected function execute($arguments = array(), $options = array())
{
// add code here
echo 'hello, world';
}

これで実行すると、symfonyコマンドからhello, worldを出力させることができました。

パラメータの受け取り方の詳細や、タスクから他のタスクを呼ぶ方法、環境に応じた処理の切り分け方法などは、元のブログ記事をどうぞ。

あと、generate:taskで作成はわかったけど、作ったタスクを消すにはどうするの、と該当するsymfonyコマンドが見当たらなくて迷ったのですけど、taskファイルを消してしまえばいいみたいです。

symfonyについて日本語で語りあうチャットが開始

人気PHPフレームワークsymfonyの新しいチャットルームが始まりました。symfonyを使っている人、興味のある人が気軽に情報交換できる場です。既に20人ものsymfony開発者が参加しています。

Skypeのパブリックチャットルームを使っているので、Skypeが必要です。スカイプはWindows, MacOSX, Linuxで動きます。

スカイプが起動したら、 http://tinyurl.com/5ek5xg にアクセスしてください。

僕は電話はほとんど使わないけど、Skypeチャットはよく使います。複数のパソコンからつなげることができて、それぞれで過去の発言をちゃんと読めるのが、某メッセンジャーより便利ですよ。

スカイプのチャットルームがはじめての方のために、便利な設定をいくつか紹介しますね。

デフォルトでは、誰かが発言するたびに、タスクバーが光ったり音がなったりします。これは人によっては邪魔でしょう。

チャットメッセージが来たときの音の通知を消す

メインウィンドウの[ツール]-[設定]-[サウンド]で、[チャットメッセージが着信したとき]のチェックをはずします

チャットルームからの通知を抑制する

チャットウィンドウの[オプション]-[チャット通知設定]で、[通知機能無効]をチェックします。

または、こっちのほうがオススメですが、同じ画面で[以下の単語が現れた時のみ通知]を選び、スペース区切りで「この単語が出てきたら通知してほしい」という単語を並べます。たとえば、

akky akimoto 秋元

とか。こうすると自分が呼ばれたときだけ通知が来ます。

チャットルームを閉じるとき、後で開きやすいように

チャットルームを閉じても、チャットには参加し続けていて、その間の会話も後で読むことができます。ただ、閉じたときに元のチャットルームを探して開くのがたいへんな場合もあるので、チャットウィンドウから[ブックマーク]-[このチャットをブックマーク]で、今いるチャットルームをブックマーク保存できます。

[関連]

#symfony-ja Skype Public Chatが出来ました