CAKEPHP入門

   

この本を使って勉強しています。其のメモです。


CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
掌田 津耶乃
秀和システム
売り上げランキング: 12574










「app」内にある「webroot」に保存した者が最初に表示されている。




「app」内の「components」にphpファイルを置く
[cc lang=”php”]

class HelloController extends AppController{

public $name='hello';
public $uses = null;
public $autoRender = false;


function index(){

echo "hello hoge hoge";

}
function other(){

echo "これはインデックス以外が表示されています。";
}
}

?>
[/cc]
  • public $name=’hello’;はコントローラーの名前を示しています。
  • public $uses = null; はコントローラ内で使用するモデルを示しています。今回はモデルを使ってないのでnullが指定されています。
  • public $autoRender = false; はビュー関係のオブジェクトを使って自動的にページをレンダリングする機能の設定を$autoRenderで設定しています。

function index()の所でディフォルトのページの処理を行います。
function other()は ..hello/otherでアクセスできるようになっています。この「other」は一般にアクションと言われています。


ビューを作る

ページの表示はコントローラーではなく、ビューが行うものです。
ビューには「ビューテンプレート」と「レイアウト」の2つが存在します。「レイアウトを用意して、その中にビューテンプレートをはめ込んでいきます」


「app」→「views」に新しくフォルダを作り、テンプレート「index.ctp」を作成する。
[cc lang=”html”]




HELLO PAGE



テストページ

これはテストページです。ビューのテストです。繰り返す。




[/cc]

「app」内の「components」にphpファイルを書き換える。
[cc lang=”php”]

class HelloController extends AppController{

public $name='hello';
public $uses = null;
public $autoLayout = false; //trueにすると用意されたlayoutを使ってページをレイアウトします。
public $autoRender = true;


function index(){}



}

?>
[/cc]

結果



「index.ctp」のなかにphpを書いても実行されます。



レイアウトの作成


public $autoLayout = true;にすると用意されたlayoutを使ってページをレイアウトします。
ディフォルトのレイアウトが表示されます。



ディフォルトレイアウトのファイルはどこにあるかというと「…./cake/libs/view/layouts/default.ctp」にあります。
これまではすべて「app」の中にあったのですが、レイアウトは「cake」の中にあります。



では作成してみましょう。

新規で作ったレイアウトは「app」=> 「view」=>「layout」に保管します。(ディフォルトとは場所が違うので注意)

[cc lang=”php”]






charset(); ?>


<br /> <br /> <?php echo $title_for_layout; ?><br /> <br />
echo $html->css(‘cake.hello’);
echo $scripts_for_layout;

?>













[/cc]

charset(); ?>はを表示しています。
はコントロールクラス内の$this->pageTitleが表示されます。
echo $html->css(‘cake.hello’);は外部からCSSを指定してます。「webroot」「css」のなかにある。



























レイアウトで使用するCSSは「app」「webroot」「css」というフォルダの中に保管します。

[cc lang=”css”]
@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;

}

[/cc]


あとコントローラーも変更
[cc lang=”php”]

class HelloController extends AppController{

public $name='Hello';
public $uses = null;
public $layout = "hello";


function index(){}

}

?>
[/cc]

public $layout = “hello”; 「layout」内のhello.ctpをレイアウトで使うとしていしています。



Related Posts Plugin for WordPress, Blogger...