CAKEPHP入門
この本を使って勉強しています。其のメモです。
秀和システム
売り上げランキング: 12574
「app」内にある「webroot」に保存した者が最初に表示されている。
「app」内の「components」にphpファイルを置く
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php class HelloController extends AppController{ public $name='hello'; public $uses = null; public $autoRender = false; function index(){ echo "hello hoge hoge"; } function other(){ echo "これはインデックス以外が表示されています。"; } } ?> |
- public $name=’hello’;はコントローラーの名前を示しています。
- public $uses = null; はコントローラ内で使用するモデルを示しています。今回はモデルを使ってないのでnullが指定されています。
- public $autoRender = false; はビュー関係のオブジェクトを使って自動的にページをレンダリングする機能の設定を$autoRenderで設定しています。
function index()の所でディフォルトのページの処理を行います。
function other()は ..hello/otherでアクセスできるようになっています。この「other」は一般にアクションと言われています。
ビューを作る
ページの表示はコントローラーではなく、ビューが行うものです。
ビューには「ビューテンプレート」と「レイアウト」の2つが存在します。「レイアウトを用意して、その中にビューテンプレートをはめ込んでいきます」
「app」→「views」に新しくフォルダを作り、テンプレート「index.ctp」を作成する。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>HELLO PAGE</title> </head> <body> <h1>テストページ</h1> <p>これはテストページです。ビューのテストです。繰り返す。</p> </body> </html> |
「app」内の「components」にphpファイルを書き換える。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php class HelloController extends AppController{ public $name='hello'; public $uses = null; public $autoLayout = false; //trueにすると用意されたlayoutを使ってページをレイアウトします。 public $autoRender = true; function index(){} } ?> |
「index.ctp」のなかにphpを書いても実行されます。
レイアウトの作成
public $autoLayout = true;にすると用意されたlayoutを使ってページをレイアウトします。
ディフォルトのレイアウトが表示されます。
ディフォルトレイアウトのファイルはどこにあるかというと「…./cake/libs/view/layouts/default.ctp」にあります。
これまではすべて「app」の中にあったのですが、レイアウトは「cake」の中にあります。
では作成してみましょう。
新規で作ったレイアウトは「app」=> 「view」=>「layout」に保管します。(ディフォルトとは場所が違うので注意)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <?php echo $html->charset(); ?> <title> <?php echo $title_for_layout; ?> </title> <?php echo $html->css('cake.hello'); echo $scripts_for_layout; ?> </head> <body> <div id="container"> <div id="header"> ** Header**</div> <div id="content"> <?php echo $content_for_layout; ?> </div> <div id="footer"> **this is test** </div> </body> </html> |
charset(); ?>はを表示しています。
はコントロールクラス内の$this->pageTitleが表示されます。
echo $html->css(‘cake.hello’);は外部からCSSを指定してます。「webroot」「css」のなかにある。
レイアウトで使用するCSSは「app」「webroot」「css」というフォルダの中に保管します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | @charset "UTF-8"; /* CSS Document */ body{ background:#00ffff; color:#660000; margin:0; } #header{ font-size:14px; font-weight:bold; } #content{ background:#9F9; color:#990000; padding:10px 10px 40px 20px; } #footer{ text-align:right; } |
あとコントローラーも変更
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php class HelloController extends AppController{ public $name='Hello'; public $uses = null; public $layout = "hello"; function index(){} } ?> |
public $layout = “hello”; 「layout」内のhello.ctpをレイアウトで使うとしていしています。




コメントはまだありません。