<?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>JiroBlog &#187; メモ</title>
	<atom:link href="http://www.jirosoft.com/wordpress/tag/%e3%83%a1%e3%83%a2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jirosoft.com/wordpress</link>
	<description>ただのオヤジプログラマのブログ</description>
	<lastBuildDate>Thu, 22 Jul 2010 13:13:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>cakePHP1.3再入門#1</title>
		<link>http://www.jirosoft.com/wordpress/2010-05-31-165/</link>
		<comments>http://www.jirosoft.com/wordpress/2010-05-31-165/#comments</comments>
		<pubDate>Mon, 31 May 2010 08:36:57 +0000</pubDate>
		<dc:creator>Jiro</dc:creator>
				<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://www.jirosoft.com/wordpress/?p=165</guid>
		<description><![CDATA[しばらくcakePHPから遠ざかっていたらVar1.3安定版が出ていました。
新規に1.3をインストールして、再度初心に帰って再入門します。ということで、いつもの覚書と言うかメモです。
ダウンロード
cakePHP日本語 [...]]]></description>
			<content:encoded><![CDATA[<p>しばらくcakePHPから遠ざかっていたらVar1.3安定版が出ていました。</p>
<p>新規に1.3をインストールして、再度初心に帰って再入門します。ということで、いつもの覚書と言うかメモです。</p>
<p>ダウンロード<br />
<a href="http://cakephp.jp/">cakePHP日本語サイト</a>のトップに1.3.0 stableのDOWNLOADがあります。<br />
cakephp-cakephp1x-1.3.0-0-g1c06478.zipと言うファイルを落としてきて解凍チン!!。</p>
<p>テスト環境はxamppを使っているのでxampp/htdocs/以下に今回テスト用のktaiというディレクトリを作って中身をコピー。</p>
<p>とりあえず、このままfirefoxでhttp://localhost/ktai/を打ち込む。<br />
まずエラーページが表示される。<br />
<a href="http://www.jirosoft.com/wordpress/wp-content/uploads/2010/05/cakephp1_3_01.jpg"><img class="alignleft size-medium wp-image-166" title="cakephp1_3_01" src="http://www.jirosoft.com/wordpress/wp-content/uploads/2010/05/cakephp1_3_01-300x201.jpg" alt="cakePHP初期画面" width="300" height="201" /></a></p>
<p>まずは、お決まりのエラーですが、ちょっと新しいのが出ているのかな。<br />
&#8216;Security.cipherSeed&#8217;って無かったような気がする。</p>
<p>背景が黄色の部分がエラーです。<br />
３箇所出ています。<br />
最初の二つについては/app/config/core.phpを編集しないといけません。</p>
<p>「Security.salt」の定数がデフォルトだとみんなに知られていますから変更しろとのこと。</p>
<p>198行目の</p>
<pre class="brush: php;">
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
</pre>
<p>を書き換えます。<br />
DYhG93b0q&#8230;の部分を適当に書き換えます。この値はハッシュの作成に使われます。</p>
<p>CookBookの1.3を見ると CIPHER_SEEDがSecurity.cipherSeedに書き換えられたみたい。なんのことやらw<br />
どうも乱数発生時の種みたいですね。これも適当な数字に書き換えましょう。</p>
<p>203行目の</p>
<pre class="brush: php;">
Configure::write('Security.cipherSeed', '76859309657453542496749683645');
</pre>
<p>これでさっきの画面をリロードしたら、上の二つはグリーンになります。</p>
<p>3番目のメッセージはデータベースに関する設定をしろってことで、config/database.php.default　を config/database.phpにリネームして中身をいじくることになります。</p>
<pre class="brush: php;">
class DATABASE_CONFIG {

	var $default = array(
		'driver' =&gt; 'mysql',
		'persistent' =&gt; false,
		'host' =&gt; 'localhost',
		'login' =&gt; 'user',
		'password' =&gt; 'password',
		'database' =&gt; 'database_name',
		'prefix' =&gt; '',
	);

	var $test = array(
		'driver' =&gt; 'mysql',
		'persistent' =&gt; false,
		'host' =&gt; 'localhost',
		'login' =&gt; 'user',
		'password' =&gt; 'password',
		'database' =&gt; 'test_database_name',
		'prefix' =&gt; '',
	);
}
</pre>
<p>$defaultが普通の設定　$testはテストの時なんかに別のDB使うときの設定って認識でいいと思います。<br />
複数のDBなんか同時に使うことはないと思うけど。</p>
<p>ちなみにモデルの定義の中で</p>
<pre class="brush: php;">
$this-&gt;useDbConfig = 'test';
</pre>
<p>とすると$testの定義を使ってくれるので、色々作っておいてモデルごとに使い分けることも出来るみたい。<br />
Bakeとかでも自動判別するんだろうなあ。</p>
<p>[設定]<br />
driverはMySQLなのでそのまま、persistentは持続的データベース接続ってことらしい。<br />
<a href="http://php.net/manual/ja/features.persistent-connections.php">ここ</a>に説明が書いてるけど、よく理解して使わないとちょっと怖そう。デフォルトどおりfalseにしておく。<br />
hostはlocalhostのまま、本番動作時はレンタルサーバーとかの指定によって書き換えよう。<br />
loginはMySQLのログインユーザー名、passwordはそのパスワード、databaseは使用するデータベース名。<br />
prefixは接頭語だけど、いらないので省略。</p>
<p>こんな感じでdatabase.phpを書き換えたらOKかな。</p>
<p><a href="http://www.jirosoft.com/wordpress/wp-content/uploads/2010/05/cakephp1_3_02.jpg"><img class="alignleft size-medium wp-image-176" title="cakephp1_3_02" src="http://www.jirosoft.com/wordpress/wp-content/uploads/2010/05/cakephp1_3_02-300x195.jpg" alt="設定とりあえずOK" width="300" height="195" /></a></p>
<p>とりあえず初期設定の一部が済みました。使用するデータベースはphpMyAdminとかで先に作成しておいたほうがいいですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jirosoft.com/wordpress/2010-05-31-165/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cakePHP覚書#4</title>
		<link>http://www.jirosoft.com/wordpress/2010-03-04-134/</link>
		<comments>http://www.jirosoft.com/wordpress/2010-03-04-134/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 12:19:03 +0000</pubDate>
		<dc:creator>Jiro</dc:creator>
				<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://www.jirosoft.com/wordpress/?p=134</guid>
		<description><![CDATA[ひとつのモデルの中で関数を作成して簡単に利用したいと思ったのですが、結果を返す際に
他のモデルも参照しなくちゃいけなくなりました。
このあたりは、アソシエーションを使ったほうが良いのかもしれませんが、データベースの作成が [...]]]></description>
			<content:encoded><![CDATA[<p>ひとつのモデルの中で関数を作成して簡単に利用したいと思ったのですが、結果を返す際に<br />
他のモデルも参照しなくちゃいけなくなりました。<br />
このあたりは、アソシエーションを使ったほうが良いのかもしれませんが、データベースの作成がまずくて<br />
うまく出来そうに無いので、モデル内の関数で他のモデルを呼び出して見ました。</p>
<pre class="brush: php;">
$this-&gt;loadModel('ModelA');
</pre>
<p>これは、やはりダメでした。</p>
<p>importでmodelを呼び出して使うみたい。</p>
<pre class="brush: php;">App::import('Model','modelA');
$modelA = new modelA;
$modelA-&gt;find($conditions,null,$orders);
</pre>
<p>こんな感じでいいようです。さて今から検証。</p>
<p>検証の結果うまくいきました。上記App::import(&#8216;model&#8217;と小文字になっていたところを訂正。</p>
<p>モデルの中で他のモデル呼び出すって、ちょっと邪道かなという気もします。</p>
<p>componentあたりに関数作成したほうがいいかもしれませんね。</p>
<p>また、コントローラの中でusesでたくさんのモデル定義していると使わなくてもSQLが走っているようです。</p>
<p>基本になるモデルひとつだけusesで定義しておくか、$uses=null;にしておいて、必要なアクションで必要なモデルを</p>
<p>loadModelしたほうが良い気がしますね。</p>
<p>まだパフォーマンスを上げる段階ではないですが、一通り動作するようになれば、次はパフォーマンス向上が大事だと思います。</p>
<p>現在はWindowsXPの非力なマシン上でXampp環境でのテストですが、ファンが唸ってますからねw</p>
<p>本番では随分昔のDellサーバーに乗せる予定です。こっちも非力ですからね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jirosoft.com/wordpress/2010-03-04-134/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cakePHP覚書#3</title>
		<link>http://www.jirosoft.com/wordpress/2010-03-02-122/</link>
		<comments>http://www.jirosoft.com/wordpress/2010-03-02-122/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 06:10:11 +0000</pubDate>
		<dc:creator>Jiro</dc:creator>
				<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://www.jirosoft.com/wordpress/?p=122</guid>
		<description><![CDATA[連想配列(modelの内容をDBからとってきたもの)の配列。要は複数レコードを入れた配列なんですが、
foreachで回して、項目を変更したのだけど、元の配列自体に変更が及んでいないようで、その後saveAllしても
D [...]]]></description>
			<content:encoded><![CDATA[<p>連想配列(modelの内容をDBからとってきたもの)の配列。要は複数レコードを入れた配列なんですが、</p>
<p>foreachで回して、項目を変更したのだけど、元の配列自体に変更が及んでいないようで、その後saveAllしても</p>
<p>DBに反映されていない。</p>
<p>for文で直接もとの配列を書き直してみよう。</p>
<pre class="brush: php;">foreach ($bs as $b){
	$b['model']['data'] = &quot;test&quot;;
}</pre>
<p>こういう風にすると「$bs」のなかみ$bs[0]['model']['data']は書き換えられなかった。</p>
<pre class="brush: php;">for ($i=0;$i&lt;count($bs);$i++){
	$bs[$i]['model']['data']=&quot;test&quot;;
}</pre>
<p>こうしたらうまく書き換えてくれた。</p>
<p>findなどでデータベースのレコードを取得する場合の条件の書き方でくだらないミス。</p>
<pre class="brush: php;">
$conditions = array('nenrei&gt;' =&gt; $nenrei);
</pre>
<p>フィールド名と比較演算子の間のスペース忘れると変なことになる。</p>
<pre class="brush: php;">where 'nenrei&gt;' = 1</pre>
<p>比較演算子がフィールド名の一部と誤認識される。つーか、空白で区切らないと当たり前のことですね。ww</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jirosoft.com/wordpress/2010-03-02-122/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
