<?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/"
	>

<channel>
	<title>Sun Limited Mt. &#187; CakePHP</title>
	<atom:link href="http://blog.syuhari.jp/archives/category/cakephp/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.syuhari.jp</link>
	<description>I love iPhone, CakePHP and WordPress.</description>
	<lastBuildDate>Thu, 20 Oct 2011 19:36:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[CakePHP] さくらのレンタルサーバで CakePHP1.2.6 が動かない</title>
		<link>http://blog.syuhari.jp/archives/2056</link>
		<comments>http://blog.syuhari.jp/archives/2056#comments</comments>
		<pubDate>Fri, 26 Mar 2010 02:45:06 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[.htaccess]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=2056</guid>
		<description><![CDATA[CakePHP 1.2.6 をさくらのレンタルサーバに設置したところ、Internal Server Error になってしまった。トップページは表示されるが、コントローラを指定すると Internal Server Error になってしまう。エラーログを見ると、 mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary. と出ている。ちなみにドキュメントルートは app/webroot にしていました。 1.2.5 と 1.2.6 の webroot/.htaccess を比較すると &#8220;RewriteBase /&#8221; の指定が 1.2.5 にはあるが、1.2.6 ではなくなっている。 これを追加すると動作するようになりました。 最終的には以下のような .htaccess です。 &#60;IfModule mod_rewrite.c&#62; RewriteEngine On RewriteBase / RewriteCond [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP 1.2.6 をさくらのレンタルサーバに設置したところ、Internal Server Error になってしまった。トップページは表示されるが、コントローラを指定すると Internal Server Error になってしまう。エラーログを見ると、</p>
<pre style="border:1px solid #666; padding:5px;">
mod_rewrite: maximum number of internal redirects reached.
Assuming configuration error.
Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.
</pre>
<p>と出ている。ちなみにドキュメントルートは app/webroot にしていました。<br />
<span id="more-2056"></span><br />
1.2.5 と 1.2.6 の webroot/.htaccess を比較すると &#8220;<strong>RewriteBase /</strong>&#8221; の指定が 1.2.5 にはあるが、1.2.6 ではなくなっている。<br />
これを追加すると動作するようになりました。</p>
<p>最終的には以下のような .htaccess です。</p>
<pre class="php" name="code">
&lt;IfModule mod_rewrite.c&gt;
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
&lt;/IfModule&gt;
</pre>
<p>他のサーバで同じコードで試してみたが、さくら以外では動作しました。</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F2056&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/2056/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[CakePHP] SSL 接続を必須にする SSL コンポーネント</title>
		<link>http://blog.syuhari.jp/archives/2013</link>
		<comments>http://blog.syuhari.jp/archives/2013#comments</comments>
		<pubDate>Wed, 10 Mar 2010 06:58:26 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[cakephp1.2]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=2013</guid>
		<description><![CDATA[CakePHP で SSL 接続を必須にするには以前書いた、Security コンポーネントを使う方法があります。 CakePHP1.2 Security コンポーネントを使用して SSL でのみアクセスを許可する しかし、単純に SSL 接続を必須にしたい場合は、Baker にある SSL コンポーネントを使うのが簡単です。 Component for forcing a secure connection (Articles) &#124; The Bakery, Everything CakePHP 特定のアクションだけ SSL にしたい場合はそのアクションのメソッドに以下のように書きます。 class MyController extends AppController { var $components = array('Ssl'); function index() { $this->Ssl->force(); } function view($id) { } } アプリケーション全体に設定したい場合は app/app_controller.php に以下のように書きます。 class AppController [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP で SSL 接続を必須にするには以前書いた、Security コンポーネントを使う方法があります。<br />
<a href="http://www.syuhari.jp/blog/archives/490" class="liinternal">CakePHP1.2 Security コンポーネントを使用して SSL でのみアクセスを許可する</a></p>
<p>しかし、単純に SSL 接続を必須にしたい場合は、Baker にある SSL コンポーネントを使うのが簡単です。<br />
<a href="http://bakery.cakephp.org/articles/view/component-for-forcing-a-secure-connection" target="_blank" class="liexternal">Component for forcing a secure connection (Articles) | The Bakery, Everything CakePHP</a><br />
<span id="more-2013"></span><br />
特定のアクションだけ SSL にしたい場合はそのアクションのメソッドに以下のように書きます。</p>
<pre class="php" name="code">
class MyController extends AppController {
    var $components = array('Ssl');
    function index() {
      $this->Ssl->force();
    }

    function view($id) {
    }
}
</pre>
<p>アプリケーション全体に設定したい場合は app/app_controller.php に以下のように書きます。</p>
<pre class="php" name="code">
class AppController extends Controller {
  var $components = array('Ssl');
  function beforeFilter(){
    $this->Ssl->force();
  }
}
</pre>
<p>単純に強制的に SSL にしたい場合などは Security コンポーネントよりも簡単です。<br />
まあ、でも Security コンポーネントを使っても簡単ですね。</p>
<pre class="php" name="code">
class AppController extends Controller {
  var $components = array('Security');

  function beforeFilter(){
    $this->Security->blackHoleCallback = "forceSSL";
    $this->Security->requireSecure();
  }

  function forceSSL() {
    $this->redirect("https://".env('SERVER_NAME').$this->here);
  }
}
</pre>
<p>Security コンポーネントのマニュアルの最後のところに書かれています。<br />
<a href="http://book.cakephp.org/view/268/Usage" target="_blank" class="liexternal">Usage :: Security Component :: Core Components :: The Manual :: 1.2 Collection :: The Cookbook</a></p>
<p>日本語マニュアルはちょこっと古めなので、英語が苦でなければ、英語のマニュアルを見た方が情報が早いです。 </p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F2013&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/2013/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[CakePHP] Qdmail でメールの一斉送信</title>
		<link>http://blog.syuhari.jp/archives/1971</link>
		<comments>http://blog.syuhari.jp/archives/1971#comments</comments>
		<pubDate>Wed, 10 Feb 2010 07:11:24 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[Qdmail]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=1971</guid>
		<description><![CDATA[CakePHP のコンポーネントの Qdmail はメールを送るのに非常に便利なコンポーネントです。この Qdmail を使用してメールを一斉送信する方法です。 本家の方に複数の宛先宛に個別にメールを送る方法が紹介されています。 個別アドレス分離機能（一斉送信時） &#8211; Qdmail &#8211; PHP::Mail Library , Quick and Detailed for Multibyte 上記ページのコメントでも指摘されていますが、このサンプルだと1番目のメールアドレスに2番目のメールアドレスが宛名として送信されてしまいます。一斉送信は間違えるとメールアドレス漏洩などの問題になりますので、実装の際は注意が必要です。 下記の送信先を指定している部分の指定の仕方が間違っているようです。 $to = array( 'address1@example.com' , 'address2@example.com' , 'address3@example.com' , 'address4@example.com' ); 送信先にはメールアドレスと宛名のペアを指定しないとうまくいきません。 $emails = array( array("hoge@example.com", "HOGE"), array("foo@example.com", "FOO"), ); $this->Qdmail->to($emails); $this->Qdmail->subject($data["Email"]["subject"]); $this->Qdmail->from(ADMIN_MAIL, ADMIN_NAME); $this->Qdmail->text($data["Email"]["body"]); $this->Qdmail->toSeparate(true); $rs = $this->Qdmail->send(); 下から2行目の $this->Qdmail->toSeparate(true); を指定すると複数の送信先にそれぞれ個別にメールを送信してくれます。]]></description>
			<content:encoded><![CDATA[<p>CakePHP のコンポーネントの Qdmail はメールを送るのに非常に便利なコンポーネントです。この Qdmail を使用してメールを一斉送信する方法です。</p>
<p>本家の方に複数の宛先宛に個別にメールを送る方法が紹介されています。<br />
<a href="http://hal456.net/qdmail/toseparate" target="_blank" class="liexternal">個別アドレス分離機能（一斉送信時） &#8211; Qdmail &#8211; PHP::Mail Library , Quick and Detailed for Multibyte</a><br />
<span id="more-1971"></span><br />
上記ページのコメントでも指摘されていますが、このサンプルだと1番目のメールアドレスに2番目のメールアドレスが宛名として送信されてしまいます。一斉送信は間違えるとメールアドレス漏洩などの問題になりますので、実装の際は注意が必要です。</p>
<p>下記の送信先を指定している部分の指定の仕方が間違っているようです。</p>
<pre class="php" name="code">
$to = array( 'address1@example.com' , 'address2@example.com' , 'address3@example.com' , 'address4@example.com' );
</pre>
<p>送信先にはメールアドレスと宛名のペアを指定しないとうまくいきません。</p>
<pre class="php" name="code">
$emails = array(
    array("hoge@example.com", "HOGE"),
    array("foo@example.com", "FOO"),
);
$this->Qdmail->to($emails);
$this->Qdmail->subject($data["Email"]["subject"]);
$this->Qdmail->from(ADMIN_MAIL, ADMIN_NAME);
$this->Qdmail->text($data["Email"]["body"]);
$this->Qdmail->toSeparate(true);
$rs = $this->Qdmail->send();
</pre>
<p>下から2行目の <strong>$this->Qdmail->toSeparate(true);</strong> を指定すると複数の送信先にそれぞれ個別にメールを送信してくれます。</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F1971&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/1971/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[CakePHP] CakePHP の質問サイト CakePHP Questions</title>
		<link>http://blog.syuhari.jp/archives/1914</link>
		<comments>http://blog.syuhari.jp/archives/1914#comments</comments>
		<pubDate>Wed, 18 Nov 2009 06:45:56 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[CakePHP Questions]]></category>
		<category><![CDATA[CakeQs]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=1914</guid>
		<description><![CDATA[CakePHP のQ&#038;A サイトの CakePHP Questions が日本語化されました！ http://cakeqs.org/jpn ユーザ登録するとCakePHP に関する質問ができ、その質問に他のユーザが回答を付けてくれます。新しい CakePHP のコミュニティですね。まだ日本語の質問が少ないのでどんどん質問＆回答しましょう！また英語の質問と回答を見るだけでも参考になると思います。 ユーザ登録ですが、OpenID を使った方がいいと思います。メールアドレスで登録してみたのですが、Gmail も syuhari.jp のドメインのメールも登録確認メールが届かずにアクティベイトできませんでした。 OpenID はログイン画面で Identity URL を入れます。 myOpenID だと Identity URL は http://yourid.myopenid.com/ になります。 はてなだと Identity URL は http://www.hatena.ne.jp/yourid/ になります。 実はこの日本語への翻訳をお手伝いさせていただきました。ことの経緯は CakePHP のコアデベロッパの Graham が Twitter で とつぶやいたことに、私が「手伝います！」とリプライしたのがきっかけでした。他にも数人やる人がいて手分けしてやるのかと思っていたら以外やひとりぼっちでした。日曜日に PO ファイルが送られて来て、実質2日間で翻訳しました。 翻訳は POEdit を使ってやるのですが、単語だけの場合が困りました。先ほど実際にアップされて、今一通りサイトを確認している最中です。いくつか訳がおかしいところが既にありました。まとめて修正して行きます。あまり突っ込まないでくださいw Graham からもどんどん宣伝してくれと言われていますので、皆さんよろしくお願い致します。]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.syuhari.jp/blog/wp-content/uploads/2009/11/スクリーンショット（2009-11-18-11-18水-14.58.03）.png" alt="スクリーンショット（2009-11-18 11-18水 14.58.03）" title="スクリーンショット（2009-11-18 11-18水 14.58.03）" width="294" height="120" class="size-full wp-image-1915" /></p>
<p>CakePHP のQ&#038;A サイトの CakePHP Questions が日本語化されました！<br />
<a href="http://cakeqs.org/jpn" target="_blank" class="liexternal">http://cakeqs.org/jpn</a></p>
<p>ユーザ登録するとCakePHP に関する質問ができ、その質問に他のユーザが回答を付けてくれます。新しい CakePHP のコミュニティですね。まだ日本語の質問が少ないのでどんどん質問＆回答しましょう！また英語の質問と回答を見るだけでも参考になると思います。<br />
<span id="more-1914"></span><br />
ユーザ登録ですが、OpenID を使った方がいいと思います。メールアドレスで登録してみたのですが、Gmail も syuhari.jp のドメインのメールも登録確認メールが届かずにアクティベイトできませんでした。</p>
<p>OpenID はログイン画面で Identity URL を入れます。<br />
myOpenID だと Identity URL は http://yourid.myopenid.com/ になります。<br />
はてなだと Identity URL は http://www.hatena.ne.jp/yourid/ になります。</p>
<p>実はこの日本語への翻訳をお手伝いさせていただきました。ことの経緯は CakePHP のコアデベロッパの <a href="http://twitter.com/predominant" target="_blank" class="liexternal">Graham</a> が Twitter で</p>
<p><a href="http://twitter.com/predominant/status/5664105636" target="_blank" class="liimagelink"><img src="http://www.syuhari.jp/blog/wp-content/uploads/2009/11/スクリーンショット（2009-11-18-11-18水-15.02.18）-300x115.png" alt="スクリーンショット（2009-11-18 11-18水 15.02.18）" title="スクリーンショット（2009-11-18 11-18水 15.02.18）" width="300" height="115" class="size-medium wp-image-1916" /></a></p>
<p>とつぶやいたことに、私が「手伝います！」とリプライしたのがきっかけでした。他にも数人やる人がいて手分けしてやるのかと思っていたら以外やひとりぼっちでした。日曜日に PO ファイルが送られて来て、実質2日間で翻訳しました。</p>
<p>翻訳は POEdit を使ってやるのですが、単語だけの場合が困りました。先ほど実際にアップされて、今一通りサイトを確認している最中です。いくつか訳がおかしいところが既にありました。まとめて修正して行きます。あまり突っ込まないでくださいw</p>
<p><strong>Graham からもどんどん宣伝してくれと言われていますので、皆さんよろしくお願い致します。</strong></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F1914&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/1914/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[CakePHP] 画像をリサイズするヘルパー Image Resize Helper &amp; Image magick Resize Helper</title>
		<link>http://blog.syuhari.jp/archives/1911</link>
		<comments>http://blog.syuhari.jp/archives/1911#comments</comments>
		<pubDate>Tue, 17 Nov 2009 08:30:45 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[helper]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[resize]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=1911</guid>
		<description><![CDATA[先日画像をアップロード＆リサイズするビヘイビアを紹介しましたが、今回は画像をリサイズするヘルパーを2つ紹介します。 両方のヘルパーともキャッシュファイルを生成して表示しています。キャッシュがない場合はリサイズしてキャッシュファイルを生成、キャッシュファイルよりも元画像の方が新しければ画像が更新されたのでキャッシュを生成しなおしてくれます。ただ、両方のヘルパーとも画像ファイルのみでキャッシュファイルを生成するため、階層構造の画像ファイルを使用する場合はカスタマイズが必要です。 ImageBehavior でアップロード時に必要な画像のサイズにリサイズするのもいいですが、デザインによっては画像の大きさが各種あったり、サイトのリニューアルで画像サイズが変わったりすることもあるので、表示時にリサイズする利点はあると思います。 Image Resize Helper Image Resize Helper (Articles) &#124; The Bakery, Everything CakePHP GD を使用してリサイズするヘルパーです。使いやすいのですが、CakePHP1.1 用に書かれたコードなので、CakePHP1.2 では若干エラーが出ます。最後の return 文を下記のようにすれば CakePHP1.2 でもエラーが出なくなります。 return $this->Html->image($relfile, $htmlAttributes); view で以下のようにすればリサイズされた画像を表示できます。 echo $image->resize('hoge.png', 60, 60, true); 画像ファイルは webroot/img 以下のファイルを相対パスで指定します。先日紹介した ImageBehavior で取得出来るパスもそのまま使えます。 ただしキャッシュがファイル名のみで行われるので以下のようにカスタマイズしました。 $pathinfo = pathinfo($path); $cache_name = md5($path).".".$pathinfo['extension']; $relfile = $this->webroot.$this->themeWeb.IMAGES_URL.$this->cacheDir.'/'.$width.'x'.$height.'_'.$cache_name; $cachefile = $fullpath.$this->cacheDir.DS.$width.'x'.$height.'_'.$cache_name; 最終的に使用しているソースは下記にアップしてあります。 ImageHelper &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>先日画像をアップロード＆リサイズするビヘイビアを紹介しましたが、今回は画像をリサイズするヘルパーを2つ紹介します。</p>
<p>両方のヘルパーともキャッシュファイルを生成して表示しています。キャッシュがない場合はリサイズしてキャッシュファイルを生成、キャッシュファイルよりも元画像の方が新しければ画像が更新されたのでキャッシュを生成しなおしてくれます。ただ、両方のヘルパーとも画像ファイルのみでキャッシュファイルを生成するため、階層構造の画像ファイルを使用する場合はカスタマイズが必要です。</p>
<p>ImageBehavior でアップロード時に必要な画像のサイズにリサイズするのもいいですが、デザインによっては画像の大きさが各種あったり、サイトのリニューアルで画像サイズが変わったりすることもあるので、表示時にリサイズする利点はあると思います。<br />
<span id="more-1911"></span></p>
<h4>Image Resize Helper</h4>
<p><a href="http://bakery.cakephp.org/articles/view/image-resize-helper" target="_blank" class="liexternal">Image Resize Helper (Articles) | The Bakery, Everything CakePHP</a><br />
GD を使用してリサイズするヘルパーです。使いやすいのですが、CakePHP1.1 用に書かれたコードなので、CakePHP1.2 では若干エラーが出ます。最後の return 文を下記のようにすれば CakePHP1.2 でもエラーが出なくなります。</p>
<pre class="php" name="code">
return $this->Html->image($relfile, $htmlAttributes);
</pre>
<p>view で以下のようにすればリサイズされた画像を表示できます。</p>
<pre class="php" name="code">
echo $image->resize('hoge.png', 60, 60, true);
</pre>
<p>画像ファイルは webroot/img 以下のファイルを相対パスで指定します。先日紹介した ImageBehavior で取得出来るパスもそのまま使えます。</p>
<p>ただしキャッシュがファイル名のみで行われるので以下のようにカスタマイズしました。</p>
<pre class="php" name="code">
$pathinfo = pathinfo($path);
$cache_name = md5($path).".".$pathinfo['extension'];
$relfile = $this->webroot.$this->themeWeb.IMAGES_URL.$this->cacheDir.'/'.$width.'x'.$height.'_'.$cache_name;
$cachefile = $fullpath.$this->cacheDir.DS.$width.'x'.$height.'_'.$cache_name;
</pre>
<p>最終的に使用しているソースは下記にアップしてあります。<br />
<a href="http://github.com/syuhari/ImageHelper" target="_blank" class="liexternal">ImageHelper &#8211; GitHub</a></p>
<h4>Image Magick Resize Helper</h4>
<p><a href="http://bakery.cakephp.org/articles/view/image-magick-resize-helper" target="_blank" class="liexternal">Image Magick Resize Helper (Articles) | The Bakery, Everything CakePHP</a><br />
Image Magick を使用してリサイズするヘルパーです。</p>
<p>view で以下のようにすればリサイズして表示できます。</p>
<pre class="php" name="code">
echo $magickConvert->resize(IMAGES_URL."hoge.png", 60, 60, true);
</pre>
<p>こちらもキャッシュはファイル名で行われるので階層構造の画像を使用する場合はカスタマイズが必要です。</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F1911&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/1911/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[CakePHP] 画像のアップロード＆リサイズを簡単にできる ImageBehavior</title>
		<link>http://blog.syuhari.jp/archives/1905</link>
		<comments>http://blog.syuhari.jp/archives/1905#comments</comments>
		<pubDate>Mon, 16 Nov 2009 01:47:26 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[behavior]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[resize]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=1905</guid>
		<description><![CDATA[画像のアップロード＆リサイズ処理などは割とよくある処理でかつ面倒なものです。その処理を簡単にやってくれる Imageビヘイビアの紹介です。CakeFest で紹介された Media Plugin が高性能なので、メディアプラグインを使うのがいいのかもしれませんが、以前から Image ビヘイビアに関していつか使い方をまとめようと思っていたので紹介します。 参考サイト：ActAs Image column behavior (Articles) &#124; The Bakery, Everything CakePHP Baker で紹介されていた Image ビヘイビアです。このビヘイビアはアップロードされた画像をサムネイル作成、リサイズ、複数のバリエーションのサイズの画像を作成してくれます。またモデルを find すると画像のパスを返してくれます。 作成される画像は、webroot/img/[Model Name]/[Model ID]/ 以下に設定した名前でそれぞれの画像を作成してくれます。 インストール 元サイトにソースがありますが、コメント欄でかなりやり取りがあり結構修正しなければなりません。コメント欄以外にも私の方で修正した部分もあります。最終的に使ったソースをアップしておきます。 ImageBehavior &#8211; GitHub DB の準備 まずモデルのカラムにアップロードファイルの mime タイプを入れるカラムを作成します。今回はユーザ名と画像を持つユーザモデルを作成します。 CREATE TABLE `users` ( `id` tinyint(4) NOT NULL auto_increment, `name` varchar(20) NOT NULL, `image` varchar(255) default NULL, [...]]]></description>
			<content:encoded><![CDATA[<p>画像のアップロード＆リサイズ処理などは割とよくある処理でかつ面倒なものです。その処理を簡単にやってくれる Imageビヘイビアの紹介です。CakeFest で紹介された Media Plugin が高性能なので、メディアプラグインを使うのがいいのかもしれませんが、以前から Image ビヘイビアに関していつか使い方をまとめようと思っていたので紹介します。</p>
<p>参考サイト：<a href="http://bakery.cakephp.org/articles/view/actas-image-column-behavior" target="_blank" class="liexternal">ActAs Image column behavior (Articles) | The Bakery, Everything CakePHP</a></p>
<p>Baker で紹介されていた Image ビヘイビアです。このビヘイビアはアップロードされた画像をサムネイル作成、リサイズ、複数のバリエーションのサイズの画像を作成してくれます。またモデルを find すると画像のパスを返してくれます。</p>
<p>作成される画像は、webroot/img/[Model Name]/[Model ID]/ 以下に設定した名前でそれぞれの画像を作成してくれます。<br />
<span id="more-1905"></span></p>
<h4>インストール</h4>
<p>元サイトにソースがありますが、コメント欄でかなりやり取りがあり結構修正しなければなりません。コメント欄以外にも私の方で修正した部分もあります。最終的に使ったソースをアップしておきます。<br />
<a href="http://github.com/syuhari/ImageBehavior" target="_blank" class="liexternal">ImageBehavior &#8211; GitHub</a></p>
<h4>DB の準備</h4>
<p>まずモデルのカラムにアップロードファイルの mime タイプを入れるカラムを作成します。今回はユーザ名と画像を持つユーザモデルを作成します。</p>
<pre class="shell">
CREATE TABLE `users` (
  `id` tinyint(4) NOT NULL auto_increment,
  `name` varchar(20) NOT NULL,
  `image` varchar(255) default NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY  (`id`)
);
</pre>
<h4>モデル</h4>
<p>次にモデルに Image ビヘイビアの設定を入れます。</p>
<h5>カラム名の指定</h5>
<p>array(&#8216;fields&#8217;=>&#8217;image&#8217;) となっている部分が DB のカラムに指定したカラム名になります。</p>
<h5>サムネイルの指定</h5>
<p>thumbnail => array(&#8216;create&#8217;=>true) とすることにより、thumb_ をプレフィックスにしたファイル名でサムネイル画像が作成されます。サイズはデフォルトで 100&#215;100 です。サイズの指定も可能です。この指定を省略すればサムネイルは作成されません。</p>
<h5>リサイズの指定</h5>
<p>resize => array(&#8230;) で指定したサイズでリサイズします。縦、横のサイズ、アスペクト比を保つか、指定サイズよりも小さい場合拡大するかなどを指定します。省略した場合はリサイズされずにアップロードされます。</p>
<h5>その他のサイズの画像作成</h5>
<p>その他のサイズの画像を作成したい場合は、version => array( &#8230; ) で指定します。</p>
<pre class="php" name="code">
class User extends AppModel {
  var $name = 'User';
  var $actsAs = array(
    'Image'=>array(
      'fields'=>array(
        'image'=>array(
          'thumbnail'=>array('create'=>true),
          'resize'=>array(
            'width'=>'200',
            'height'=>'200',
            'aspect'=>true,
            'allow_enlarge'=>true,
        ),
        'versions'=>array(
            array(
              'prefix'=>'small',
              'width'=>'70',
              'height'=>'70',
              'aspect'=>true,
              'allow_enlarge'=>true,
            ),
          )
        )
      )
    )
  );
}
</pre>
<h4>ビュー</h4>
<p>注意する点としてはアップロードするので array(&#8216;enctype&#8217;=&gt;&#8217;multipart/form-data&#8217;) の指定をお忘れなく。</p>
<pre class="php" name="code">
&lt;div class=&quot;users form&quot;&gt;
&lt;?php echo $form-&gt;create('User', array('enctype'=&gt;'multipart/form-data'));?&gt;
	&lt;fieldset&gt;
 		&lt;legend&gt;&lt;?php __('Add User');?&gt;&lt;/legend&gt;
	&lt;?php
		echo $form-&gt;input('name');
		echo $form-&gt;file('image');
	?&gt;
	&lt;/fieldset&gt;
&lt;?php echo $form-&gt;end('Submit');?&gt;
</pre>
<h4>画像保存ディレクトリ</h4>
<p>アップロードした画像は /webroot/img/ 以下にモデル名、モデルのID によってディレクトリが分けられ保存されます。そのため、webroot/img に apache 実行ユーザに書き込み権限を与えておく必要があります。保存形式は<br />
<code>/webroot/img/[Model Name]/[Model ID]/[column_name].[ext] </code><br />
という感じになります。thumbnail と version で指定したものにはそれぞれプレフィックスが付きます。</p>
<p>上記の設定で、ユーザID が 1 のユーザが hoge.jpg という画像をアップロードすると<br />
/webroot/img/User/1/image.jpg<br />
/webroot/img/User/1/thumb_image.jpg<br />
/webroot/img/User/1/small_image.jpg<br />
と3つのファイルが保存されます。</p>
<h4>コントローラ</h4>
<p>コントローラでは特に変わったことをする必要はありません。save すれば画像が保存されます。</p>
<pre class="php" name="code">
function add() {
  if (!empty($this->data)) {
    $this->User->create();
    if ($this->User->save($this->data)) {
      $this->Session->setFlash(__('The User has been saved', true));
      $this->redirect(array('action'=>'index'));
    } else {
      $this->Session->setFlash(__('The User could not be saved. Please, try again.', true));
    }
  }
}
</pre>
<p>ユーザモデルのデータを取得すれば、作成した各種画像のパスが取得できます。</p>
<pre class="php" name="code">
$user = $this->User->read(null, $id);
debug($user);
</pre>
<pre class="shell">
Array
(
  [User] => Array
    (
      [id] => 1
      [name] => hoge
      [image] => Array
        (
          [path] => User/12/image.jpg
          [thumb] => User/12/thumb_image.jpg
          [small] => User/12/small_image.jpg
        )
      [created] => 2009-11-13 15:48:02
      [modified] => 2009-11-13 16:08:15
    )
)
</pre>
<p>画像のパスは webroot/img ディレクトリからの相対パスなので下記のように Html ヘルパーを使って出力できます。</p>
<pre class="php" name="code">
&lt;?php echo $html-&gt;image($user['User']['image']['path']); ?&gt;
</pre>
<h4>その他</h4>
<p>アップロード処理なので、モデルできっちりとバリデーション処理はしてください。この辺りも Behavior に組み込めればいいですね。</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F1905&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/1905/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>CakeMatsuri に参加＆発表しました</title>
		<link>http://blog.syuhari.jp/archives/1892</link>
		<comments>http://blog.syuhari.jp/archives/1892#comments</comments>
		<pubDate>Sat, 07 Nov 2009 00:34:46 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[CakeMatsuri]]></category>
		<category><![CDATA[LT]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=1892</guid>
		<description><![CDATA[遅くなりましたが、10/30, 10/31 に開催された CakeMatsuri に参加した報告です。 今回は例年のカンファレンスとは違って、初日にワークショップ、２日目にカンファレンスという CakeFest に近い感じでの開催でした。なんとか予定をつけて2日とも参加することができました。 ワークショップ ワークショップは入門者コース、実務者コース、英語コースと分かれていて、私は実務者コースに参加させていただきました。 ユニットテスト基礎 ユニットテスト実践 講師は「Webアプリケーションテスト手法」の著者の岸田さん。サンプルアプリケーションをカスタマイズするという目的でCakePHP でのユニットテストのやり方を教えて頂きました。ユニットテストは自己流だったので基礎から聞けてよかったです。 実践CakePHP1 ビヘイビア、プラグインの作り方。実はこのセッションの時に業務でトラブルが発生してしまい折角の @cakephper さんのお話を聞けませんでした。申し訳なかったです。 実践CakePHP2 CakePHP の携帯対応プラグイン Kati Library の使い方をプラグイン作者の MASA-P さんより直々に聞くことが出来ました。携帯対応って面倒なことが多いのでこういうプラグインは助かりますね。 パフォーマンスチューニング セキュリティ Web アプリケーションで最も大切で最も難しい部分だと思う、パフォーマンスとセキュリティの話を @shin1x1 さんからして頂きました。Cake 以外でも応用できる内容だと思いました。 カンファレンス カンファレンスは前日のワークショップで知り合った方とかとまたお会い出来たりしたので、そういうのも Matsuri のいいところですね。最初に「今日は知らない人最低３人と話しをしましょう」というお話が新原さんからありましたが、午前中に発表したこともあり、色々な方とお話ができました。 カンファレンスは発表の内容はもちろん大変参考＆勉強になることが多いですが、色々な方と知り合え、話ができるのがいいですね。 私は事例紹介とLTと2つも発表させていただきました。発表の場を与えて頂きありがとうございました。ただ、Mac とプロジェクタの接続に手こずり少々時間を取ってしまいました。もっと慣れないとダメですね。 事例紹介の資料はここではのせられないのですが、LT の資料を載せておきます。 CakePHP in iPhone App View more presentations from guest615af2. 懇親会で話をしていて気がついたのですが、この発表の内容を誤解されている方が多かったです。iPhone で Cake が動いているのではなく、Cake [...]]]></description>
			<content:encoded><![CDATA[<p>遅くなりましたが、10/30, 10/31 に開催された CakeMatsuri に参加した報告です。<br />
今回は例年のカンファレンスとは違って、初日にワークショップ、２日目にカンファレンスという CakeFest に近い感じでの開催でした。なんとか予定をつけて2日とも参加することができました。<br />
<span id="more-1892"></span></p>
<h4>ワークショップ</h4>
<p>ワークショップは入門者コース、実務者コース、英語コースと分かれていて、私は実務者コースに参加させていただきました。</p>
<dl>
<dt>ユニットテスト基礎</dt>
<dt>ユニットテスト実践</dt>
<dd>講師は「<a href="http://www.amazon.co.jp/gp/product/4839924309?ie=UTF8&#038;tag=8109-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4839924309" target="_blank" class="liexternal">Webアプリケーションテスト手法</a><img src="http://www.assoc-amazon.jp/e/ir?t=8109-22&#038;l=as2&#038;o=9&#038;a=4839924309" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」の著者の岸田さん。サンプルアプリケーションをカスタマイズするという目的でCakePHP でのユニットテストのやり方を教えて頂きました。ユニットテストは自己流だったので基礎から聞けてよかったです。</p>
<dt>実践CakePHP1</dt>
<dd>ビヘイビア、プラグインの作り方。実はこのセッションの時に業務でトラブルが発生してしまい折角の @cakephper さんのお話を聞けませんでした。申し訳なかったです。</dd>
<dt>実践CakePHP2</dt>
<dd>CakePHP の携帯対応プラグイン Kati Library の使い方をプラグイン作者の MASA-P さんより直々に聞くことが出来ました。携帯対応って面倒なことが多いのでこういうプラグインは助かりますね。</p>
<dt>パフォーマンスチューニング</dt>
<dt>セキュリティ</dt>
<dd>Web アプリケーションで最も大切で最も難しい部分だと思う、パフォーマンスとセキュリティの話を @shin1x1 さんからして頂きました。Cake 以外でも応用できる内容だと思いました。
</dl>
<h4>カンファレンス</h4>
<p>カンファレンスは前日のワークショップで知り合った方とかとまたお会い出来たりしたので、そういうのも Matsuri のいいところですね。最初に「今日は知らない人最低３人と話しをしましょう」というお話が新原さんからありましたが、午前中に発表したこともあり、色々な方とお話ができました。<br />
カンファレンスは発表の内容はもちろん大変参考＆勉強になることが多いですが、色々な方と知り合え、話ができるのがいいですね。</p>
<p>私は事例紹介とLTと2つも発表させていただきました。発表の場を与えて頂きありがとうございました。ただ、Mac とプロジェクタの接続に手こずり少々時間を取ってしまいました。もっと慣れないとダメですね。</p>
<p>事例紹介の資料はここではのせられないのですが、LT の資料を載せておきます。</p>
<div style="width:425px;text-align:left" id="__ss_2442432"><a href="http://www.slideshare.net/guest615af2/cakephp-in-iphone-app" style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="CakePHP in iPhone App" target="_blank" class="liexternal">CakePHP in iPhone App</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cakephpiniphoneapp-091106181142-phpapp02&#038;stripped_title=cakephp-in-iphone-app" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cakephpiniphoneapp-091106181142-phpapp02&#038;stripped_title=cakephp-in-iphone-app" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a href="http://www.slideshare.net/" style="text-decoration:underline;" target="_blank" class="liexternal">presentations</a> from <a href="http://www.slideshare.net/guest615af2" style="text-decoration:underline;" target="_blank" class="liexternal">guest615af2</a>.</div>
</div>
<p>懇親会で話をしていて気がついたのですが、この発表の内容を誤解されている方が多かったです。iPhone で Cake が動いているのではなく、Cake はサーバで動いていて iPhone がサーバと通信してCake から出力データを取得して表示するということです。この発表の時はかなり焦っていたので、うまく伝えられずに申し訳なかったです。</p>
<p>最後に青年団の方、お疲れさまでした＆ありがとうございました！</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F1892&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/1892/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[CakePHP] Firefox で CakePHP API を簡単に検索する方法</title>
		<link>http://blog.syuhari.jp/archives/1879</link>
		<comments>http://blog.syuhari.jp/archives/1879#comments</comments>
		<pubDate>Wed, 28 Oct 2009 04:30:06 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Search]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=1879</guid>
		<description><![CDATA[Firefox の検索バーに CakePHP API の検索を追加して簡単に CakePHP API を検索する方法です。 下記エントリで紹介されています。 Easy CakePHP API search with Firefox ? nuts and bolts of cakephp こんな感じになります。 やり方は簡単です。 以下のサイトにアクセスして CakePHP API というリンクをクリックするだけで、Firefox の検索バーに追加されます。 Mycroft Project: Cakephp Search Engine Plugins &#8211; Firefox &#038; IE7 例えば検索バーに &#8220;find&#8221; とか入れて検索すると以下のように検索できます。 CakePHP: the rapid development php framework: Api : Api Classes ショートカットを使えばもっと簡単です。 Ctl + k [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox の検索バーに CakePHP API の検索を追加して簡単に CakePHP API を検索する方法です。<br />
下記エントリで紹介されています。<br />
<a href="http://teknoid.wordpress.com/2009/10/27/easy-cakephp-api-search-with-firefox/" target="_blank" class="liexternal">Easy CakePHP API search with Firefox ? nuts and bolts of cakephp</a></p>
<p>こんな感じになります。<br />
<img src="http://www.syuhari.jp/blog/wp-content/uploads/2009/10/スクリーンショット（2009-10-28-10-28水-13.20.03）.png" alt="スクリーンショット（2009-10-28 10-28水 13.20.03）" title="スクリーンショット（2009-10-28 10-28水 13.20.03）" width="236" height="47" class="alignnone size-full wp-image-1880" /><br />
<span id="more-1879"></span><br />
やり方は簡単です。<br />
以下のサイトにアクセスして CakePHP API というリンクをクリックするだけで、Firefox の検索バーに追加されます。<br />
<a href="http://mycroft.mozdev.org/search-engines.html?name=cakephp" target="_blank" class="liexternal">Mycroft Project: Cakephp Search Engine Plugins &#8211; Firefox &#038; IE7</a></p>
<p>例えば検索バーに &#8220;find&#8221; とか入れて検索すると以下のように検索できます。<br />
<a href="http://api.cakephp.org/search/find" target="_blank" class="liexternal">CakePHP: the rapid development php framework: Api : Api Classes</a></p>
<p>ショートカットを使えばもっと簡単です。</p>
<ul>
<li>Ctl + k で検索バーにカーソルが移動</li>
<li>Ctl + 上下矢印で検索エンジンを切り替え</li>
</ul>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F1879&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/1879/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CakeMatsuri カンファレンスで LT &amp; 事例紹介</title>
		<link>http://blog.syuhari.jp/archives/1875</link>
		<comments>http://blog.syuhari.jp/archives/1875#comments</comments>
		<pubDate>Mon, 26 Oct 2009 00:19:52 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[CakeMatsuri]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[LT]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=1875</guid>
		<description><![CDATA[10/31 の CakeMatsuri カンファレンスで LT と事例紹介のお話をさせていただくことになりました。 LT では iPhone での CakePHP を使ったアプリのお話、事例紹介では実際に私が携わった案件で CakePHP を使用した事例を紹介させていただきます。 初日のワークショップは既に定員に達しているようですが、2日目のカンファレンスはまだチケットあるようですので、興味ある方は是非ご参加ください。チケットは 8,295円ですが、これには チケットには1,000円相当の昼食、5,250円相当のパーティの費用も含まれます。 ということですので、かなりお得になっていると思います！ ということでそろそろ準備を始めるとします。]]></description>
			<content:encoded><![CDATA[<p><a href="http://matsuri.cakephp.jp/" target="_blank" class="liimagelink"><img src="http://www.syuhari.jp/blog/wp-content/uploads/2009/10/matsurigreen.png" alt="matsurigreen" title="matsurigreen" width="220" height="96" class="size-full wp-image-1839" /></a></p>
<p>10/31 の <a href="http://matsuri.cakephp.jp/pages/talks" target="_blank" class="liexternal">CakeMatsuri カンファレンス</a>で LT と事例紹介のお話をさせていただくことになりました。</p>
<p>LT では iPhone での CakePHP を使ったアプリのお話、事例紹介では実際に私が携わった案件で CakePHP を使用した事例を紹介させていただきます。<br />
<span id="more-1875"></span><br />
初日のワークショップは既に定員に達しているようですが、2日目のカンファレンスはまだチケットあるようですので、興味ある方は是非ご参加ください。チケットは 8,295円ですが、これには</p>
<blockquote><p>チケットには1,000円相当の昼食、5,250円相当のパーティの費用も含まれます。</p></blockquote>
<p>ということですので、かなりお得になっていると思います！</p>
<p>ということでそろそろ準備を始めるとします。</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F1875&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/1875/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakeMatsuri 申し込んだ＆LT も希望出した</title>
		<link>http://blog.syuhari.jp/archives/1848</link>
		<comments>http://blog.syuhari.jp/archives/1848#comments</comments>
		<pubDate>Wed, 07 Oct 2009 07:49:37 +0000</pubDate>
		<dc:creator>matsuura</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[CakeMatsuri]]></category>
		<category><![CDATA[LT]]></category>

		<guid isPermaLink="false">http://www.syuhari.jp/blog/?p=1848</guid>
		<description><![CDATA[10/30-31 で開催される CakePHP のイベント CakeMatsuri に申し込みました。ワークショップとカンファレンス両方とも。LT も参加者を募集していたので、申し込んでみました。多分発表希望者が多くて抽選になりそうな気がしますが、発表できなくても CakeMatsuri 参加するだけでかなり楽しそう＆ためになりそうなです。 今回からワークショップとかあったり、昼食や懇親会も正式に組み込まれていたり主催者の皆さんの意気込みをガンガンに感じます。]]></description>
			<content:encoded><![CDATA[<p><a href="http://matsuri.cakephp.jp/" target="_blank" class="liimagelink"><img src="http://www.syuhari.jp/blog/wp-content/uploads/2009/10/matsurigreen.png" alt="matsurigreen" title="matsurigreen" width="220" height="96" class="size-full wp-image-1839" /></a></p>
<p>10/30-31 で開催される CakePHP のイベント CakeMatsuri に申し込みました。ワークショップとカンファレンス両方とも。LT も参加者を募集していたので、申し込んでみました。多分発表希望者が多くて抽選になりそうな気がしますが、発表できなくても CakeMatsuri 参加するだけでかなり楽しそう＆ためになりそうなです。<br />
<span id="more-1848"></span><br />
今回からワークショップとかあったり、昼食や懇親会も正式に組み込まれていたり主催者の皆さんの意気込みをガンガンに感じます。</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.syuhari.jp%2Farchives%2F1848&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://blog.syuhari.jp/archives/1848/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

