「CakePHP徹底入門」まとめ

先日「CakePHP徹底入門」を読み終えたので、そのまとめをしておく。(まとめと言っても僕が知らなかったところを書き出すだけですが…)

database.phpの各種キー

<?php
class DATABASE_CONFIG {
	var $default = array(
		'driver' => 'mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => '****',
		'password' => '****',
		'database' => '****',
		'prefix' => '',
		'encoding' => 'utf8',
	);
}
?>
persistent
データベースの接続を維持し続けるかどうか
schema
データベースの機能である「スキーマ」を利用するときに設定する。スキーマはテーブル名が重複しないようにする仕組み。下に書くプレフィックスと似たような感じだが、データベースの種類やバージョンなどによっては使用できない場合があるため注意が必要。
prefix
プレフィックスを利用するかどうか。プレフィックスとは、データベース内でテーブル名が重複しないよう区別するための機能。例えば、fooというデータベース内にhogeというテーブルを作りたい場合、他に存在するテーブル名と重複しないように「foo_hoge」などという名前で作成する。この「foo_」の部分がプレフィックスとなる。このまま作業していくと、コントローラの名前が「foo_hoge_controller.php」などと長くなってしまうが、プレフィックスを指定することで「hoge_controller.php」とすることができる。

$this->Model->recursive

<?php
class TestsController extends Appcontroller
{
    var $name = 'Tests';
    
    function index()
    {
        $this->Test->recursive = -1;
        $data = $this->Test->findAll;
        $this->set('data', $data);
    }
}
?>

Model::findAll()やModel::find()をするときに関連するレコードも取得するかどうかを決めるための変数。

0または1
直接関連するレコードを取得
2
直接関連するレコードと、そのレコードに関連するレコードを取得
-1
関連するレコードを取得しない

デフォルトで1が設定されている。

感想とか

  • プレフィックスが何なのかイマイチよくわかってなかったけど、やっとわかった。
    • この本の中で一番勉強になった部分。
  • bakeに大量のページを割いてるけど、bakeはほとんど使わないから正直要らなかった。
  • なんでCakePHPの本に開発手法についての説明が書かれてるの?

CakePHP徹底入門

CakePHP徹底入門