DocumentRoot以下に解凍して、書き込み権限を与えるのみ。xamppであればそのままインストール後の設定に進むべし
chown -R apache:apache cake/
インストールディレクトリの.htaccessにrewriteの設定がされている。 利用できたほうが何かと便利なのでインストールディレクトリに以下の設定を入れておく。
<Directory "/var/www/html/CAKE_INSTALL_DIR"> AllowOverride FileInfo </Directory>
app/config/core.php
app/config/database.php.defaultのファイル名変更→database.php
'encoding' => 'utf8'
全部共通の文字コードはapp/config/core.php
Configure::write('App.encoding', 'euc-jp');
個別には$html->charset('utf-8')で設定できそうだけど、どこで設定するのかな?
modelにデータベースを指定する。何も書かないと当然デフォルトのDBを使う。
テーブル名 | コントローラーファイル名 | モデル名 |
cards | cards_controller.php | Card |
credit_cards | credit_cards_controller.php | CreditCard |
英単語で分割可能なテーブル名は勝手に分解解釈される。 Highwaysテーブルだとhigh_waysとしてテーブルを作成しないとダメ。 外部結合用のキーフィールド名もテーブルに合わせる必要があるので、まずはモデルを作成して、scaffoldの空コントローラを作成後、テーブル名がCakePHP的に正しいかをチェックしたほうが良い。
AuthComponentがある
http://blog.ne2ma2.com/archives/160
app/libにおいておくと以下のようにインポートできる。
echo get_include_path();
初期状態ではcakeのROOTとappのディレクトリとPHPのinclude_pathのディレクトリが表示されるはず。
ページのタイトル | $pageTitle変数を設定 |
POSTの取得 | $params['form'] |
GETの取得 | $params['url']['hoge'] |
セッションkeyの存在チェック | $this->Session->check('key') |
毎回DB構造を解析しているのは無駄なので、debugモードの時は15秒、それ以外は999日テーブル構造をキャッシュしている。列変更の時は削除を忘れずに!
新規作成時はフィールド名を持つ連想配列を用意して、saveメソッドを呼ぶ。
$data = array("name" => "test"); $this->Model->create(); $this->Model->save($data);
リレーションが不要な場合はパフォーマンスのため以下のコードでリレーションを取得しないようにできる。
$this->Model->recursive = 0;
CAKE_HOME/app/tmp/logs
各functionの中で以下のように記述
$this->autoRender = false;
contorollerの中で以下のように記述
$this->layout = '';
$uses = null
var $useTable = false;
CREATE TABLE users( id int unsigned auto_increment primary key, nickname varchar(30) NOT NULL, created datetime default NULL, modified datetime default NULL );
CREATE TABLE profiles( id int unsigned auto_increment primary key, user_id int unsigned unique, blog_url varchar(256), hobby varchar(256), created datetime default NULL, modified datetime default NULL );
チュートリアルはMySQLしか乗っておらず、日本ではPostgresがまだまだ使われているので記述しておく。
CREATE SEQUENCE car_id_seq; drop table cars; CREATE TABLE cars ( id INTEGER DEFAULT nextval('cars_id_seq') PRIMARY KEY, car_id VARCHAR(50), comment TEXT, created TIMESTAMP DEFAULT NULL, modified TIMESTAMP DEFAULT NULL );
http://www.syuhari.jp/blog/archives/6
Warning (2): strtotime() [http://php.net/function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead [CORE/cake/libs/cache.php, line 597] Notice: Trying to get property of non-object in /var/www/html/mogi/cake/libs/cache/file.php on line 248 Fatal error: Call to a member function cd() on a non-object in /var/www/html/mogi/cake/libs/cache/file.php on line 248
/** * If you are on PHP 5.3 uncomment this line and correct your server timezone * to fix the date & time related errors. */ date_default_timezone_set('Asia/Tokyo');