<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/aioria/">
    <title>aioria @ ウィキ</title>
    <link>http://w.atwiki.jp/aioria/</link>
    <atom:link href="https://w.atwiki.jp/aioria/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>aioria @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2013-04-01T23:47:22+09:00</dc:date>
    <utime>1364827642</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/17.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/6.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/7.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/aioria/pages/8.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/18.html">
    <title>フレームテスト</title>
    <link>https://w.atwiki.jp/aioria/pages/18.html</link>
    <description>
      B008YC1S3O

** 弁当箱
#amazon(B008YC1SCU)

** ペンケース
#amazon(B0052HJ6QU)    </description>
    <dc:date>2013-04-01T23:47:22+09:00</dc:date>
    <utime>1364827642</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/17.html">
    <title>cakephp/4</title>
    <link>https://w.atwiki.jp/aioria/pages/17.html</link>
    <description>
      #contents

*ＤＢ出来てて、モデル作成したし、コントローラーも作成した。揃ったからそろそろ動かすか
　とはいえ、まだ動かない。

　というのは、ＷＥＢサーバの設定の事。

　バーチャルホストとして動作するように設定を作る必要がある。
 &lt;VirtualHost *:80&gt;
 　　DocumentRoot /home/swat/CalendarNote/app/calendarnote
 　　ServerName   calendarnote.***.jp
 　　ErrorLog     logs/cs-error.log
 　　CustomLog    logs/cs--access.log common
 
 　　&lt;Directory /home/swat/CalendarNote/app/calendarnote&gt;
 　　　　Options Indexes FollowSymLinks Inclues ExecCGI
 　　　　AllowOverride All
 　　　　Order allow,deny
 　　　　Allow from all
 　　&lt;/Directory&gt;
 &lt;/VirtualHost&gt;
設定ファイル作って、Includeできてたらapacheはリスタートする。

* 自動生成された場合のＨＴＭＬエンコードはＵＴＦ８にもなっていないので、それを設定する
calendarnote/views/layouts/default.ctp
上記ファイル　charset　をしている部分があるので、明示的に　utf-8　を指定する。
 &lt;?php echo $html-&gt;charset(&quot;utf-8&quot;); ?&gt;

*ブラウザからアクセスしてみる
http://calendarnote.xxxx.jp/schedules
とすれば、一覧が見れる。

ここまでなんもコードらしいコードを書いていないにもかかわらず、出来てしまっている事に驚くべきだ。
これらは、コントローラーを作成したときの　スキャフォールド　による恩恵。

スキャフォールドを利用することで、一覧、追加、削除など一般的機能のひな形が用意されてしまうのだ。
そしてすでにこれらは機能するという点で、その効果と恩恵は計り知れない。

既に新規追加のボタンまであって、そこではデータを追加さえできてしまうのだから。    </description>
    <dc:date>2010-06-23T04:37:49+09:00</dc:date>
    <utime>1277235469</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/16.html">
    <title>cakephp/3</title>
    <link>https://w.atwiki.jp/aioria/pages/16.html</link>
    <description>
      #contents

これ、書くの２回目・・・・＠ｗｉｋｉ　怖えぇぇぇぇ

*モデル作成
ここまででＤＢにテーブルを作成したりまでは行ったが、あくまでＤＢでの話。アプリケーションとして機能させるには、そのテーブル自体にアクセスする部分が必要となる。

モデルとはまさにそのものになる。

*やっぱり使うよ　cakeコマンド。モデル作成編
 $ cake bake model -app calendarnote
実行すると、どのスキーマ（テーブル）を利用するのか一覧に表示されるので、番号を選択する。（とはいえ、これまでに作成したスキーマは１つなので今回は１しか選びようがないのではあるが・・・）

　作成されるのは３つ。

 models/schedule.php
 tests/fixtures/schedule_fixture.php
 tests/cases/models/schedule.test.php
下２つは、テストケース用のソースの自動生成。
 $ cat calendarnote/models/schedule.php
 &lt;?php
 class Schedule extends AppModel {
 
         var $name = &#039;Schedule&#039;;
 
 }
 ?&gt;
まーシンプルだこと。
*続いてコントローラー作成
コントローラーとは、ＷＥＢからのリクエストを受け付ける部分。受け付けたものをモデルに渡したり、自身で加工したりする。

 $ cake bake controller -app calendarnote
ここでは利用するモデルが一覧表示されるので番号で選ぶ。
モデルを使わないのなら、番号を選ぶ必要すらない。

そしてモデルを選んだ後（無選択というのもあるが、その後）、設定をインタラクティブに行うか？の質問が来るが、デフォルト [n] となっているところを y としてＥＮＴＥＲしている。

これはスキャフォールドを利用したい為。
 $ cat calendarnote/controllers/schedules_controller.php
 &lt;?php
 class SchedulesController extends AppController {
 
         var $name = &#039;Schedules&#039;;
         var $scaffold;
 }
 ?&gt;
これでできあがり。

*まとめ
１．モデル作成
２．コントローラー作成

 $ cake bake model      -app プロジェクト名
 $ cake bake controller -app プロジェクト名    </description>
    <dc:date>2010-06-23T04:14:59+09:00</dc:date>
    <utime>1277234099</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/15.html">
    <title>cakephp/2</title>
    <link>https://w.atwiki.jp/aioria/pages/15.html</link>
    <description>
      #contents
*ここまでのまとめ
（※すでに、ＰＨＰだとかＭｙＳＱＬだとかはインストールは済んでいるとして話は進む
　機会があればそれらについても、また記載はするように考えてはいるけど・・・）

１．ソースをダウンロードしてきて、それを任意の場所に展開
２．展開したらディレクトリ名が面倒なので、適当に名前を変更し、そのディレクトリへ移動
３．ＤＢを先に作っておくのか・・・よし作ろう
４．ＰＨＰの設定については個別設定なので、.htaccessに記載してしまえ
５．さてプロジェクト作成
６．ＤＢへの接続設定を作成
７．テーブルを作成

*だいぶ乱暴だが、わしがわしにわかるように書くとこうなる
ダウンロード
 $ lynx ＵＲＬ

展開＆ディレクトリ名変更
 $ tar zxf ソースファイル名.tar.gz
 $ mv 展開後のディレクトリ　わかりやすいディレクトリ名：α

ＤＢを作成、ユーザ作成
 $ mysql -u root -p
 mysql&gt; CREATE DATABASE データベース名;
 mysql&gt; GRANT all ON データベース名.* TO ユーザ名 IDENTIFIED BY &#039;パスワード&#039;;

ＰＨＰの文字コード関連を.htaccessで記載
 php_value 設定変数名 設定値

プロジェクトを作成（つまりファイルコピー）
 $ cake bake project プロジェクト格納ディレクトリ（フルパス？）

ＤＢへの接続設定ファイル作成
 $ cake bake -app プロジェクト名

スキーマ（テーブル）テンプレート作成
 $ cake schema generate -app プロジェクト名

スキーマのレイアウトを記載
 $ vi config/sql/schema.php

レイアウト通りにテーブルを作成
 $ cake schema run create -app プロジェクト名

*すげぇ～時間かかりすぎ・・・
久々、勉強しているからか？

いや、ずいぶんと丁寧にログを残そうとしすぎなのかも。今後もこのペースでＷｉｋｉに記録を残していけるのか・・。

がんばれ、わし！    </description>
    <dc:date>2010-06-23T02:37:22+09:00</dc:date>
    <utime>1277228242</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/aioria/pages/2.html</link>
    <description>
      **メニュー
-[[トップページ]]
-[[プラグイン紹介&gt;プラグイン]]
-[[まとめサイト作成支援ツール]]
-[[メニュー]]
-[[メニュー2]]

----

**リンク
-[[@wiki&gt;&gt;http://atwiki.jp]]
-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]

**他のサービス
-[[無料ホームページ作成&gt;&gt;http://atpages.jp]]
-[[無料ブログ作成&gt;&gt;http://atword.jp]]
-[[2ch型掲示板レンタル&gt;&gt;http://atchs.jp]]
-[[無料掲示板レンタル&gt;&gt;http://atbbs.jp]]
-[[お絵かきレンタル&gt;&gt;http://atpaint.jp/]]
-[[無料ソーシャルプロフ&gt;&gt;http://sns.atfb.jp/]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)

トータル：&amp;counter(total)
本日：&amp;counter(today)
昨日：&amp;counter(yesterday)    </description>
    <dc:date>2010-06-23T02:35:56+09:00</dc:date>
    <utime>1277228156</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/14.html">
    <title>cakephp/1</title>
    <link>https://w.atwiki.jp/aioria/pages/14.html</link>
    <description>
      #contents
*cakeコマンド
&amp;color(red){このcakeコマンド。実行する際のカレントディレクトリを鑑みて動いているので、いくつかの実行時には注意が必要な気がする}

とりあえずは、前回までで CakePHP　自体の展開は済んでいる。
まずは、そのディレクトリで実行してみた。

 cd ~/CalendarNote

*まずはプロジェクト作成
 cake/console/cake bake project ~/CalendarNote/app/calendarnote

　・・・・だが動かない。なぜなら、 phpコマンド自体へのパスが通ってなかった。というオチ。
　/usr/local/bin　にあったので、パスを通した。
 $ vi ~/.bashrc
 export PATH=$PATH:/usr/local/bin
して、設定を読み直し。
 $ source ~/.bashrc
さて準備完了。phpコマンドが動くことを確認し、再度先ほどのコマンドを実行。（動いた）

　プロジェクト（ディレクトリ）作成場所が、「これでいいのか？」と聞かれるが、「それでいいから指定したのよ」という事で、ＥＮＴＥＲ押して進める。
　その指定ディレクトリにファイルをコピーしてくれるのだが、「コピーしている状況、詳細を見るか？」と聞かれるので、「イラネ」ということで　ＥＮＴＥＲを押して進める（デフォルトがＮｏなのです）

そんなこんなで、必要ファイルが指定ディレクトリにコピーされて完了する。

*既に作成済みであるＤＢへの接続設定を作る
これまた　cakeコマンド。
 cake/console/cake bake -app calendarnote
と、ここで最初からプロジェクトディレクトリを間違えて認識しているので、書き換えて動作させる。
上記コマンドを動かすと、最初にコピーされている設定ファイルを上書きして良いかと聞かれるので、「おねげぇします」とＥＮＴＥＲを押して進める。

ＤＢの接続に関する部分については
- データベースへの接続名の指定：特にここは何でも良いのだが、デフォルトがdefaultらしい、名前が。（ややこしい）変更しなかった。
- 利用するＤＢシステムを聞かれる。今回は mysql　なので、 mysql　と記載。でもコレ、 mysql　がデフォルトらしい。
- Persistent Connection　を利用するか？と聞かれる。今回は利用しない。チューニングはず～っと後の話だろうので、まずはしない。
- データベースサーバのアドレス。localhostだったので、そのままＥＮＴＥＲ
- ポートの指定。コレデフォルトなら、指定しなくて良いので、そのままＥＮＴＥＲ
- データベースへの接続ユーザ名。事前に作ったやつ。（calendarnote）
- データベースへの接続パスワード。事前に作ったやつ。（calendarnote）
- データベース名。事前に作ったやつ（calendarnote・・・しつこい）
- テーブル名のプレフィックス。使わないので、無指定。ＥＮＴＥＲで進める
- テーブル内の文字コード。今回　UTF-8　なので、 utf8　と入力して、ＥＮＴＥＲ
- 上記設定内容がずらっと表示され、ＯＫ？と聞かれるので、ＥＮＴＥＲ
- 他のデータベースについて設定をする？と聞かれたが、まだなんも無いし、[n]となっているそのままにＥＮＴＥＲ

 Wrote /home/****/CalendarNote/app/calendarnote/config/database.php
上記のように最後に表示されて終了。場所もあってるし、ＯＫじゃろう。

して、その中身を確認。
 $ cat ~/CalendarNote/app/calendarnote/config/database.php
 &lt;?php
 class DATABASE_CONFIG {
 
         var $default = array(
                 &#039;driver&#039; =&gt; &#039;mysql&#039;,
                 &#039;persistent&#039; =&gt; false,
                 &#039;host&#039; =&gt; &#039;localhost&#039;,
                 &#039;login&#039; =&gt; &#039;calendarnote&#039;,
                 &#039;password&#039; =&gt; &#039;calendarnote&#039;,
                 &#039;database&#039; =&gt; &#039;calendarnote&#039;,
                 &#039;encoding&#039; =&gt; &#039;utf8&#039;
         );
 }
 ?&gt;
うっ・・・今後以降は、自前で記載しょうっと。大げさにコマンド使ったけど・・・イラネ。でも勉強がてらやってみることに意味はある！
*テーブルを登録する
&amp;color(red){ここで cakeコマンドの実行時のカレントディレクトリ　の問題に遭遇した！}

ここまでの作業は、以下のディレクトリで行っていた。
 ~/CalendarNote/
そのまま、エラーになった動作を記載する。

 $ cake/console/cake schema generate -app calendarnote
これを実行したら、即座に
 Welcome to CakePHP v1.2.7 Console
 ---------------------------------------------------------------
 App : calendarnote
 Path: /home/swat/CalendarNote/calendarnote
 ---------------------------------------------------------------
 Cake Schema Shell
 ---------------------------------------------------------------
 Generating Schema...
 Error: Missing Database Connection. Try &#039;cake bake&#039;
と出て、終了・・・。ちーん♪
　　　（ーω－；なんですとっ！
コマンドがちがうのか？と思い
 $ cake/console/cake schema help
として、内容を確認するが、問題なさそうだ。
　　　（ーω－；なに言ってくれてんだよ・・・
**cakeコマンドの実行時ディレクトリについて
　流儀として　app ディレクトリ配下にプロジェクトは作れとあるんだね。
　実際そうしたやんね。
　上記エラーについて、書かれているような　cake bake　ってコマンドについては、それ自体はスキーマ（ようはテーブル）の設定をする事は無いので、どうもお門違いだろうと思い、しばし調べたりしていたが、解答がみつからん。

　app以下ねぇ・・・というところで、これ以前で　cake bake　を実行した際に最初にプロジェクトのベースディレクトリを間違えて認識している点を思い出した。

　どうも、cakeコマンドを実行しているそのカレントディレクトリ位置の直下に、プロジェクトのディレクトリを探しているような気がするではないか。

　ならば、場所変えてみる？
 $ cd ~/CalendarNote/app
 $ ~/CalendarNote/cake/console/cake schema generate -app calendarnote
&amp;color(red){動いたよ・・・・！！}

と言うことで、 app以下で動作させるのが正解のようだ。
*気を取り直してテーブルを登録
場所は　appディレクトリに移動している点に注意。
$ ~/CalendarNote/cake/console/cake schema generate -app calendarnote
　そして、即座に
 Welcome to CakePHP v1.2.7 Console
 ---------------------------------------------------------------
 App : calendarnote
 Path: /home/swat/CalendarNote/app/calendarnote
 ---------------------------------------------------------------
 Cake Schema Shell
 ---------------------------------------------------------------
 Generating Schema...
 Schema file: schema.php generated
ぐふっ・・・・えらく簡単にできたなぁ・・。
どこに作ったのかは出力してくれないのね。
 $ find . -nae schema.php
 ./calendarnote/config/sql/schema.php
あぁ、これか。
 $ cat ./calendarnote/config/sql/schema.php
 &lt;?php
 /* SVN FILE: $Id$ */
 /* Calendarnote schema generated on: 2010-06-23 00:06:14 : 1277222174*/
 class CalendarnoteSchema extends CakeSchema {
         var $name = &#039;Calendarnote&#039;;
 
         function before($event = array()) {
                 return true;
         }
 
         function after($event = array()) {
         }
 
 }
 ?&gt;
ふむふむ・・・。そうか！何にもテーブルが無いんだった。そりゃそうか。

このひな形として作成されたファイルに追記していくらしい。
*よしゃ、できた schema.php　に追記していこう。（テーブルレイアウトを作成するの巻）
なーんか、しょーもない事で時間がかかっている気がするが、気を取り直しテーブルレイアウトを作成すべく、先ほどの　schema.php　に追記していく。
 &lt;?php
 /* SVN FILE: $Id$ */
 /* Calendarnote schema generated on: 2010-06-23 00:06:14 : 1277222174*/
 class CalendarnoteSchema extends CakeSchema {
         var $name = &#039;Calendarnote&#039;;
 
         function before($event = array()) {
                 return true;
         }
 
         function after($event = array()) {
         }
 
 　　　　＊＊＊このあたりに、書いてく＊＊＊＊（直前のイベントは何だ？今は無視）
 
 }
 ?&gt;
**テーブルレイアウトの書き方
 var $テーブル名 = array(
 　　　　&#039;カラム名&#039; =&gt; array(いろいろ設定),
 　　　　&#039;カラム名&#039; =&gt; array(いろいろ設定）,
 　　　　....,
 　　　　&#039;indexes&#039; =&gt; array(&#039;PRIMARY&#039; =&gt; array(&#039;column&#039; =&gt; &#039;主キーのカラム名&#039;, unique&#039; =&gt; 1))
 　　　　&#039;キー名&#039; =&gt; array(&#039;column&#039; =&gt; array(&#039;キーにするカラム名&#039;....), &#039;unique&#039; =&gt; 1))
 　　　　);
みたいな感じ。

　カラムについて「いろいろ設定」の場所には
- type: (string,text,integer,float,datetime,timestamp,time,date,binary,booleanから選択）
- null: boolean　つまり　true か false　か。
- default: デフォルト値を指定
- length: 数値で指定。データ長を指定
- key: boolearn ・・・・んと、主キーカラムについてのみ、trueを指定するそうだ。

*よし記載方法はわかった、書いてみよう
        var $schedules = array(
                &#039;id&#039; =&gt; array(
                        &#039;type&#039; =&gt; &#039;integer&#039;,
                        &#039;null&#039; =&gt; false,
                        &#039;default&#039; =&gt; NULL,
                        &#039;length&#039; =&gt; 20,
                        &#039;key&#039; =&gt; &#039;primary&#039;),
                &#039;from&#039; =&gt; array(
                        &#039;type&#039; =&gt; &#039;datetime&#039;,
                        &#039;null&#039; =&gt; false,
                        &#039;default&#039; =&gt; NULL),
                &#039;to&#039; =&gt; array(
                        &#039;type&#039; =&gt; &#039;datetime&#039;,
                        &#039;null&#039; =&gt; false,
                        &#039;default&#039; =&gt; NULL),
                &#039;title&#039; =&gt; array(
                        &#039;type&#039; =&gt; &#039;string&#039;,
                        &#039;null&#039; =&gt; false,
                        &#039;length&#039; =&gt; 100),
                &#039;contents&#039; =&gt; array(
                        &#039;type&#039; =&gt; &#039;text&#039;,
                        &#039;null&#039; =&gt; false,
                        &#039;default&#039; =&gt; NULL),
                &#039;created&#039; =&gt; array(
                        &#039;type&#039; =&gt; &#039;datetime&#039;,
                        &#039;null&#039; =&gt; true,
                        &#039;default&#039; =&gt; NULL),
                &#039;updated&#039; =&gt; array(
                        &#039;type&#039; =&gt; &#039;datetime&#039;,
                        &#039;null&#039; =&gt; true,
                        &#039;default&#039; =&gt; NULL),
                &#039;indexes&#039; =&gt; array(
                        &#039;PRIMARY&#039; =&gt; array(
                                &#039;column&#039; =&gt; &#039;id&#039;,
                                &#039;unique&#039; =&gt; 1)
                        )
        );
なんだろう・・この解せない感じ。カラム id の内容に　key　があるんだが、説明だと trueにする　とあったのだが、なぜか &#039;primary&#039; となっている。実際、本にそう書かれているのだ。日本語って難しい・・・。
*テーブルレイアウトは書けた！　それを使って実際にテーブルを作成するんだ
ぉ・・それは便利なんでないか？
きちんとappディレクトリ上で実行した。
 $ ~/CalendarNote/cake/console/cake schema run create -app calendarnote
「テーブルあったら、削除していい？」とか聞かれます。まだ無いのは周知なので、[n]となっているからＥＮＴＥＲ。
「そんじゃ、作っていい？」とか聞かれます。作れよ！ってことで、[y]にＥＮＴＥＲ

以下、一部始終。
 Welcome to CakePHP v1.2.7 Console
 ---------------------------------------------------------------
 App : calendarnote
 Path: /home/swat/CalendarNote/app/calendarnote
 ---------------------------------------------------------------
 Cake Schema Shell
 ---------------------------------------------------------------
 
 The following table(s) will be dropped.
 schedules
 
 Are you sure you want to drop the table(s)? (y/n)
 [n] &gt;
 
 The following table(s) will be created.
 schedules
 
 Are you sure you want to create the table(s)? (y/n)
 [y] &gt;
 Creating table(s).
 schedules updated.
 End create.
 1. CREATE TABLE `schedules` (
         `id` int(20) NOT NULL AUTO_INCREMENT,
         `from` datetime NOT NULL,
         `to` datetime NOT NULL,
         `title` varchar(100) NOT NULL,
         `contents` text NOT NULL,
         `created` datetime DEFAULT NULL,
         `updated` datetime DEFAULT NULL,        PRIMARY KEY  (`id`));
むむ・・・こんなんで、作成できちゃってるのか？
**ほんまにできたのか？確認してみる
ＤＢ（calendarnote）に接続して内容を見てみる。
 mysql -u calendarnote calendarnote -p
 
 mysql&gt;
 mysql&gt; show tables;
| Tables_in_calendarnote |
| schedules              |
 1 row in set (0.00 sec)
 
 mysql&gt; desc schedules;
| Field    | Type         | Null | Key | Default             | Extra          |
| id       | int(20)      |      | PRI | NULL                | auto_increment |
| from     | datetime     |      |     | 0000-00-00 00:00:00 |                |
| to       | datetime     |      |     | 0000-00-00 00:00:00 |                |
| title    | varchar(100) |      |     |                     |                |
| contents | text         |      |     |                     |                |
| created  | datetime     | YES  |     | NULL                |                |
| updated  | datetime     | YES  |     | NULL                |                |
 7 rows in set (0.01 sec)

　できてるし。へぇ・・・。
***ん？auto_increment？！
| Field    | Type         | Null | Key | Default             | Extra          |
| id       | int(20)      |      | PRI | NULL                | auto_increment |

なぬ？！なんか勝手に、シーケンスを作成されている気がする。いや、便利なんですけど。それはそれで。
*これ便利だな、テーブルレイアウトを書いたら、勝手にできる。
+まずは schema.php を作成する
+schema.php にテーブルレイアウトを記載する
+「cake schema run create -app プロジェクト名」　とすると、schema.php になぞらえてテーブル作成

ナイス！    </description>
    <dc:date>2010-06-23T02:23:23+09:00</dc:date>
    <utime>1277227403</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/13.html">
    <title>cakephp</title>
    <link>https://w.atwiki.jp/aioria/pages/13.html</link>
    <description>
      #contents

*CakePHP はじめるぞ
やらないとなぁ～・・・と言うことで開始。

*まずはCakePHPをダウンロード
ファイルを持ってくる
http://cakephp.jp
上記サイトから安定版としてある　Version 1.2.7　を選択してダウンロードしてくる。
例のごとく、コンソールからDLしたので lynx を利用してDL
　　以下URLは執筆時点のURL（直接それを使うことはしないように）
 lynx http://github.com/cakephp/cakephp/tarball/1.2.7
んで、展開
 $ tar zxf cakephp-cakephp1x-1.2.7-0-gd9f7b9b.tar.gz
展開されると、わやくちゃなディレクトリ名なのでこれを変更。
 $ mv cakephp-cakephp1x-3a28271 CalendarNote
（今回、勉強に利用させて頂いている本に掲載されている通りの名前。ただし本ではWindows上でのXAMP構成を標準としているだけどね。わしはLinux上なのでホームディレクトリ以下に作成）
　さて、これでこのディレクトリ配下にいろいろファイルができあがっている。
　何がなんだかわからんが、流儀に従うなら、この展開後のディレクトリ配下にある &#039;&#039;app&#039;&#039;　というディレクトリ内にプロジェクトを作成しろと言うことらしいので、それに習い、作成することとした。
　ここで、CakePHPにあるコンソールアプリケーション（その名も cake コマンド）を利用していろいろ進めてみる。

**だが先にやっておくことがあるらしい
データベースを作成しておかないとならん。
この先で設定ファイルを作ったりするのだが、どうもDBは既にあることを期待している節がある。（事実は現時点ではわからん）

まぁ、わからんけどとりあえず作っておく。
ＤＢ名： calendarnote
接続ユーザ名：　calendarnote
接続パスワード：　calendarnote
（本の通りです。実際パスワードは変えましたけど、まぁここでの記載はそのままです）
 $ mysql -u root -p
 mysql&gt; create database calendarnote;
 mysql&gt; grant all on calendarnote.* to calendarnote identirifed by &#039;calendarnote&#039;;
して作成できたので、接続してみる。
 $ mysql -u calendarnote -p
 password: （さっき設定したＰＷ・・つまり calendarnote）
 mysql&gt; 
うし、ＯＫ。

** それからＰＨＰの文字コードに関する点について、php.iniを・・
日本語文字コードをutf8にするのだが、既にＰＨＰのプログラムをいくつか置いているので、そちらとの兼ね合いで、今回わしは php.ini に直接記載する方法はとらなかった。

ベースディレクトリ配下にある　.htaccess　ファイルに php_value　として設定値を記載しておいた。

php.ini だと
 [mbstring]
 mbstring.language = Japanese
とかいう風に書くのだが、.htaccessで指定する場合には
 php_value mbstring.language Japanese
とする。
　イコール（＝）で接続していない点に注意。

 php_value mbstring.language Japanese
 php_value mbstring.internal_encoding UTF-8
 php_value mbstring.http_input pass
 php_value mbstring.http_output pass
 php_value mbstring.encoding_translation Off
 php_value mbstring.detect_order auto
 php_value mbstring.substitute_character none
 php_value mbstring.func_overload 0

**さてやっと本題　cakeコマンド
なのだが、別ページにする。    </description>
    <dc:date>2010-06-23T01:22:40+09:00</dc:date>
    <utime>1277223760</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/6.html">
    <title>プラグイン/編集履歴</title>
    <link>https://w.atwiki.jp/aioria/pages/6.html</link>
    <description>
      * 更新履歴
@wikiのwikiモードでは
 #recent(数字)
と入力することで、wikiのページ更新履歴を表示することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_117_ja.html


-----


たとえば、#recent(20)と入力すると以下のように表示されます。


#recent(20)
    </description>
    <dc:date>2010-06-23T00:48:37+09:00</dc:date>
    <utime>1277221717</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/7.html">
    <title>プラグイン/アーカイブ</title>
    <link>https://w.atwiki.jp/aioria/pages/7.html</link>
    <description>
      * アーカイブ
@wikiのwikiモードでは
 #archive_log()
と入力することで、特定のウェブページを保存しておくことができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/25_171_ja.html


-----


たとえば、#archive_log()と入力すると以下のように表示されます。
保存したいURLとサイト名を入力して&quot;アーカイブログ&quot;をクリックしてみよう


#archive_log()
    </description>
    <dc:date>2010-06-23T00:48:37+09:00</dc:date>
    <utime>1277221717</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/aioria/pages/8.html">
    <title>プラグイン/動画(Youtube)</title>
    <link>https://w.atwiki.jp/aioria/pages/8.html</link>
    <description>
      * 動画(youtube)
@wikiのwikiモードでは
 #video(動画のURL)
と入力することで、動画を貼り付けることが出来ます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_209_ja.html

また動画のURLはYoutubeのURLをご利用ください。
＝＞http://www.youtube.com/

-----


たとえば、#video(http://youtube.com/watch?v=kTV1CcS53JQ)と入力すると以下のように表示されます。


#video(http://youtube.com/watch?v=kTV1CcS53JQ)

    </description>
    <dc:date>2010-06-23T00:48:37+09:00</dc:date>
    <utime>1277221717</utime>
  </item>
  </rdf:RDF>
