<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>秋元 &#187; symfony</title>
	<atom:link href="http://akimoto.jp/blog/category/php/symfony-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://akimoto.jp/blog</link>
	<description>とある職業ブロガーの個人の方のブログ</description>
	<lastBuildDate>Thu, 29 Jul 2010 14:01:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/category/php/symfony-php/feed/" />
		<item>
		<title>symfony1.3/1.4がリリースされましたね</title>
		<link>http://akimoto.jp/blog/2009/12/01/symfony1-3_and_1-4_released/</link>
		<comments>http://akimoto.jp/blog/2009/12/01/symfony1-3_and_1-4_released/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 12:12:33 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[Swift Mailer]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=1715</guid>
		<description><![CDATA[
			
				
			
		
PHPのフレームワークsymfonyの新しいバージョンがでました!
リリース文
主な変更点はFivestarさんが簡単にまとめられてます。
1.2のメンテナンス期間の終わりを根拠に1.0 [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/12/01/symfony1-3_and_1-4_released/">symfony1.3/1.4がリリースされましたね</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F12%2F01%2Fsymfony1-3_and_1-4_released%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F12%2F01%2Fsymfony1-3_and_1-4_released%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>PHPのフレームワークsymfonyの新しいバージョンがでました!</p>
<p><a href="http://www.symfony-project.org/blog/2009/12/01/symfony-1-3-and-1-4-stable-released">リリース文</a></p>
<p>主な変更点は<a href="http://d.hatena.ne.jp/Fivestar/20091201/1259668781">Fivestarさんが簡単にまとめられてます</a>。</p>
<p>1.2のメンテナンス期間の終わりを根拠に1.0を使い続けるという人がいて最近悲しかったですが、これで堂々と「新規プロジェクトは1.4で」「1.2は1.3で(可能なら1.4)」とできますね。</p>
<p>メールライブラリとしてSwift Mailer 4が同梱されていますが、まだJISメールの問題が直ってないので、ご注意ください。</p>
<p>単発でsymfony1.3/1.4からメールを送りたいだけなら、日本語JISメールに対応した他のメールライブラリをlib/vendorに突っ込んで呼ぶとかでいいと思います。symfonyとSwift Mailerが用意しているいろいろな技をJISでも活用するには、もう少しお待ちください。</p>
<p>symfonyの導入は、新しい1.3/1.4でも<a href="http://www.symfony-project.org/getting-started/1_4/ja/">日本語のマニュアル</a>が既に用意されています。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/12/01/symfony1-3_and_1-4_released/">symfony1.3/1.4がリリースされましたね</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/12/01/symfony1-3_and_1-4_released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/12/01/symfony1-3_and_1-4_released/" />
	</item>
		<item>
		<title>Symfony Meetup Tokyoやります</title>
		<link>http://akimoto.jp/blog/2009/09/05/symfony-meetup-tokyo/</link>
		<comments>http://akimoto.jp/blog/2009/09/05/symfony-meetup-tokyo/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 23:24:04 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=1564</guid>
		<description><![CDATA[
			
				
			
		
PHPカンファレンス当日でいろいろと連絡が滞っていてすみません。
6(日)昼の「symfonyのFabienさんと東京観光」は予定通りやります。これまで参加を表明された方は、朝10:00 [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/09/05/symfony-meetup-tokyo/">Symfony Meetup Tokyoやります</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F09%2F05%2Fsymfony-meetup-tokyo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F09%2F05%2Fsymfony-meetup-tokyo%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>PHPカンファレンス当日でいろいろと連絡が滞っていてすみません。</p>
<p>6(日)昼の「<a href="http://akimoto.jp/blog/2009/09/02/tokyo-one-day-sightseeing-with-symfony-fabien-potencier/">symfonyのFabienさんと東京観光</a>」は予定通りやります。これまで参加を表明された方は、朝10:00に四谷に集まると思っていてください(途中から参加とか遅れる人のために、あとでメールで詳細は送ります) まだ人数増やせると思うので参加表明は<a href="http://akimoto.jp/blog/2009/09/02/tokyo-one-day-sightseeing-with-symfony-fabien-potencier/">こちら</a>を読んでください。</p>
<p>6(日)の夜、こちらも四谷近辺で、Symfony Meetupをやります。懇親会です。いい機会なのでsymfony使いで集まってゴハンを食べましょう。</p>
<h3>申し込みフォーム</h3>
<p>Symfony Meetup Tokyoは盛況のうちに終了いたしました。参加くださったみなさま、ありがとうございました!</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/09/05/symfony-meetup-tokyo/">Symfony Meetup Tokyoやります</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/09/05/symfony-meetup-tokyo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/09/05/symfony-meetup-tokyo/" />
	</item>
		<item>
		<title>技術メディアのみなさん、symfonyのFabien Potencierさんへの取材どうでしょう?</title>
		<link>http://akimoto.jp/blog/2009/09/03/how-about-symfony-interview/</link>
		<comments>http://akimoto.jp/blog/2009/09/03/how-about-symfony-interview/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 14:51:37 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[pcj09]]></category>
		<category><![CDATA[カンファレンス]]></category>
		<category><![CDATA[取材]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=1561</guid>
		<description><![CDATA[
			
				
			
		
PHPカンファレンスの開催がいよいよ明日・明後日となりました。
今回は、10周年ということで海外からも3名の講演者をお呼びしての充実したカンファレンスとなっています。(参加は両日とも<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/09/03/how-about-symfony-interview/">技術メディアのみなさん、symfonyのFabien Potencierさんへの取材どうでしょう?</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F09%2F03%2Fhow-about-symfony-interview%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F09%2F03%2Fhow-about-symfony-interview%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://phpcon.php.gr.jp/2009/">PHPカンファレンス</a>の開催がいよいよ明日・明後日となりました。</p>
<p>今回は、10周年ということで海外からも3名の講演者をお呼びしての充実したカンファレンスとなっています。(参加は両日とも満員で締め切っています)</p>
<p>symfonyのリーダーFabien Potencierさん、FacebookのBrian Shireさん、台湾PHPユーザー会の江 明宗さんのお三方は、なかなか東京で話せる機会もないと思いますので、ぜひ取材等いかがでしょうか? (拙いですが通訳できます)</p>
<p>特に、カンファレンス当日は<a href="http://phpcon.php.gr.jp/2009/page/sponsors">PHPカンファレンスのメディアスポンサー各社(スポンサーありがとうございます)のみなさま</a>に、ぜひ取材いただければと思います。</p>
<p>ご興味ありましたら、ぜひPHPカンファレンスでお声をかけていただくか、akimotoアットgmailかtwitter.com/akkyまで御連絡ください</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/09/03/how-about-symfony-interview/">技術メディアのみなさん、symfonyのFabien Potencierさんへの取材どうでしょう?</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/09/03/how-about-symfony-interview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/09/03/how-about-symfony-interview/" />
	</item>
		<item>
		<title>symfonyのFabienさんと東京一日観光</title>
		<link>http://akimoto.jp/blog/2009/09/02/tokyo-one-day-sightseeing-with-symfony-fabien-potencier/</link>
		<comments>http://akimoto.jp/blog/2009/09/02/tokyo-one-day-sightseeing-with-symfony-fabien-potencier/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 16:58:53 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[東京]]></category>
		<category><![CDATA[観光]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=1556</guid>
		<description><![CDATA[
			
				
			
		
symfonyユーザーの皆様
きたる5日(土)のPHPカンファレンス2009テックデイでは、symfonyのプロジェクトリーダー兼Sensio社の社長であるFabien Potencie [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/09/02/tokyo-one-day-sightseeing-with-symfony-fabien-potencier/">symfonyのFabienさんと東京一日観光</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F09%2F02%2Ftokyo-one-day-sightseeing-with-symfony-fabien-potencier%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F09%2F02%2Ftokyo-one-day-sightseeing-with-symfony-fabien-potencier%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>symfonyユーザーの皆様</p>
<p>きたる<a href="http://phpcon.php.gr.jp/2009/">5日(土)のPHPカンファレンス2009テックデイ</a>では、symfonyのプロジェクトリーダー兼Sensio社の社長であるFabien Potencier(ファビエン・プートンシェ)さんがはるばるフランスから初来日し、symfonyプロジェクトについて講演されます。</p>
<p>今回が初来日、また講演の翌日6日(日曜日)がオフということで、Fabienさんと一緒に日本のsymfonyコミュニティ(ユーザー/開発者)のみなさんとめぐる東京一日観光を行ないます。</p>
<p>二日間のPHPカンファレンスの直後でお疲れかもしれませんが、symfonyの今後についてやプロジェクトの要望などについて直接Fabienさんと話せる貴重な機会になるかと思います(通訳は有志2,3名でお手伝いしますが、ちょっと勇気を出して直接英語で、あるいは仏語でお話してみるのもよいかと)。</p>
<p>ツアー名: (仮)symfonyについて語りつつ一日東京観光<br />
日時: 2009年9月6日(日) 朝から夜まで<br />
場所候補(検討中): 浅草寺・秋葉原・皇居・明治神宮/原宿・まだ大地に立ってればお台場ガンダム・都庁展望台・他に面白いところあれば<br />
移動手段: 電車/徒歩メイン<br />
参加資格: symfonyを使ってる、使いたい、これを機に○○○○○○○から切り替えてみようかな、という人。あと昼食夕食場所の手配とかもろもろ手伝ってくれる人<br />
予定人数: 多くて10人ぐらい? そこまで居ないと思いますが、20人とか30人とかになったらたいへんかもと思いますがどうでしょう?</p>
<p>申し込み: 「a k i m o t o あっと gmail どっと com」へ、サブジェクトに「symfony東京観光参加希望」と入れてください。金曜夜締め切り</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/09/02/tokyo-one-day-sightseeing-with-symfony-fabien-potencier/">symfonyのFabienさんと東京一日観光</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/09/02/tokyo-one-day-sightseeing-with-symfony-fabien-potencier/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/09/02/tokyo-one-day-sightseeing-with-symfony-fabien-potencier/" />
	</item>
		<item>
		<title>symfony1.2でsfSuperCachePluginを使う</title>
		<link>http://akimoto.jp/blog/2009/05/08/use-sfsupercacheplugin-on-symfony12/</link>
		<comments>http://akimoto.jp/blog/2009/05/08/use-sfsupercacheplugin-on-symfony12/#comments</comments>
		<pubDate>Fri, 08 May 2009 13:25:38 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[sfSuperCachePlugin]]></category>
		<category><![CDATA[super cache]]></category>
		<category><![CDATA[symfony1.2]]></category>
		<category><![CDATA[キャッシュ]]></category>
		<category><![CDATA[チューニング]]></category>
		<category><![CDATA[パフォーマンス]]></category>
		<category><![CDATA[設定]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=1259</guid>
		<description><![CDATA[
			
				
			
		
symfonyでsuper cacheを実現するsfSuperCachePluginの、symfony1.2での使い方について。
super cacheは、動的にページを生成するWebア [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/05/08/use-sfsupercacheplugin-on-symfony12/">symfony1.2でsfSuperCachePluginを使う</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F05%2F08%2Fuse-sfsupercacheplugin-on-symfony12%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F05%2F08%2Fuse-sfsupercacheplugin-on-symfony12%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>symfonyでsuper cacheを実現する<a href="http://www.symfony-project.org/plugins/sfSuperCachePlugin">sfSuperCachePlugin</a>の、symfony1.2での使い方について。</p>
<p>super cacheは、動的にページを生成するWebアプリケーションにおいて、ほとんどの場合にWebサーバの仕組みを使って静的に作成したhtml(等)を直接クライアントに返すことでサーバの応答を早くし、サーバの負荷も軽減する手法です。</p>
<p>よく知られているのはWordPressのSuperCacheプラグインです。これを正しく設定すれば、動的生成でありながら静的生成のパフォーマンスを持つブログを運営することができます。</p>
<p>これまで自作でsuper cache相当の仕組みを作ったことはあるのですが、symfonyのプラグインがあるのでこれが使えるかどうか調べてみました。</p>
<p>とりあえず、<a href="http://www.symfony-project.org/plugins/sfSuperCachePlugin">README</a>にあるように進めてみます。</p>
<h3>プラグインのインストール</h3>
<p>まず、プラグインはsymfony1.0にしか対応していませんので、普通にsymfonyコマンドでインストールしようとするとエラーになります。</p>
<p>コマンドインストールで失敗したときはいつもそうですが、パッケージを持ってきて自分で展開してみます。バージョンチェックが入ってるだけのことも多いので、これで動いてしまうプラグインも多いです。</p>
<p>> wget http://plugins.symfony-project.org/get/sfSuperCachePlugin/sfSuperCachePlugin-1.0.5.tgz</p>
<p>展開したら、sfSuperCachePlugin-1.0.5 というフォルダを、symfonyの作業フォルダ以下の plugins/sfSuperCachePlugin というフォルダにリネームしつつコピーします。</p>
<p>あとは、pluginsの下のプラグインを全部読むようになっていればsymfony ccするだけで自動的にロードされます。なってなければ、config/ProjectConfiguration.class.php のsetup()で、enableAllPluginsExcept()等を使って読み込まれるプラグインに指定してください。</p>
<p>このまま先へ進んでいくと、1.0と1.2の非互換でエラーになります。先に修正箇所を示すと、sfSuperCacheFilterの次の行</p>
<blockquote><p><code lang="php"><br />
$uri = sfRouting::getInstance()->getCurrentInternalUri();<br />
</code></p></blockquote>
<p>を、以下のように変更する必要があります。</p>
<blockquote><p><code lang="php"><br />
$uri = sfContext::getInstance()->getRouting()->getCurrentInternalUri();<br />
</code></p></blockquote>
<h3>キャッシュ格納ディレクトリの用意</h3>
<p>(symfonyアプリ)/web 以下に、静的ファイルの置き場を作ります。READMEにならって&#8221;cache&#8221;ディレクトリにします</p>
<p>> cd web<br />
> mkdir cache</p>
<p>Un*xの場合はオーナーやパーミッションも調整してください</p>
<h3>フィルタを噛ませる</h3>
<p>プラグインの中に入ってるphpは、フィルタファイル一個だけです。これを(frontend)/filters.yml の # insert your own filters here のところに追加します。</p>
<blockquote><p>
<code></p>
<pre>
supercache:
  class: sfSuperCacheFilter
  param:
    cache_dir: cache
    with_host: false
</pre>
<p></code>
</p></blockquote>
<p>ホスト名を複数持たないならwith_hostはfalseでいいです。持つ場合、この後の設定も準じて変わるのでREADMEを読んでください。</p>
<h3>リクエストがまず静的ファイルを見に行くように、.htaccessを修正</h3>
<p>web/.htaccess を書き換えます。以下の2行のところを、</p>
<blockquote><p><code><br />
 RewriteRule ^$ index.html [QSA]<br />
 RewriteRule ^([^.]+)$ $1.html [QSA]<br />
</code></p></blockquote>
<p>たとえば、以下のように書き換えます。</p>
<blockquote><p><code><br />
  RewriteCond %{REQUEST_METHOD} GET<br />
  RewriteCond %{DOCUMENT_ROOT}/symfony_apps/sandbox/web/cache/supercache/%{PATH_INFO}.php -f<br />
  RewriteRule ^(.*)$ cache/$1.php [L]<br />
</code></p></blockquote>
<p>この書き換え、READMEについてきたREQUEST_URIを使ったものが動かなかったので、自分で動くものを探してこんな風にしました。サブディレクトリにアプリを置いたりしなければREADMEのままのでも動くのかも。mod_rewriteは難しくてよくわからんです。</p>
<blockquote><p>
mod_rewriteが思うように動かないときは、とにかくhttpd.confの設定でrewrite logを取り、出たログを読みましょう。
</p></blockquote>
<p>やってるのは、</p>
<blockquote><p>
<code><br />
  web/cache/ほげほげ/ふがふが.php<br />
</code>
</p></blockquote>
<p>というファイルがアクセスされて、もしそれがあったら、そのファイルを直に実行して表示してしまう、という処理です。</p>
<p>もしファイルが無かったら、mod_rewriteの処理は下方のルールに落ちて行って、いつものフロントエンドコントローラ(web/index.php)を呼ぶようになっています。</p>
<p>これで、staticファイルが出来てればそのまま表示、出来てなければsymfonyを普通に実行(し、filters.ymlで挟んだフィルタがstaticファイルを生成)、というsuper cacheが完成となります。</p>
<h3>super cacheを動かす条件</h3>
<p>フィルタファイル sfSuperCacheFilter.class.php の中を読むとわかるのですが、super cacheが発動するには、いろいろな設定がされている必要があります。そうしないと、super cacheを動かしてたつもりが普通のキャッシュされたファイルを見てたりすることにもなります。</p>
<ul>
<li>sf_cacheがtrue/onであること</li>
<li>$_GETや$_POSTのパラメータが無いこと</li>
<li>sf_debugがfalseであること、つまりデバッグモードでは呼ばれません</li>
<li>sf_no_script_nameがtrueであること</li>
<li>エラーコードが200(正常)であること。エラーページとかを403で返しているなら、それはsuper cacheの対象外です</li>
<li>そのmoduleのdefault cacheが enable: on であること</li>
<li>そのmodule/actionの cacheが enable: on であること</li>
<li>そのmodule/actionの with_layout: がtrueであること</li>
</ul>
<p>キャッシュを使うことになってるページで、ページ全体をキャッシュして問題無く、GET/POSTパラメータも渡ってこない(パラメータが違えば普通ページ内容も変わりますから)という条件。</p>
<p>これ全部満たして、はじめてsuper cacheフィルタが効きます。</p>
<p>sfSuperCacheFilter::execute()のチェック文を、デバッガ等で確認しながらsettings.ymlやcache.ymlの設定を変え、(symfony ccもして、)動く設定になってることを確かめてください。</p>
<h3>superキャッシュの動作確認</h3>
<p>この状態でモジュールをつくり、適当にアクセスしてください。</p>
<p>frontend_dev.phpとか呼んじゃダメですよ。debug offなのでprodである/ (= index.php)を呼びます。</p>
<blockquote><p>
<code><br />
web/cache/(アプリ名)/(モジュール名)/(アクション名).php<br />
</code>
</p></blockquote>
<p>などとファイルが出来ていたら、まずフィルタによるstaticファイル生成は合格です。</p>
<p>次に、もう一度アクセスしたときにこの生成されたファイルが開いてるのか、それともsymfony標準のcacheが開いてるのかを確認します。これは、cache/frontend/prod/template/&#8230; 以下の標準のキャッシュファイルを手で消してから、ブラウザでアクセスしてみるとわかります。staticなファイルが呼ばれて開かれていれば、標準のキャッシュは作られないはずです。</p>
<h3>super cache完成か?</h3>
<p>とまあ、プラグインで用意されているのはここまでです。しかし、生成されたstaticなファイルは拡張子が.phpなんですね。そこでそれらのファイルをエディタで開くと、先頭にphpのコードが一行入ってます。</p>
<blockquote><p><code lang="php"><br />
&lt;?php if (time() > 1241771234) { unlink(__FILE__); header('Location: '.$_SERVER['REQUEST_URI']);  exit; } ?><br />
</code></p></blockquote>
<p>これで、自身のキャッシュ寿命を計りつつ、もし寿命が来ていたら自分自身を削除してもう一度同じURLにリダイレクト、とすることで、expireの処理を行なっているようです。</p>
<p>と、いうことは、このsuper cache、phpを回避してないのですね。厳密には super cacheと言えないのではと思います。たとえ一行とは言え、phpインタプリタをファイル毎に起動しているのです。</p>
<p>このプラグインはここまでなので、PHPを完全にスルーするsuper cacheの実現には、もう一手間かける必要があります。</p>
<p>生成するのは.phpじゃなく.htmlにし、もちろん先頭にphpコードは入れません。.htaccessの定義も.htmlに変えます。</p>
<p>そうなると、キャッシュのexpire判定は自分でやらせるわけには行きません。別のトリガーでこのキャッシュファイルを消すことになります。</p>
<p>たとえば、cronで動かしたスクリプトで定期的にこのcache/以下を見て、ファイル生成時を見つつ古すぎるものを消す、が一案。</p>
<p>もう一つは、CacheManagerで明示的にキャッシュをクリアされるタイミングで、このcache/以下の該当する静的ファイルも削除することです。</p>
<p>super cacheで用意したcache/以下のキャッシュファイルは、先頭行のPHPでexpireを自己診断した際しか消えないので、どのみちCacheManagerでのクリアをどうするかというのは検討しないといけないですね。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/05/08/use-sfsupercacheplugin-on-symfony12/">symfony1.2でsfSuperCachePluginを使う</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/05/08/use-sfsupercacheplugin-on-symfony12/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/05/08/use-sfsupercacheplugin-on-symfony12/" />
	</item>
		<item>
		<title>プレゼン中にすごいスクリーンセーバーが発動する動画</title>
		<link>http://akimoto.jp/blog/2009/05/06/screensaver-not-safe-for-seminar-at-all/</link>
		<comments>http://akimoto.jp/blog/2009/05/06/screensaver-not-safe-for-seminar-at-all/#comments</comments>
		<pubDate>Tue, 05 May 2009 16:37:37 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[ネタ]]></category>
		<category><![CDATA[エロ]]></category>
		<category><![CDATA[プレゼンテーション]]></category>
		<category><![CDATA[動画]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=1256</guid>
		<description><![CDATA[
			
				
			
		
変なスクリーンセイバーを愛用してると、プレゼンテーションで大恥かくかもしれませんよ。ご注意!

Embarrassing porn screensaver during a presen [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/05/06/screensaver-not-safe-for-seminar-at-all/">プレゼン中にすごいスクリーンセーバーが発動する動画</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F05%2F06%2Fscreensaver-not-safe-for-seminar-at-all%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F05%2F06%2Fscreensaver-not-safe-for-seminar-at-all%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>変なスクリーンセイバーを愛用してると、プレゼンテーションで大恥かくかもしれませんよ。ご注意!</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler"><param name="movie" value="http://www.viddler.com/player/47b7d676/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/47b7d676/" width="437" height="370" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler" ></embed></object></p>
<p><a href="http://thenextweb.com/2009/05/05/embarrassing-porn-screensaver-presentation/">Embarrassing porn screensaver during a presentation. [NSFW] &#8211; The Next Web</a></p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/05/06/screensaver-not-safe-for-seminar-at-all/">プレゼン中にすごいスクリーンセーバーが発動する動画</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/05/06/screensaver-not-safe-for-seminar-at-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/05/06/screensaver-not-safe-for-seminar-at-all/" />
	</item>
		<item>
		<title>symfony1.2.6セキュリティリリース</title>
		<link>http://akimoto.jp/blog/2009/04/28/symfony-126security-release/</link>
		<comments>http://akimoto.jp/blog/2009/04/28/symfony-126security-release/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 16:59:34 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[security fix]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=1217</guid>
		<description><![CDATA[
			
				
			
		
syfony1.2系のアップデート1.2.6が出ました。
セキュリティリリースということで、唯一件のバグ修正となっています。
1. symfonyのアドミンジェネレータを使っている人で、 [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/04/28/symfony-126security-release/">symfony1.2.6セキュリティリリース</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F04%2F28%2Fsymfony-126security-release%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F04%2F28%2Fsymfony-126security-release%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.symfony-project.org/installation/1_2">syfony1.2系のアップデート1.2.6が出ました</a>。</p>
<p>セキュリティリリースということで、唯一件のバグ修正となっています。</p>
<p>1. symfonyのアドミンジェネレータを使っている人で、<br />
2. unset()を明示的に呼ばずに<br />
3. generator.ymlに書かないことでフィールドを隠すような使い方をしていた場合に、</p>
<p>攻撃を受ける可能性がある、というのをコアチーム内のレポートで発見し、修正したということです。</p>
<p>上記に当てはまるようなコードを書いた人で1.2.x系全部と次の1.3系ブランチを使っている人は、アップデートするか、パッチを当てるか、unset()を必ず呼ぶコードに直すか、するべきだということです。</p>
<p># で、あってると思いますが、必ず<a href="http://www.symfony-project.org/blog/2009/04/27/symfony-1-2-6-security-fix">原文</a>にも当たってください</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/04/28/symfony-126security-release/">symfony1.2.6セキュリティリリース</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/04/28/symfony-126security-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/04/28/symfony-126security-release/" />
	</item>
		<item>
		<title>symfonyのキャッシュマネージャーが取れないとき</title>
		<link>http://akimoto.jp/blog/2009/03/18/when-symfony-cache-manager-becomes-null/</link>
		<comments>http://akimoto.jp/blog/2009/03/18/when-symfony-cache-manager-becomes-null/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 14:08:42 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[エラー]]></category>
		<category><![CDATA[キャッシュ]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=1068</guid>
		<description><![CDATA[
			
				
			
		
symfonyで、キャッシュが効いているページを強制的にクリアしたいとき、

  $cacheManager = $this-&#62;getContext&#40;&#41;-&#62;g [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/03/18/when-symfony-cache-manager-becomes-null/">symfonyのキャッシュマネージャーが取れないとき</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F03%2F18%2Fwhen-symfony-cache-manager-becomes-null%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F03%2F18%2Fwhen-symfony-cache-manager-becomes-null%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>symfonyで、キャッシュが効いているページを強制的にクリアしたいとき、</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">  <span style="color: #000088;">$cacheManager</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getContext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getViewCacheManager</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$cacheManager</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'quiz/index?id='</span><span style="color: #339933;">.</span><span style="color: #000088;">$quizIdToRemove</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>とかやってたのですが、デバッグ環境でエラーが出てしまいました。</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Fatal error<span style="color: #339933;">:</span> Call to a member <span style="color: #000000; font-weight: bold;">function</span> set<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> on a non<span style="color: #339933;">-</span>object in <span style="color: #339933;">...</span></pre></div></div>

<p>実環境でエラーにならないのでうんうん悩んで調べてみたら、デバッグ環境ではcache: off にしてました。getViewCacheManager()はキャッシュ使ってなければnullを返すようです。</p>
<p># 考えてみたら当たりまえか</p>
<p>問題は、これがfatal errorで止まっていたためにトランザクションが完了していなかったことです。</p>
<p>cacheManagerを取得したときは、必ずnullチェックして、キャッシュが使われてるときだけ呼び出しましょう。 > 自分</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/03/18/when-symfony-cache-manager-becomes-null/">symfonyのキャッシュマネージャーが取れないとき</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/03/18/when-symfony-cache-manager-becomes-null/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/03/18/when-symfony-cache-manager-becomes-null/" />
	</item>
		<item>
		<title>symfony APIがブラウザから直接検索できるように(OpenSearch API)</title>
		<link>http://akimoto.jp/blog/2009/02/25/symfony-api%E3%81%8C%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%8B%E3%82%89%E7%9B%B4%E6%8E%A5%E6%A4%9C%E7%B4%A2%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%ABopensearch-api/</link>
		<comments>http://akimoto.jp/blog/2009/02/25/symfony-api%E3%81%8C%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%8B%E3%82%89%E7%9B%B4%E6%8E%A5%E6%A4%9C%E7%B4%A2%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%ABopensearch-api/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 11:14:51 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[OpenSearch API]]></category>
		<category><![CDATA[ブラウザ]]></category>
		<category><![CDATA[マニュアル]]></category>
		<category><![CDATA[検索]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=971</guid>
		<description><![CDATA[
			
				
			
		
本家ブログでの発表から。symfony APIの検索フォームが、OpenSearch APIで提供されるようになりました。
syfony公式ページに行くと、ブラウザ右上のサーチボックスが [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/25/symfony-api%E3%81%8C%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%8B%E3%82%89%E7%9B%B4%E6%8E%A5%E6%A4%9C%E7%B4%A2%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%ABopensearch-api/">symfony APIがブラウザから直接検索できるように(OpenSearch API)</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F25%2Fsymfony-api%25E3%2581%258C%25E3%2583%2596%25E3%2583%25A9%25E3%2582%25A6%25E3%2582%25B6%25E3%2581%258B%25E3%2582%2589%25E7%259B%25B4%25E6%258E%25A5%25E6%25A4%259C%25E7%25B4%25A2%25E3%2581%25A7%25E3%2581%258D%25E3%2582%258B%25E3%2582%2588%25E3%2581%2586%25E3%2581%25ABopensearch-api%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F25%2Fsymfony-api%25E3%2581%258C%25E3%2583%2596%25E3%2583%25A9%25E3%2582%25A6%25E3%2582%25B6%25E3%2581%258B%25E3%2582%2589%25E7%259B%25B4%25E6%258E%25A5%25E6%25A4%259C%25E7%25B4%25A2%25E3%2581%25A7%25E3%2581%258D%25E3%2582%258B%25E3%2582%2588%25E3%2581%2586%25E3%2581%25ABopensearch-api%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.symfony-project.org/blog/2009/02/24/opensearch-support-for-the-symfony-api">本家ブログでの発表</a>から。symfony APIの検索フォームが、OpenSearch APIで提供されるようになりました。</p>
<p>syfony公式ページに行くと、ブラウザ右上のサーチボックスが変化して、OpenSearchに対応していることを示してくれます。Firefox3ではこんな感じ。</p>
<p><a href="http://akimoto.jp/blog/wp-content/uploads/2009/02/symfony-api-opensearch-screenshot.png"><img src="http://akimoto.jp/blog/wp-content/uploads/2009/02/symfony-api-opensearch-screenshot.png" alt="" title="symfony-api-opensearch-screenshot" width="340" height="153" class="alignnone size-medium wp-image-972" /></a></p>
<p>symfony API 1.2を追加</p>
<p><a href="http://akimoto.jp/blog/wp-content/uploads/2009/02/symfony-api-12-add-screenshot.png"><img src="http://akimoto.jp/blog/wp-content/uploads/2009/02/symfony-api-12-add-screenshot.png" alt="" title="symfony-api-12-add-screenshot" width="309" height="105" class="alignnone size-medium wp-image-973" /></a></p>
<p>すると、このあと、サーチボックスでsymfony APIが選べるので、ここにsymfonyフレームワークのクラス名や関数名を入れると、</p>
<p><a href="http://akimoto.jp/blog/wp-content/uploads/2009/02/symfony-api-search-usage-screenshot.png"><img src="http://akimoto.jp/blog/wp-content/uploads/2009/02/symfony-api-search-usage-screenshot.png" alt="" title="symfony-api-search-usage-screenshot" width="273" height="124" class="alignnone size-medium wp-image-974" /></a></p>
<p>APIマニュアルの該当ページにジャンプします。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/25/symfony-api%E3%81%8C%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%8B%E3%82%89%E7%9B%B4%E6%8E%A5%E6%A4%9C%E7%B4%A2%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%ABopensearch-api/">symfony APIがブラウザから直接検索できるように(OpenSearch API)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/02/25/symfony-api%E3%81%8C%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%8B%E3%82%89%E7%9B%B4%E6%8E%A5%E6%A4%9C%E7%B4%A2%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%ABopensearch-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/02/25/symfony-api%E3%81%8C%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%8B%E3%82%89%E7%9B%B4%E6%8E%A5%E6%A4%9C%E7%B4%A2%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%ABopensearch-api/" />
	</item>
		<item>
		<title>Windows+cygwin+sshで&#8221;Could not create directory&#8221;が出るとき</title>
		<link>http://akimoto.jp/blog/2009/02/19/windowscygwinssh%E3%81%A7could-not-create-directory%E3%81%8C%E5%87%BA%E3%82%8B%E3%81%A8%E3%81%8D/</link>
		<comments>http://akimoto.jp/blog/2009/02/19/windowscygwinssh%E3%81%A7could-not-create-directory%E3%81%8C%E5%87%BA%E3%82%8B%E3%81%A8%E3%81%8D/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 04:10:31 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=959</guid>
		<description><![CDATA[
			
				
			
		
エラーメッセージでは
Could not create directory &#8216;/home/(ユーザ名)/.ssh&#8217;.

とか出ますが、cygwinが認識するあなた [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/19/windowscygwinssh%E3%81%A7could-not-create-directory%E3%81%8C%E5%87%BA%E3%82%8B%E3%81%A8%E3%81%8D/">Windows+cygwin+sshで&#8221;Could not create directory&#8221;が出るとき</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F19%2Fwindowscygwinssh%25E3%2581%25A7could-not-create-directory%25E3%2581%258C%25E5%2587%25BA%25E3%2582%258B%25E3%2581%25A8%25E3%2581%258D%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F19%2Fwindowscygwinssh%25E3%2581%25A7could-not-create-directory%25E3%2581%258C%25E5%2587%25BA%25E3%2582%258B%25E3%2581%25A8%25E3%2581%258D%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>エラーメッセージでは</p>
<blockquote><p>Could not create directory &#8216;/home/(ユーザ名)/.ssh&#8217;.
</p></blockquote>
<p>とか出ますが、cygwinが認識するあなたのホームディレクトリはC:ドライブのルートとかではなくてcygwinのインストールディレクトリなので、たとえば、</p>
<blockquote><p>C:/cygwin/home/akky/.ssh/
</p></blockquote>
<p>というディレクトリを作れば、そこにsshの設定を書き込んでくれます。</p>
<p>&#8216;.ssh&#8217;というドットで始まるディレクトリの作り方は、.htaccessとかのファイルの時と同様ですが、GUIでは作れない(エラーになる。ムキー)ので、&#8221;ssh&#8221;とでもして作っておいて、コマンドプロンプトでその&#8221;ssh&#8221;があるディレクトリへ移動して、</p>
<blockquote><p>> ren ssh .ssh
</p></blockquote>
<p>でその名前にできます。</p>
<p>cygwinの設定ファイルを変更してまったく別のディレクトリを使う手もあると思います。あくまで一例。</p>
<p>symfonyのsync(1.0の場合)、project:deploy(1.2の場合)がsshを呼び出す場合に上のエラーが気になる場合の対処でした。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/19/windowscygwinssh%E3%81%A7could-not-create-directory%E3%81%8C%E5%87%BA%E3%82%8B%E3%81%A8%E3%81%8D/">Windows+cygwin+sshで&#8221;Could not create directory&#8221;が出るとき</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/02/19/windowscygwinssh%E3%81%A7could-not-create-directory%E3%81%8C%E5%87%BA%E3%82%8B%E3%81%A8%E3%81%8D/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/02/19/windowscygwinssh%E3%81%A7could-not-create-directory%E3%81%8C%E5%87%BA%E3%82%8B%E3%81%A8%E3%81%8D/" />
	</item>
		<item>
		<title>[symfony] プラグインを簡単に作るためのプラグインsfTaskExtraPlugin</title>
		<link>http://akimoto.jp/blog/2009/02/03/symfony-%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E7%B0%A1%E5%8D%98%E3%81%AB%E4%BD%9C%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3sftaskextraplugin/</link>
		<comments>http://akimoto.jp/blog/2009/02/03/symfony-%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E7%B0%A1%E5%8D%98%E3%81%AB%E4%BD%9C%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3sftaskextraplugin/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 09:30:38 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[sfTaskExtraPlugin]]></category>
		<category><![CDATA[ツール]]></category>
		<category><![CDATA[パッケージング]]></category>
		<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=914</guid>
		<description><![CDATA[
			
				
			
		
symfonyのプラグインはPEARのパッケージシステムを使っているのですけど、PEARのパッケージングって結構面倒で、僕はあまり好きではありません。PEARにもパッケージを作るためのツ [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/03/symfony-%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E7%B0%A1%E5%8D%98%E3%81%AB%E4%BD%9C%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3sftaskextraplugin/">[symfony] プラグインを簡単に作るためのプラグインsfTaskExtraPlugin</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F03%2Fsymfony-%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%2592%25E7%25B0%25A1%25E5%258D%2598%25E3%2581%25AB%25E4%25BD%259C%25E3%2582%258B%25E3%2581%259F%25E3%2582%2581%25E3%2581%25AE%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3sftaskextraplugin%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F03%2Fsymfony-%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%2592%25E7%25B0%25A1%25E5%258D%2598%25E3%2581%25AB%25E4%25BD%259C%25E3%2582%258B%25E3%2581%259F%25E3%2582%2581%25E3%2581%25AE%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3sftaskextraplugin%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>symfonyのプラグインはPEARのパッケージシステムを使っているのですけど、PEARのパッケージングって結構面倒で、僕はあまり好きではありません。PEARにもパッケージを作るためのツールがあるのですが、PHPのスクリプトを書くことになります。</p>
<p>symfony1.2には、<a href="http://www.symfony-project.org/plugins/sfTaskExtraPlugin">symfonyのパッケージを作ることに特化したタスクがsfTaskExtraPluginという名前で提供されています</a>。</p>
<p>まだalpha版なので、alphaを明に指定してインストールします</p>
<p><code><br />
$ symfony plugin:install -s alpha sfTaskExtraPlugin<br />
</code></p>
<p>このプラグインの中のパッケージ作成コマンドを呼ぶと、plugins/ディレクトリの下にある特定のプラグインを、PEARパッケージにしてそこに作ってくれます。</p>
<p><code><br />
$ symfony plugin:package sfFaqPlugin<br />
</code></p>
<p>これだけで、plugins/sfFaqPlugin/sfFaqPlugin-1.1.0.tgz ができます。(プラグイン名やバージョン番号はサンプル)</p>
<p>プラグインになっていれば、symfonyコマンドでinstall/uninstallを管理できます。</p>
<p><code><br />
$ symfony plugin:install /sandbox12/plugins/sfFaqPlugin/sfFaqPlugin-1.1.0.tgz<br />
</code></p>
<p>そこにあるpackage.xmlを使ってパッキングしてくれるので、xmlを開いて適度に編集することでバージョンや含むファイルを変えることができます。package.xmlが無い場合は、対話形式でpluginの説明や開発者の名前などが尋ねられるので、順番に入れていくとpackage.xmlも作成してくれます。</p>
<p>なので、たとえば、symfony1.0でしか動かないとpackage.xmlに書いてあるせい「だけで」symfony1.2にインストールできないpluginがあったとしたら、それをtarでplugins以下に展開して、package.xmlのrequire versionだけ1.3未満までオッケーにし、このタスクでパックすれば、1.2対応のpluginができるということです。</p>
<p>もしそういう風に1.2非対応のプラグインを1.2で使って、実績もあるなら、<a href="http://akimoto.jp/blog/2009/02/03/symfony-%E6%97%A2%E5%AD%98%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%92%E6%89%8B%E4%BC%9D%E3%81%86%E3%81%AB%E3%81%AF/">前のエントリで書いたように開発者になって公式サイトにアップする</a>のもいいでしょう。</p>
<p>sfTaskExtraPluginには他に、pluginsの下に一からプラグインを作るためのgenerate:plugin、pluginの中にmoduleを追加するgenerate:plugin-moduleがあります。これらで生成したスケルトンには、テストコードの枠組みも最初からついてきます。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/03/symfony-%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E7%B0%A1%E5%8D%98%E3%81%AB%E4%BD%9C%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3sftaskextraplugin/">[symfony] プラグインを簡単に作るためのプラグインsfTaskExtraPlugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/02/03/symfony-%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E7%B0%A1%E5%8D%98%E3%81%AB%E4%BD%9C%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3sftaskextraplugin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/02/03/symfony-%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E7%B0%A1%E5%8D%98%E3%81%AB%E4%BD%9C%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3sftaskextraplugin/" />
	</item>
		<item>
		<title>[symfony] 既存プラグインの書き換えを手伝うには</title>
		<link>http://akimoto.jp/blog/2009/02/03/symfony-%E6%97%A2%E5%AD%98%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%92%E6%89%8B%E4%BC%9D%E3%81%86%E3%81%AB%E3%81%AF/</link>
		<comments>http://akimoto.jp/blog/2009/02/03/symfony-%E6%97%A2%E5%AD%98%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%92%E6%89%8B%E4%BC%9D%E3%81%86%E3%81%AB%E3%81%AF/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 09:14:18 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[コミッター]]></category>
		<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=912</guid>
		<description><![CDATA[
			
				
			
		
symfony公式サイトの&#8221;Plugins&#8221;に行くと、数百個のプラグインが提供されています。これらは、インストールするだけでsymfony製のサイトに新しい機能を [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/03/symfony-%E6%97%A2%E5%AD%98%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%92%E6%89%8B%E4%BC%9D%E3%81%86%E3%81%AB%E3%81%AF/">[symfony] 既存プラグインの書き換えを手伝うには</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F03%2Fsymfony-%25E6%2597%25A2%25E5%25AD%2598%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E3%2581%25AE%25E6%259B%25B8%25E3%2581%258D%25E6%258F%259B%25E3%2581%2588%25E3%2582%2592%25E6%2589%258B%25E4%25BC%259D%25E3%2581%2586%25E3%2581%25AB%25E3%2581%25AF%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F03%2Fsymfony-%25E6%2597%25A2%25E5%25AD%2598%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E3%2581%25AE%25E6%259B%25B8%25E3%2581%258D%25E6%258F%259B%25E3%2581%2588%25E3%2582%2592%25E6%2589%258B%25E4%25BC%259D%25E3%2581%2586%25E3%2581%25AB%25E3%2581%25AF%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.symfony-project.org/plugins/">symfony公式サイトの&#8221;Plugins&#8221;</a>に行くと、数百個のプラグインが提供されています。これらは、インストールするだけでsymfony製のサイトに新しい機能を付け加えるものです。</p>
<p>プラグインを作って登録したり、既にあるプラグインの開発に参加したり、バグ報告をするには、まずsymfony-projectサイトのユーザ登録をする必要があります。メールアドレスだけあれば、右サイドバーの”Create an account&#8221;から誰でもユーザ登録ができます。</p>
<p>ログインした状態でプラグインの個別ページ(例 <a href="http://www.symfony-project.org/plugins/sfFaqPlugin/1_1_0">sfFaqPlugin</a> )へ行くと、&#8221;Contribute(貢献する)&#8221;というタブがあります。ここで、</p>
<ul>
<li>developer: svnにアクセスできる開発者</li>
<li>packager: developerに加えて、プラグインの新バージョンをリリースできる開発者</li>
<li>leader: 全権限を持つプラグイン開発のリーダー</li>
</ul>
<p>のどれになりたいかを選び、下のコメント欄には「何をどう直したいか」を書き込んで送信すると、既存の開発者に連絡が行きます。</p>
<p>symfony1.0でしか動かないプラグインは、元の開発者がメンテナンスを止めている場合もあるので、パッケージの1.2対応をしたいと思ったら、ここからどんどん申請して開発チームに入ることができるようです。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/03/symfony-%E6%97%A2%E5%AD%98%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%92%E6%89%8B%E4%BC%9D%E3%81%86%E3%81%AB%E3%81%AF/">[symfony] 既存プラグインの書き換えを手伝うには</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/02/03/symfony-%E6%97%A2%E5%AD%98%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%92%E6%89%8B%E4%BC%9D%E3%81%86%E3%81%AB%E3%81%AF/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/02/03/symfony-%E6%97%A2%E5%AD%98%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%92%E6%89%8B%E4%BC%9D%E3%81%86%E3%81%AB%E3%81%AF/" />
	</item>
		<item>
		<title>[symfony] admin generatorでデザインがあたらないとき</title>
		<link>http://akimoto.jp/blog/2009/02/02/symfony-admin-generator%E3%81%A7%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%8C%E3%81%82%E3%81%9F%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D/</link>
		<comments>http://akimoto.jp/blog/2009/02/02/symfony-admin-generator%E3%81%A7%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%8C%E3%81%82%E3%81%9F%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 14:28:13 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[admin generator]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=910</guid>
		<description><![CDATA[
			
				
			
		
symfony1.2の管理画面自動生成機能を使うと、
$ symfony propel:generate-admin backend Post

だけで、Postクラスのオブジェクトを一 [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/02/symfony-admin-generator%E3%81%A7%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%8C%E3%81%82%E3%81%9F%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D/">[symfony] admin generatorでデザインがあたらないとき</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F02%2Fsymfony-admin-generator%25E3%2581%25A7%25E3%2583%2587%25E3%2582%25B6%25E3%2582%25A4%25E3%2583%25B3%25E3%2581%258C%25E3%2581%2582%25E3%2581%259F%25E3%2582%2589%25E3%2581%25AA%25E3%2581%2584%25E3%2581%25A8%25E3%2581%258D%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F02%2Fsymfony-admin-generator%25E3%2581%25A7%25E3%2583%2587%25E3%2582%25B6%25E3%2582%25A4%25E3%2583%25B3%25E3%2581%258C%25E3%2581%2582%25E3%2581%259F%25E3%2582%2589%25E3%2581%25AA%25E3%2581%2584%25E3%2581%25A8%25E3%2581%258D%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>symfony1.2の管理画面自動生成機能を使うと、</p>
<blockquote><p><code>$ symfony propel:generate-admin backend Post<br />
</code></p></blockquote>
<p>だけで、Postクラスのオブジェクトを一覧して追加表示更新削除する画面を作ってくれますが、なぜか画面にデフォルトの管理画面のデザインが適用されず、アイコン類も出ないというのでつまりました。</p>
<p>呼べていない画像に/sfPropelPlugin/というパスがついてるので、それで検索をかけたら、<a href="http://forum.symfony-project.org/index.php/m/70645/">同じ問題ではまってる人が公式フォーラムに</a>。しかし、二人居て二人ともすぐに自己解決してます。</p>
<p>「脚注じゃなくて本文に書いてよ」とボヤかれていたので、マニュアルを見返したら、ちゃんとマニュアルに書いてありました。</p>
<blockquote><p><code>$ symfony plugin:publish-assets<br />
</code></p></blockquote>
<p>これを呼ばないと、generatorで作られた管理画面から呼ばれるCSSや画像ファイルがアプリの/web以下にコピーされないんですね。プラグインに含まれているCSS, 画像, Javascriptなんかを見える場所に移してくれるのがこのコマンドでした。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/02/symfony-admin-generator%E3%81%A7%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%8C%E3%81%82%E3%81%9F%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D/">[symfony] admin generatorでデザインがあたらないとき</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/02/02/symfony-admin-generator%E3%81%A7%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%8C%E3%81%82%E3%81%9F%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/02/02/symfony-admin-generator%E3%81%A7%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%8C%E3%81%82%E3%81%9F%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%8D/" />
	</item>
		<item>
		<title>symfonyの主要ドキュメントがPDFでも提供開始</title>
		<link>http://akimoto.jp/blog/2009/02/01/symfony%E3%81%AE%E4%B8%BB%E8%A6%81%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%8Cpdf%E3%81%A7%E3%82%82%E6%8F%90%E4%BE%9B%E9%96%8B%E5%A7%8B/</link>
		<comments>http://akimoto.jp/blog/2009/02/01/symfony%E3%81%AE%E4%B8%BB%E8%A6%81%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%8Cpdf%E3%81%A7%E3%82%82%E6%8F%90%E4%BE%9B%E9%96%8B%E5%A7%8B/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 02:09:24 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[オフライン]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=896</guid>
		<description><![CDATA[
			
				
			
		
オフラインでもドキュメントを参照しやすいように、PDF版の提供が開始されました。
Jobeetチュートリアルは、symfony1.2の新しい本として出版されたPractical symf [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/01/symfony%E3%81%AE%E4%B8%BB%E8%A6%81%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%8Cpdf%E3%81%A7%E3%82%82%E6%8F%90%E4%BE%9B%E9%96%8B%E5%A7%8B/">symfonyの主要ドキュメントがPDFでも提供開始</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F01%2Fsymfony%25E3%2581%25AE%25E4%25B8%25BB%25E8%25A6%2581%25E3%2583%2589%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25A1%25E3%2583%25B3%25E3%2583%2588%25E3%2581%258Cpdf%25E3%2581%25A7%25E3%2582%2582%25E6%258F%2590%25E4%25BE%259B%25E9%2596%258B%25E5%25A7%258B%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2009%2F02%2F01%2Fsymfony%25E3%2581%25AE%25E4%25B8%25BB%25E8%25A6%2581%25E3%2583%2589%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25A1%25E3%2583%25B3%25E3%2583%2588%25E3%2581%258Cpdf%25E3%2581%25A7%25E3%2582%2582%25E6%258F%2590%25E4%25BE%259B%25E9%2596%258B%25E5%25A7%258B%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>オフラインでもドキュメントを参照しやすいように、PDF版の提供が開始されました。</p>
<p>Jobeetチュートリアルは、symfony1.2の新しい本として出版されたPractical symfonyと同じものですね。バックエンドのORMで<a href="http://www.symfony-project.org/get/pdf/jobeet-1.2-propel-en.pdf">propelを使う場合</a>[pdf]のと<a href="http://www.symfony-project.org/get/pdf/jobeet-1.2-doctrine-en.pdf">Doctrineを使う場合</a>[pdf]のと両方あります。</p>
<p>その他、sfFormの使い方を解説したForms bookやcookbook、symfony1.2への移行ガイドなどもpdfで入手できます。<a href="http://www.symfony-project.org/blog/2009/01/31/read-the-symfony-documentation-offline">詳細は公式ブログ</a>で。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2009/02/01/symfony%E3%81%AE%E4%B8%BB%E8%A6%81%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%8Cpdf%E3%81%A7%E3%82%82%E6%8F%90%E4%BE%9B%E9%96%8B%E5%A7%8B/">symfonyの主要ドキュメントがPDFでも提供開始</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2009/02/01/symfony%E3%81%AE%E4%B8%BB%E8%A6%81%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%8Cpdf%E3%81%A7%E3%82%82%E6%8F%90%E4%BE%9B%E9%96%8B%E5%A7%8B/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2009/02/01/symfony%E3%81%AE%E4%B8%BB%E8%A6%81%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%8Cpdf%E3%81%A7%E3%82%82%E6%8F%90%E4%BE%9B%E9%96%8B%E5%A7%8B/" />
	</item>
		<item>
		<title>symfony懇親会に行ってきました</title>
		<link>http://akimoto.jp/blog/2008/11/29/symfony%E6%87%87%E8%A6%AA%E4%BC%9A%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F/</link>
		<comments>http://akimoto.jp/blog/2008/11/29/symfony%E6%87%87%E8%A6%AA%E4%BC%9A%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 15:52:58 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[勉強会]]></category>
		<category><![CDATA[懇親会]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=701</guid>
		<description><![CDATA[
			
				
			
		
ディノで開催されたsymfony懇親会に行ってきました。
PHPフレームワークのsymfonyについて語らう会です。いつもの勉強会だと発表者と受講者ですけど、今回の懇親会はみんなで気軽に [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/11/29/symfony%E6%87%87%E8%A6%AA%E4%BC%9A%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F/">symfony懇親会に行ってきました</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F11%2F29%2Fsymfony%25E6%2587%2587%25E8%25A6%25AA%25E4%25BC%259A%25E3%2581%25AB%25E8%25A1%258C%25E3%2581%25A3%25E3%2581%25A6%25E3%2581%258D%25E3%2581%25BE%25E3%2581%2597%25E3%2581%259F%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F11%2F29%2Fsymfony%25E6%2587%2587%25E8%25A6%25AA%25E4%25BC%259A%25E3%2581%25AB%25E8%25A1%258C%25E3%2581%25A3%25E3%2581%25A6%25E3%2581%258D%25E3%2581%25BE%25E3%2581%2597%25E3%2581%259F%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>ディノで開催された<a href="http://events.php.gr.jp/events/show/62">symfony懇親会</a>に行ってきました。</p>
<p>PHPフレームワークのsymfonyについて語らう会です。いつもの勉強会だと発表者と受講者ですけど、今回の懇親会はみんなで気軽に親睦を深めるためのものです。</p>
<p>ピザばっかりとか言ってすいません。今日はデリのサンドイッチやベーグルでした。ディノの誇る(ビール)サーバと、新しく増えた(ワイン)ストレージも活躍で、楽しい会となりました。11時半でもまだ半分以上人がいて、いったい電車は大丈夫なんだろうかと思いつつ終電で帰ってきました。</p>
<p>再来週会社の出張でパリに行くことになったのですが、よい機会なのでパリ郊外のSensio Labs(symfonyを作っている会社)にも訪問する約束を取り付けました。今日の懇親会では、そこでFabienさん等に日本のウェブ業界やPHP, symfonyの状況を解説するためのプレゼン(の下書き。まだ現時点では)を飛び込み発表して、みなさんの意見をいろいろと伺うことができました。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/11/29/symfony%E6%87%87%E8%A6%AA%E4%BC%9A%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F/">symfony懇親会に行ってきました</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2008/11/29/symfony%E6%87%87%E8%A6%AA%E4%BC%9A%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2008/11/29/symfony%E6%87%87%E8%A6%AA%E4%BC%9A%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F/" />
	</item>
		<item>
		<title>今日はsymfonyプラグイン開発者の日です</title>
		<link>http://akimoto.jp/blog/2008/11/08/%E4%BB%8A%E6%97%A5%E3%81%AFsymfony%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E6%97%A5%E3%81%A7%E3%81%99/</link>
		<comments>http://akimoto.jp/blog/2008/11/08/%E4%BB%8A%E6%97%A5%E3%81%AFsymfony%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E6%97%A5%E3%81%A7%E3%81%99/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 05:03:35 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[irc]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=674</guid>
		<description><![CDATA[
			
				
			
		
symfony公式ブログで案内されていますが、11月8日 世界標準時15:00-21:00の間、symfony Plugin Developers Dayがオンラインで開催されます。
時 [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/11/08/%E4%BB%8A%E6%97%A5%E3%81%AFsymfony%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E6%97%A5%E3%81%A7%E3%81%99/">今日はsymfonyプラグイン開発者の日です</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F11%2F08%2F%25E4%25BB%258A%25E6%2597%25A5%25E3%2581%25AFsymfony%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E9%2596%258B%25E7%2599%25BA%25E8%2580%2585%25E3%2581%25AE%25E6%2597%25A5%25E3%2581%25A7%25E3%2581%2599%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F11%2F08%2F%25E4%25BB%258A%25E6%2597%25A5%25E3%2581%25AFsymfony%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25B0%25E3%2582%25A4%25E3%2583%25B3%25E9%2596%258B%25E7%2599%25BA%25E8%2580%2585%25E3%2581%25AE%25E6%2597%25A5%25E3%2581%25A7%25E3%2581%2599%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.symfony-project.org/blog/2008/11/06/plugin-developers-day-this-saturday">symfony公式ブログで案内されています</a>が、11月8日 世界標準時15:00-21:00の間、symfony Plugin Developers Dayがオンラインで開催されます。</p>
<p>時間を日本時間に直すと、こうなります。</p>
<table>
<tr>
<th>時間</th>
<th>セッション</th>
<th>場所</th>
</tr>
<tr>
<td>11/9(日) 0:00-2:00</td>
<td>プラグインの作成とリリース</td>
<td>irc #symfonyチャンネル@freenode</td>
</tr>
<tr>
<td>11/9(日) 2:00-4:00</td>
<td>カスタマイズしやすいプラグインについて</td>
<td>irc #symfonyチャンネル@freenode</td>
</tr>
<tr>
<td>11/9(日) 4:00-6:00</td>
<td>新旧プラグインをその場で改良</td>
<td>irc #symfonyチャンネル@freenode</td>
</tr>
</table>
<p>最初の試みなので、実際にはその場のノリで変わるかもしれない、ということ。新作のpluginを提案したり、他のplugin作者に提案したりも期待されています。</p>
<p>ディスカッションを見てるだけでも歓迎、ということなので、今夜PCの前にいるsymfonyユーザのみなさん、ぜひ世界中のsymfony開発者とセッションを楽しみましょう。</p>
<p>僕はユーザネーム&#8221;akky&#8221;で入っています。</p>
<p># 朝6時まで起きていられるかわかりませんが。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/11/08/%E4%BB%8A%E6%97%A5%E3%81%AFsymfony%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E6%97%A5%E3%81%A7%E3%81%99/">今日はsymfonyプラグイン開発者の日です</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2008/11/08/%E4%BB%8A%E6%97%A5%E3%81%AFsymfony%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E6%97%A5%E3%81%A7%E3%81%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2008/11/08/%E4%BB%8A%E6%97%A5%E3%81%AFsymfony%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E6%97%A5%E3%81%A7%E3%81%99/" />
	</item>
		<item>
		<title>The second symfony study meeting Tokyo</title>
		<link>http://akimoto.jp/blog/2008/10/30/the-second-symfony-study-meeting-tokyo/</link>
		<comments>http://akimoto.jp/blog/2008/10/30/the-second-symfony-study-meeting-tokyo/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 16:21:35 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=648</guid>
		<description><![CDATA[The second time casual study meeting of popular PHP5 framework was held at Dino&#8216;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 &#8220;realistically&#8221; what version you should use for your starting [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/10/30/the-second-symfony-study-meeting-tokyo/">The second symfony study meeting Tokyo</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F10%2F30%2Fthe-second-symfony-study-meeting-tokyo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F10%2F30%2Fthe-second-symfony-study-meeting-tokyo%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://events.php.gr.jp/events/show/56">The second time casual study meeting of popular PHP5 framework</a> was held at <a href="http://www.dino.co.jp/en">Dino</a>&#8216;s seminar room, Shibuya, Tokyo.</p>
<p>There were three main sessions and one LT (lightening talk, flash 5 mins speech).</p>
<p>The first one by Kiryu Tsukimiya was about the coming version symfony 1.2, and &#8220;realistically&#8221; what version you should use for your starting project.</p>
<p>The second talk was on symfony 1.2 and its bundled Doctrine ORM by katsuhiro.</p>
<p>The third session was my talk, &#8220;<a href="http://akimoto.jp/presentation/symfony-study-meeting-2.html">symfony plugins, etc.</a>&#8220;, where I talked about symfony plugins structures, and some useful plugins which can let you add a new functionality quickly.</p>
<p>The last lightening talk&#8217;s title was &#8220;how to set up symfony environment with 2 lines&#8221; by brtRiver.</p>
<p>There was an after-party at the same room, by almost all attendees with Dino&#8217;s-proud professional-use beer server and delivered pizzas. </p>
<p><a href="http://www.flickr.com/photos/tsukimiya/2984746300/" title="photo sharing"><img src="http://farm4.static.flickr.com/3024/2984746300_a5891b8370_m.jpg" alt="" style="border: solid 2px #000000;" /></a><br />
<br />
Originally uploaded by <a href="http://www.flickr.com/people/tsukimiya/">Kiryu Tsukimiya</a><br />
</span><br />
<br clear="all" /></p>
<p>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 <a href="http://www.sensiolabs.com/">sensiolabs</a> and/or other experts for similar symfony conference in near future.</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/10/30/the-second-symfony-study-meeting-tokyo/">The second symfony study meeting Tokyo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2008/10/30/the-second-symfony-study-meeting-tokyo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2008/10/30/the-second-symfony-study-meeting-tokyo/" />
	</item>
		<item>
		<title>symfony camp 2008が始まってます</title>
		<link>http://akimoto.jp/blog/2008/09/13/symfony-camp-2008%E3%81%8C%E5%A7%8B%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%BE%E3%81%99/</link>
		<comments>http://akimoto.jp/blog/2008/09/13/symfony-camp-2008%E3%81%8C%E5%A7%8B%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%BE%E3%81%99/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 00:36:28 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[パフォーマンスチューニング]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=557</guid>
		<description><![CDATA[
			
				
			
		
PHPフレームワークsymfonyのカンファレンスsymfony camp 2008がオランダで開催中です。
Fabienさんの初日のレポートで、さっそく面白いプレゼン資料が出てきてるの [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/09/13/symfony-camp-2008%E3%81%8C%E5%A7%8B%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%BE%E3%81%99/">symfony camp 2008が始まってます</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F09%2F13%2Fsymfony-camp-2008%25E3%2581%258C%25E5%25A7%258B%25E3%2581%25BE%25E3%2581%25A3%25E3%2581%25A6%25E3%2581%25BE%25E3%2581%2599%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F09%2F13%2Fsymfony-camp-2008%25E3%2581%258C%25E5%25A7%258B%25E3%2581%25BE%25E3%2581%25A3%25E3%2581%25A6%25E3%2581%25BE%25E3%2581%2599%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>PHPフレームワークsymfonyのカンファレンス<a href="http://www.symfonycamp.com/">symfony camp 2008</a>がオランダで開催中です。</p>
<p>Fabienさんの<a href="http://www.symfony-project.org/blog/2008/09/12/symfony-camp-2008-day-1">初日のレポート</a>で、さっそく面白いプレゼン資料が出てきてるので紹介します。(写真みたら、ほんとに「キャンプ」してるんですね)</p>
<ul>
<li><a href="http://www.aide-de-camp.org/talk/16/symfony-camp-2008-REST">symfony1.2でのRESTサポート</a></li>
<li><a href="http://www.aide-de-camp.org/talk/17/symfony-camp-2008-beyond-1-2">symfony1.2より先について</a>。symfony2でのDIコンテナとか</li>
<li><a href="http://dustinwhittle.com/symfonycamp_lessons_learned_at_yahoo_with_notes.pdf">Yahooでのsymfony利用について</a> [pdf]</li>
<li><a href="http://www.symfony-project.org/blog/2008/09/12/symfony-camp-2008-day-1">symfonyパフォーマンスチューニング</a></li>
<li><a href="http://www.slideshare.net/guesta3af58/doctrine-php-object-relational-mapper-presentation">Doctrineについて</a></li>
</ul>
<p>この中で僕が興味を持ったのは、3番目のYahoo!でのsymfonyの使われ方の話と、4番目のチューニング話。</p>
<p>Yahoo!のほうは、大成功しているQ&#038;AサイトのYahoo! Answersなどがsymfonyベースで動いていることの説明。初出じゃない話ですけど、なぜsymfonyを選定することに至ったかとか、大規模サイトの設計で考慮した点とか、symfonyから何を使って何を使わなかったかという取捨選択の話、そして最近公開されてきてますけど、Yahooが作った数々のsymfony pluginsについて(p.24)、などが語られています。</p>
<p>チューニングのほうは、symfony+PHP+Apache等で性能を稼ぐためのポイントがよくまとまってます。</p>
<p>Yahoo!のDustin Whittleさんがプレゼン資料の最後につけてくれた6冊の「オススメ本リスト」、日本語訳が出てるものが多いです。</p>
<p><div class="amazon_jp"><div class="amazon_jp_image"><a href="http://www.amazon.jp/Definitive-Guide-symfony-Fabien-Potencier/dp/1590597869%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1590597869"><img src="http://ecx.images-amazon.com/images/I/51fl2869acL._SL160_.jpg" border="0" alt="" class="" /></a></div><div class="amazon_jp_desc"><a href="http://www.amazon.jp/Definitive-Guide-symfony-Fabien-Potencier/dp/1590597869%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1590597869">The Definitive Guide to symfony</a><br /><em>著者/訳者: </em>Fabien Potencier<br /><em>出版社: </em>Apress( 2007-01-22 )<br /><em>定価: </em>￥ 3,722</div></div><div class="cleaner" ></div><br />
<div class="amazon_jp"><div class="amazon_jp_image"><a href="http://www.amazon.jp/Scalable-Internet-Architectures-Developers-Library/dp/067232699X%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D067232699X"><img src="http://ecx.images-amazon.com/images/I/51ZFYH5mqlL._SL160_.jpg" border="0" alt="" class="" /></a></div><div class="amazon_jp_desc"><a href="http://www.amazon.jp/Scalable-Internet-Architectures-Developers-Library/dp/067232699X%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D067232699X">Scalable Internet Architectures (Developer's Library)</a><br /><em>著者/訳者: </em>Theo Schlossnagle<br /><em>出版社: </em>Sams( 2006-07-31 )<br /><em>定価: </em>￥ 4,653</div></div><div class="cleaner" ></div><br />
<div class="amazon_jp"><div class="amazon_jp_image"><a href="http://www.amazon.jp/%E5%AE%9F%E8%B7%B5%E3%83%8F%E3%82%A4%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9MySQL-%E3%82%B8%E3%82%A7%E3%83%AC%E3%83%9F%E3%83%BBD-%E3%82%B6%E3%82%A6%E3%83%89%E3%83%8B/dp/4873112095%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873112095"><img src="http://ecx.images-amazon.com/images/I/51C97FPJ0ZL._SL160_.jpg" border="0" alt="" class="" /></a></div><div class="amazon_jp_desc"><a href="http://www.amazon.jp/%E5%AE%9F%E8%B7%B5%E3%83%8F%E3%82%A4%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9MySQL-%E3%82%B8%E3%82%A7%E3%83%AC%E3%83%9F%E3%83%BBD-%E3%82%B6%E3%82%A6%E3%83%89%E3%83%8B/dp/4873112095%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873112095">実践ハイパフォーマンスMySQL</a><br /><em>著者/訳者: </em>ジェレミ・D. ザウドニ<br /><em>出版社: </em>オライリージャパン( 2004-10 )<br /><em>定価: </em>￥ 3,780</div></div><div class="cleaner" ></div><br />
<div class="amazon_jp"><div class="amazon_jp_image"><a href="http://www.amazon.jp/%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%A9%E3%83%96%E3%83%ABWeb%E3%82%B5%E3%82%A4%E3%83%88-Cal-Henderson/dp/4873113113%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873113113"><img src="http://ecx.images-amazon.com/images/I/518TeUi%2BOwL._SL160_.jpg" border="0" alt="" class="" /></a></div><div class="amazon_jp_desc"><a href="http://www.amazon.jp/%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%A9%E3%83%96%E3%83%ABWeb%E3%82%B5%E3%82%A4%E3%83%88-Cal-Henderson/dp/4873113113%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873113113">スケーラブルWebサイト</a><br /><em>著者/訳者: </em>Cal Henderson<br /><em>出版社: </em>オライリー・ジャパン( 2006-12-26 )<br /><em>定価: </em>￥ 3,570</div></div><div class="cleaner" ></div><br />
<div class="amazon_jp"><div class="amazon_jp_image"><a href="http://www.amazon.jp/%E9%9B%86%E5%90%88%E7%9F%A5%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Toby-Segaran/dp/4873113644%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873113644"><img src="http://ecx.images-amazon.com/images/I/51FgSThMzVL._SL160_.jpg" border="0" alt="" class="" /></a></div><div class="amazon_jp_desc"><a href="http://www.amazon.jp/%E9%9B%86%E5%90%88%E7%9F%A5%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Toby-Segaran/dp/4873113644%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873113644">集合知プログラミング</a><br /><em>著者/訳者: </em>Toby Segaran<br /><em>出版社: </em>オライリージャパン( 2008-07-25 )<br /><em>定価: </em>￥ 3,570</div></div><div class="cleaner" ></div><br />
<div class="amazon_jp"><div class="amazon_jp_image"><a href="http://www.amazon.jp/%E3%83%8F%E3%82%A4%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9Web%E3%82%B5%E3%82%A4%E3%83%88-%E2%80%95%E9%AB%98%E9%80%9F%E3%82%B5%E3%82%A4%E3%83%88%E3%82%92%E5%AE%9F%E7%8F%BE%E3%81%99%E3%82%8B14%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB-Steve-Souders/dp/487311361X%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D487311361X"><img src="http://ecx.images-amazon.com/images/I/51hIDIWHmYL._SL160_.jpg" border="0" alt="" class="" /></a></div><div class="amazon_jp_desc"><a href="http://www.amazon.jp/%E3%83%8F%E3%82%A4%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9Web%E3%82%B5%E3%82%A4%E3%83%88-%E2%80%95%E9%AB%98%E9%80%9F%E3%82%B5%E3%82%A4%E3%83%88%E3%82%92%E5%AE%9F%E7%8F%BE%E3%81%99%E3%82%8B14%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB-Steve-Souders/dp/487311361X%3FSubscriptionId%3D15TGXC2AR2ENB50C4F82%26tag%3Dakimotojp-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D487311361X">ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール</a><br /><em>著者/訳者: </em>Steve Souders<br /><em>出版社: </em>オライリージャパン( 2008-04-11 )<br /><em>定価: </em>￥ 1,890</div></div><div class="cleaner" ></div></p>
<p>僕は3冊読んでました。集合知プログラミングはまだ買ってないんだけど、読まなきゃなと思ってます。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/09/13/symfony-camp-2008%E3%81%8C%E5%A7%8B%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%BE%E3%81%99/">symfony camp 2008が始まってます</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2008/09/13/symfony-camp-2008%E3%81%8C%E5%A7%8B%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%BE%E3%81%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2008/09/13/symfony-camp-2008%E3%81%8C%E5%A7%8B%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%BE%E3%81%99/" />
	</item>
		<item>
		<title>Windows+symfony1.1でproject:deployを動かすためのパッチ</title>
		<link>http://akimoto.jp/blog/2008/08/05/windowssymfony11%E3%81%A7projectdeploy%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99%E3%81%9F%E3%82%81%E3%81%AE%E3%83%91%E3%83%83%E3%83%81/</link>
		<comments>http://akimoto.jp/blog/2008/08/05/windowssymfony11%E3%81%A7projectdeploy%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99%E3%81%9F%E3%82%81%E3%81%AE%E3%83%91%E3%83%83%E3%83%81/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 12:51:23 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=460</guid>
		<description><![CDATA[
			
				
			
		
symfonyには、ローカルから変更されたファイルだけを見つけてホストへアップロードしてくれるproject:deployというコマンド(symfony1.0ではsync)があります。書 [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/08/05/windowssymfony11%E3%81%A7projectdeploy%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99%E3%81%9F%E3%82%81%E3%81%AE%E3%83%91%E3%83%83%E3%83%81/">Windows+symfony1.1でproject:deployを動かすためのパッチ</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F08%2F05%2Fwindowssymfony11%25E3%2581%25A7projectdeploy%25E3%2582%2592%25E5%258B%2595%25E3%2581%258B%25E3%2581%2599%25E3%2581%259F%25E3%2582%2581%25E3%2581%25AE%25E3%2583%2591%25E3%2583%2583%25E3%2583%2581%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F08%2F05%2Fwindowssymfony11%25E3%2581%25A7projectdeploy%25E3%2582%2592%25E5%258B%2595%25E3%2581%258B%25E3%2581%2599%25E3%2581%259F%25E3%2582%2581%25E3%2581%25AE%25E3%2583%2591%25E3%2583%2583%25E3%2583%2581%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>symfonyには、ローカルから変更されたファイルだけを見つけてホストへアップロードしてくれるproject:deployというコマンド(symfony1.0ではsync)があります。書き換えたファイルを自分で選んでFTPでアップロード、なんてことはなくなるのでミスも減るし、なにより楽です。</p>
<p>前準備として、rsyncクライアントが必要なので、<a href="http://openlab.dino.co.jp/2008/07/22/193141301.html">Windowsで動くcwRsyncを入れて、PATHを通しておきます</a>。</p>
<p>config/properties.iniで、デプロイ(展開)先のホストの情報を設定しておきます。</p>
<blockquote><pre>
[production]
host=my.example.com
port=22
user=webmaster
dir=/home/htdocs/myapps/hoge
</pre>
</blockquote>
<p>rsync_exclude.txtのほうは、ホストに上げたくないファイルを書くのですが、とりあえず初回はデフォルトのままでもいいかと。後で、ホストの環境向けに書き換えるファイルとかが出たときは、それをローカルのファイルで上書きしないよう、このファイルに追加しておきます。</p>
<p>あとは、プロジェクトのトップディレクトリでコマンドを打てばいいのですが、</p>
<blockquote><p>> symfony project:deploy production
</p></blockquote>
<p>Windowsではこれが何も言わずに止まってしまいます。1.0からある問題で、<a href="http://tkt.s307.xrea.com/x/xqa/2008/06/post-4.html">1.0ではたとえばこちらで対処方法が書かれています</a>。あと<a href="http://www.symfony-project.org/forum/index.php/m/33269/">これ</a>とか<a href="http://www.symfony-project.org/forum/index.php/m/40902/">ここ</a>も。</p>
<p>symfony1.1では、コマンド名や内部で呼ばれているファイルが変わったので、同様の対処をするには</p>
<p>> edit (symfony1.1)/php/symfony/task/sfFilesystem.class.php</p>
<p>のファイルを探して、passthru()を呼んでいるところを、下のように書き換えてください。</p>
<blockquote><pre>
//  passthru($cmd.' 2>&#038;1', $return);
    if (DIRECTORY_SEPARATOR == '\\') {
      passthru('start ' . $cmd.';pause', $return);
    } else {
      passthru($cmd.' 2>&#038;1', $return);
    }
</pre>
</blockquote>
<p>これで、</p>
<blockquote><p>> symfony project:deploy production
</p></blockquote>
<p>と入力すると、別のコマンドプロンプトが開き、そこでホストのパスワードを尋ねてくるようになるはずです。</p>
<p>上のコマンドでは、どのファイルがアップされるかの確認だけになります(上記の修正では新しく開いたウィンドウがすぐ閉じてしまうので、実際には確認は大変ですが)。本当にアップロードを行なうには、オプションを追加して、</p>
<blockquote><p>> symfony project:deploy &#8211;go production
</p></blockquote>
<p>とします。1.0とはいろいろと変わっていて面倒ですが、まあしょうがないか。</p>
<p>ああ、あとsymfonyのバージョンを上げるために pear upgrade symfony/symfony とかすると、書き換えたファイルがまた元に戻っちゃいます。1.1.0から1.1.1に移行してまた動かなくなってしまった。</p>
<p>[追記 2008.05.06] symfony1.2.6でも、まだこの問題は残ったままです。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/08/05/windowssymfony11%E3%81%A7projectdeploy%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99%E3%81%9F%E3%82%81%E3%81%AE%E3%83%91%E3%83%83%E3%83%81/">Windows+symfony1.1でproject:deployを動かすためのパッチ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2008/08/05/windowssymfony11%E3%81%A7projectdeploy%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99%E3%81%9F%E3%82%81%E3%81%AE%E3%83%91%E3%83%83%E3%83%81/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2008/08/05/windowssymfony11%E3%81%A7projectdeploy%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99%E3%81%9F%E3%82%81%E3%81%AE%E3%83%91%E3%83%83%E3%83%81/" />
	</item>
		<item>
		<title>Windows/symfony1.0.17のsymfony ccコマンドで警告が出る</title>
		<link>http://akimoto.jp/blog/2008/07/27/windowssymfony1017%E3%81%AEsymfony%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%AD%A6%E5%91%8A%E3%81%8C%E5%87%BA%E3%82%8B/</link>
		<comments>http://akimoto.jp/blog/2008/07/27/windowssymfony1017%E3%81%AEsymfony%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%AD%A6%E5%91%8A%E3%81%8C%E5%87%BA%E3%82%8B/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 06:44:58 +0000</pubDate>
		<dc:creator>akky</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[symfony1.0]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://akimoto.jp/blog/?p=426</guid>
		<description><![CDATA[
			
				
			
		
こういうやつ。symfony ccとかでいっぱい出てきます。
Warning: chmod(): No error in C:\php\php-5.2.5\PEAR\symfony\ve [...]<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/07/27/windowssymfony1017%E3%81%AEsymfony%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%AD%A6%E5%91%8A%E3%81%8C%E5%87%BA%E3%82%8B/">Windows/symfony1.0.17のsymfony ccコマンドで警告が出る</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F07%2F27%2Fwindowssymfony1017%25E3%2581%25AEsymfony%25E3%2582%25B3%25E3%2583%259E%25E3%2583%25B3%25E3%2583%2589%25E3%2581%25A7%25E8%25AD%25A6%25E5%2591%258A%25E3%2581%258C%25E5%2587%25BA%25E3%2582%258B%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fakimoto.jp%2Fblog%2F2008%2F07%2F27%2Fwindowssymfony1017%25E3%2581%25AEsymfony%25E3%2582%25B3%25E3%2583%259E%25E3%2583%25B3%25E3%2583%2589%25E3%2581%25A7%25E8%25AD%25A6%25E5%2591%258A%25E3%2581%258C%25E5%2587%25BA%25E3%2582%258B%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>こういうやつ。symfony ccとかでいっぱい出てきます。</p>
<blockquote><p><code>Warning: chmod(): No error in C:\php\php-5.2.5\PEAR\symfony\vendor\pake\pakeFunction.php on line 273<br />
</code></p></blockquote>
<p>これは<a href="http://trac.symfony-project.org/ticket/3871">Windows環境のみで起こるsymfony1.0.17のバグ</a>だそうです。warningだから動いてはいるんだけど。</p>
<p><br/>
[AD] <a href="http://yonda4.com/">ツイッターで読書記録</a> | <a href="http://narabete.com/">比較表コミュニティ</a>
<br/><br/><a href="http://akimoto.jp/blog/2008/07/27/windowssymfony1017%E3%81%AEsymfony%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%AD%A6%E5%91%8A%E3%81%8C%E5%87%BA%E3%82%8B/">Windows/symfony1.0.17のsymfony ccコマンドで警告が出る</a></p>
]]></content:encoded>
			<wfw:commentRss>http://akimoto.jp/blog/2008/07/27/windowssymfony1017%E3%81%AEsymfony%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%AD%A6%E5%91%8A%E3%81%8C%E5%87%BA%E3%82%8B/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://akimoto.jp/blog/2008/07/27/windowssymfony1017%E3%81%AEsymfony%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%AD%A6%E5%91%8A%E3%81%8C%E5%87%BA%E3%82%8B/" />
	</item>
	</channel>
</rss>
