<?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>WIDGET-INFO &#187; その他</title>
	<atom:link href="http://blog.widget-info.net/category/cakephp/ath/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.widget-info.net</link>
	<description>WIDGET-INFOではCakePHPやIPhone情報、その他開発に関する情報を発信</description>
	<lastBuildDate>Tue, 09 Feb 2010 13:44:47 +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 1.3.0-betaリリース</title>
		<link>http://blog.widget-info.net/2010/01/cakephp-1-3-0-beta/</link>
		<comments>http://blog.widget-info.net/2010/01/cakephp-1-3-0-beta/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 14:05:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Version]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[データベース]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=407</guid>
		<description><![CDATA[CakePHP 1.3.0-betaがリリースされています。「alpha」のリリースから2ヶ月ほどですが、だいぶ機能追加もあったようです。]]></description>
			<content:encoded><![CDATA[<p>CakePHP 1.3.0-betaがリリースされています。<br />
「alpha」のリリースから2ヶ月ほどですが、だいぶ機能追加もあったようです。</p>
<p>現在開発でも使っている「1.2.5」のバージョンでも十分開発が可能ですが<br />
「1.3」系はそれを上回るほど、個人的には期待しています（笑<br />
<span id="more-407"></span><br />
というのも「1.2」系では2つのアプリケーションをCakePHPの設計上1つにまとめることができず<br />
2つの「app」を用意しなければならない状態など、若干の不自由さがありました。<br />
もちろん何でも無理やり1つにすれば良いということはありませんが（笑</p>
<p>捉え方は個人差がありますが、個人的には今回の「1.3」系に早く乗り換えたいと考えています。</p>
<p>ちなみに個人的には以下の機能が「1.3」系で魅力的に見えています（笑</p>
<p>1.「virtual fields」機能<br />
ようやく来たか、という感じです（笑<br />
簡単に説明すると通常は1つテーブル内にあるフィールドはCakePHPで普通に取得すると<br />
存在するフィールドのみデータが取得されます。<br />
しかしデータベース（ここではMySQLで例えます）では、存在するフィールドAとBをくっつけてCの仮想のフィールドに<br />
加工してデータを取得することができます。<br />
今までのCakePHPでは独自にクエリーを記述して取得するしか方法はありませんでしたが、今回のCakePHPでは<br />
モデルに記述することでクエリーを書くことなく実現できるとのこと。<br />
さらにコーディング量が減るのではと期待しています。</p>
<p>2.「Routing.admin」の仕様変更<br />
今までの仕様では「Routing」の設定は1つまででした。<br />
いわゆる「Routing」が「admin」と設定していた場合は「index」と「admin_index」のみとなっています。<br />
さらに別名が必要な場合は「app」自体を分けるか、「Webサービス」機能を使うか（個人的にはまったく利用していません。。。）<br />
になるかと思います。<br />
しかし「1.3」系からは複数設定することが可能です。この変更はかなり大きいです（笑</p>
<p>3.Componentsの仕様変更<br />
といっても大幅な変更ではないようですが、使い勝手が向上した変更のようです。<br />
コンポーネントを作成したことがあるかたはご存知かと思いますが、現在のコンポーネントでは<br />
モデルのビヘイビアのように、初期設定値をコンポーネント設定時には記述することができません。<br />
しかし「1.3」系からは記述することが可能になります。<br />
これは個人的ちょっとほしかった機能で、コンポーネントの開発の幅が広くなりそうです（笑</p>
<p>と特に魅力的に思えた部分ですが、その他にも「Valdation」などなどで機能が大幅に改善されています。<br />
ここでは全てを書ききれないので、また別の機会に紹介できればと（汗</p>
<p>最後に、「1.2」系のアプリケーションに「1.3」系のCakePHPに変更すると、とりあえずエラーが起きます（笑<br />
まぁ当たり前な話ではありますが、特にクラス名が変更されている部分もあるそうなので、<br />
変更を予定されている方は注意が必要かと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2010/01/cakephp-1-3-0-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CakePHP　事例1</title>
		<link>http://blog.widget-info.net/2010/01/cakephp_case1/</link>
		<comments>http://blog.widget-info.net/2010/01/cakephp_case1/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 14:10:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[その他]]></category>
		<category><![CDATA[事例]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=402</guid>
		<description><![CDATA[ということで少し事例を。。。だいぶCakePHPで開発しているサイトも多くなってきたかと思います。]]></description>
			<content:encoded><![CDATA[<p>ということで少し事例を。。。</p>
<p>だいぶCakePHPで開発しているサイトも多くなってきたかと思います。<br />
そこで自分が知ってるCakePHP製のサイトを紹介。</p>
<p><a title="ペット美容室・サロンのポータルサイト" href="http://www.petaru.info/" target="_blank">全国のペット美容室・サロンを検索できるポータルサイト</a><br />
ペット美容室またはサロンの情報を検索できるポータルです。</p>
<p>少しずつ紹介していきます（笑</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2010/01/cakephp_case1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP Questions　質問サイト公開</title>
		<link>http://blog.widget-info.net/2009/11/cakephp-questions/</link>
		<comments>http://blog.widget-info.net/2009/11/cakephp-questions/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 15:28:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[その他]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[質問]]></category>
		<category><![CDATA[迷惑メール]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=363</guid>
		<description><![CDATA[CakePHPの質問サイトが公開されたそうです。]]></description>
			<content:encoded><![CDATA[<p>CakePHPの質問サイトが公開されたそうです。<br />
まだ公開されたばかりなので質問数は少なめですが、言語を英語にすると<br />
英文の質問と回答も見ることもできるので、参考になるかと思います。</p>
<p><a title="CakePHP Questions" href="http://cakeqs.org/jpn" target="_blank">CakePHP Questions　http://cakeqs.org/jpn</a></p>
<p>ちなみに質問の投稿などは、会員登録が必要です。<br />
自分もGmailで登録しています。<br />
ちなみにGmailで登録すると迷惑メールにメールが受信される場合があります。<br />
※自分だけかもしれませんが。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/11/cakephp-questions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP 　「1.3alpha」バージョンリリース</title>
		<link>http://blog.widget-info.net/2009/11/cakephp_1-3alpha/</link>
		<comments>http://blog.widget-info.net/2009/11/cakephp_1-3alpha/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 14:10:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Version]]></category>
		<category><![CDATA[バージョン]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=353</guid>
		<description><![CDATA[CakePHPがとうとう1.3alphaまでにきました。バージョンアップされる毎に新たな機能やニーズに合わせた拡張があってうれしい限りです。]]></description>
			<content:encoded><![CDATA[<p>CakePHPがとうとう1.3alphaまでにきました。<br />
バージョンアップされる毎に新たな機能やニーズに合わせた拡張があってうれしい限りです。</p>
<p>今回のバージョンアップで個人的に助かる拡張は<span id="more-353"></span></p>
<p>やはり「Router」の拡張。<br />
今回のバージョンアップで、今までは1つしか指定できなかった「Routing.admin」でしたが<br />
複数指定することが可能のなったのは大きいです。</p>
<p>例えば「admin_index」などは管理者、「index」はPC、「m_index」はモバイル端末として<br />
扱うことも可能となりました。<br />
今まではCakePHPの「Webサービス」または「app」自体を別で用意するといった作業が必要ですが<br />
1つのコントローラーで切り分けを管理することができるようになりました。</p>
<p>その他にも拡張されたこともありますので以下URLよりご確認ください。</p>
<p><a href="http://code.cakephp.org/wiki/1.3/new-features" target="_blank">http://code.cakephp.org/wiki/1.3/new-features</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/11/cakephp_1-3alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP　バリデーションの日本語問題</title>
		<link>http://blog.widget-info.net/2009/10/cakephp_validation_jpn/</link>
		<comments>http://blog.widget-info.net/2009/10/cakephp_validation_jpn/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 22:57:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Model]]></category>
		<category><![CDATA[その他]]></category>
		<category><![CDATA[バリデーション]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=304</guid>
		<description><![CDATA[CakePHPにはバリデーションの機能があります。入力データを任意の方法で正しい入力かどうかをチェックしてくれる機能。。。]]></description>
			<content:encoded><![CDATA[<p>CakePHPにはバリデーションの機能があります。<br />
入力データを任意の方法で正しい入力かどうかをチェックしてくれる機能。。。<br />
大変便利機能で当たり前のように使っていると思いますが、やはり日本語周りがorz</p>
<p>まぁしかたの無いことなのですが、内部のライブラリの状態を見る限りでは<br />
悲しいこと2バイト文字に関しては基本処理されていません。<br />
<span id="more-304"></span></p>
<p>例えば「minLength」というバリデーション方法。<br />
入力文字数の最小数をチェックしてくれるバリデーションですが、<br />
CakePHPの本体のままで利用して例として、最小文字数を2文字以上で<br />
入力させたい場合で入力文字が「あ」と入力されたとします。</p>
<p>普通に考えればバリデーションに引っかかり、入力エラー処理をされますが、<br />
もちろんあっさり通り抜けてしまいます（笑<br />
まぁ内部を見ると簡単。。。2バイト文字は無視です（笑<br />
※厳密には無視では無く、文字数の数え方が違います。</p>
<p>そこでCakePHPの本体を変更せずに、2バイト文字に対応させた<br />
バリデーション方法はないか。。。もちろんバリデーション名も変更せずに。。。</p>
<p>その結果、「app_model.php」に以下の方法で対応できます。</p>
<pre class="brush:php">function minLength($check, $min) {
	$check=(is_array($check))?current($check):$check;
	$length = mb_strlen($check,Configure::read('App.encoding'));
	return ($length &gt;= $min);
}</pre>
<p>既存のバリデーションにオーバロードをさせてしまう方法です。<br />
こうすることで2バイト文字でも正しく文字数を判別することができるようになります。<br />
その他のバリデーションも同じように変更することで2バイト文字のバリデーション対応にすることができます。<br />
といってもあと2つなのでコピペができるようにまとめておきます。</p>
<pre class="brush:php">function minLength($check, $min) {
	$check=(is_array($check))?current($check):$check;
	$length = mb_strlen($check,Configure::read('App.encoding'));
	return ($length &gt;= $min);
}
function maxLength($check, $max) {
	$check=(is_array($check))?current($check):$check;
	$length = mb_strlen($check,Configure::read('App.encoding'));
	return ($length &lt;= $max);
}
function between($check, $min, $max) {
	$check=(is_array($check))?current($check):$check;
	$length = mb_strlen($check,Configure::read('App.encoding'));
	return ($length &gt;= $min &amp;&amp; $length &lt;= $max);
}</pre>
<p>2バイト文字の処理がある場合は注意しておくと無難です（笑</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/10/cakephp_validation_jpn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CakePHP　1.2.5Stable</title>
		<link>http://blog.widget-info.net/2009/09/cakephp_1-2-5stable/</link>
		<comments>http://blog.widget-info.net/2009/09/cakephp_1-2-5stable/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 15:29:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Version]]></category>
		<category><![CDATA[その他]]></category>
		<category><![CDATA[バージョン]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=190</guid>
		<description><![CDATA[少し前ですが、CakePHPの1.2.5になってます。Stableになってからも少しずつ改良されてるみたいですね。]]></description>
			<content:encoded><![CDATA[<p>少し前ですが、CakePHPの1.2.5になってます。<br />
Stableになってからも少しずつ改良されてるみたいですね。</p>
<p>日本国内ではまだPHP4のサーバが存在するため、CakePHP1.2から離れられない<br />
部分はありますが、CakePHPの1.3系が23%、2.0系が51%と着々と進んでいるみたいですね。</p>
<p>PHPの5系のサーバが増えてくると、CakePHPの開発ももっと進むのかと期待です（笑</p>
<p>この先のWeb開発もどう変わっていき、CakePHPがどう対応していくのか<br />
小さなプログラマーですがワクワクするところです（笑</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/09/cakephp_1-2-5stable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP　MySQLのSET型について</title>
		<link>http://blog.widget-info.net/2009/09/cakephp-mysql_set_info/</link>
		<comments>http://blog.widget-info.net/2009/09/cakephp-mysql_set_info/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 23:14:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[その他]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=89</guid>
		<description><![CDATA[CakePHPではMySQLのSET型を「hasAndBelongsToMany」のアソシエーションで対応するようにしていると思われます。]]></description>
			<content:encoded><![CDATA[<p>CakePHPではMySQLのSET型を「hasAndBelongsToMany」の<br />
アソシエーションで対応するようにしていると思われます。</p>
<p>しかしそのために「hasAndBelongsToMany」のアソシエーションを設計すると<br />
データベースのテーブルを増やさなければなりません。</p>
<p>簡単なアプリケーションを作成するだけならばいいのですが。。。</p>
<p><span id="more-89"></span>そうはいかない開発があります。<br />
負荷の問題、検索の仕様などと、考慮しなければならないとなると<br />
SET型を利用したくなると思います。</p>
<p>ENUM型と同様に「find」や「save」は問題なく実行できるとは思いますが<br />
やはりヘルパーが。。。もちろん文字列です（笑）<br />
PHPコードをとCakePHPの「Set::enum」を利用すればなんとかなるが<br />
やはり手がかかります。</p>
<p>なんとかヘルパーを作るとしますか（笑）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/09/cakephp-mysql_set_info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP　MySQLのENUM型について</title>
		<link>http://blog.widget-info.net/2009/09/cakephp-mysql_enum_info-2/</link>
		<comments>http://blog.widget-info.net/2009/09/cakephp-mysql_enum_info-2/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 15:05:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[その他]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=104</guid>
		<description><![CDATA[CakePHPのMySQLのENUM型について]]></description>
			<content:encoded><![CDATA[<p>CakePHPではMySQLのENUM型はCakePHPのアソシエーションである<br />
「belongsTo」で対応する考えでいるように感じます。<br />
あくまでも個人的なところですが。。。（笑）</p>
<p>といっても一応はENUM型でも「find」や「seve」をしても<br />
問題なく実行できるので利用しても問題ない状態ではあります。<br />
<span id="more-104"></span><br />
<img title="もっと読む..." src="http://blog.widget-info.net/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />しかしヘルパーは見事に対応していません（笑）<br />
もちろん「From」ヘルパーはテキストとして認識するため<br />
テキストの入力フォームが出力されます。</p>
<p>というのもCakePHPではENUM型を「String」、つまり文字列として扱っています。<br />
そのためにテキストの入力フォームを出力するようになっています。<br />
一応はCakePHPが取得するデータベースのスキーマにはENUM型を取得してはいますが、<br />
おそらく今後対応していくのかと。。。（汗）</p>
<p>んーまぁ軽く自前のヘルパーを作るかと。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/09/cakephp-mysql_enum_info-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP　独自定数の記述</title>
		<link>http://blog.widget-info.net/2009/08/ath_09_08_14/</link>
		<comments>http://blog.widget-info.net/2009/08/ath_09_08_14/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 06:04:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[その他]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=14</guid>
		<description><![CDATA[独自定数を記述する場合のメモ書き。。。]]></description>
			<content:encoded><![CDATA[<p>独自定数を記述する場合のメモ書き。。。<br />
<span id="more-14"></span>定数化をするためにCakePHPからあらかじめ取得してから行う場合は「app_controller.php」へ記述、<br />
設定値のような定数の場合は「config/bootstrap.php」に記述することをお勧めします。</p>
<p>「bootstrap.php」はCakePHPが動作する最初の段階で読み込まれるファイルです。<br />
このファイルに記述した定数または関数はどこでも利用可能になるというわけです。</p>
<p>「bootstrap.php」を使いこなせるようになると開発が少し楽になります(笑</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/08/ath_09_08_14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
