2012年7月26日木曜日

CakephpでTwitter bootstrapのサンプルサイトを作る。その1

ウラシマ

Cakephpからしばらく離れていたらいつの間にか1.3から2.2になっていた。新しいCakephpになれる意味でも何かサイト作ろうかなと思った次第です。
よくあるブログ記事だとデータベース使った説明が入るのでしょうけど、覚える事が多いと挫折するので、まあ最初は静的Webサイトを作ればコントローラとビュー周りは分かるかなと思った次第です。

BootStrapのサイト

いいネタ無いかなと悩んでたらひらめきました。以前の記事で紹介したbootstrapのサイトも良いのですが、ちと自分に向いてないというのも

  • 現状のVerでない
  • コピペ用のサンプルがスペースでインデントしてある
そしたら自分で作るべ。Cakephpで!!

準備

日本語のcookbook見ながらインストールは完了。
今回は色々訳あって「dream-travel.boo.jp/twitter_bootstrap_2.0.4」というフォルダ構成にした。早速ブラウザで「dream-travel.boo.jp/twitter_bootstrap_2.0.4/」にアクセスする。


おお!何かおしゃれになっている!
変なとこに感激しつついつもの画面が出てきて安心する。
エラーメッセージを消す為に以下を修正。

/app/Config/core.php
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
...
Configure::write('Security.cipherSeed', '76859309657453542496749683645');
上記はデフォルト値なので、第2引数の値を適当に変更してから再度ブラウザでアクセスする。

オッケー!赤いの消えた。
黄色のメッセージはデータベースの設定ファイルが無いという事ですが、今回データベース使わないので無視。
次にurlのルーティングを変更する。デフォルトのままだとurlが「/」の時「PagesController」の「display」メソッドを実行して「home.ctp」 を表示するという設定になっているのでこれを変更する。
/app/Config/routes.php
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));

Router::connect('/', array('controller' => 'pages', 'action' => 'index'));
また、ブラウザでアクセスする。

Cakephpさんに怒られた。(´・ω・`)
取り敢えず「routes.php」の修正は成功で、今度のエラーメッセージはアクションの「index()」メソッドがねーよ!という内容。

プログラマのサガ

無性に挨拶したくなって来ませんか?わたしは挨拶したくなりました。
そんなわけで以下を編集。

/app/Controller/PagesController.phpに以下を追加
...

public function index(){
}

...
/app/View/Pages/index.ctpファイルを新たに作成。
<?php
?>
Hello World!
またブラウザでアクセスする。

「Hello World!」が出た!と思ったらまたCakephpさんに怒られたorz。
内容はさっき無視した「データベースの設定ファイルが無い」って奴。しょうがないので修正する。
  • app/Config/database.php.defaultをコピー
  • 同じ場所に「datebase.php」で貼り付け。
内容は変更せずにそのままでOK...なはず。またブラウザでアクセスする。

今度こそOK。

まとめ

  • core.phpでセキュリティ関係のデフォルト値を2箇所変更する
  • データベースの設定ファイルのdatebase.phpはさっさと作る
  • routes.phpでホームurlの設定を変更する
  • Pagesコントローラクラスにindexメソッドを追加
  • View/Pagesフォルダにindex.ctpを作成

環境とか
項目内容
PHPフレームワークCakephp 2.2.0
IDEEclipse 3.6
開発環境?MAMP
PCMacmini
OSMac OS Lion

0 件のコメント:

コメントを投稿