2012/05/27

デフォルトの ComponentとHelper


coreのcontroller.phpで確認すると
特に指定しないでも、
デフォルトで呼ばれる(使える) ComponentとHelperは以下のとおり

var $helpers = array('Session', 'Html', 'Form');

var $components = array('Session');

↑これを 各コントローラ(app_controller.phpとか自前_controller.php)で使うときは
にオーバーライドするか、functionの中に

$this->helpers[] = 'Javascript';
と書いておk~




任意の場所で Auth(User)情報を使いたいとき


【View】
session ヘルパーを使う
$session->read('Auth.User.id');
【Controller】
Session コンポーネントを使う

参考)



auto_increment リセット


ALTER TABLE `table` PACK_KEYS =0 CHECKSUM =0 DELAY_KEY_WRITE =0 AUTO_INCREMENT =1
※あちこちでみかけた、
「alter `table` test auto_increment=1;」
じゃ、出来なかった


===========================
(追記)2012/10/24

テーブルに データが入ったままの場合は 別の方法で振り直す

オートインクリメント(自動連番)カラムの値を振り直す場合、下記の手順で実行する(例では ID カラムがこれに該当)
  1. ID カラムを削除
    alter table TBL-NAME drop column ID;
    オートインクリメント・カラムは各テーブルに一つだけしか作成できないので、連番を振り直す場合は、一旦カラムを削除して新たに作り直す必要がある
  2. 新規 ID カラム(整数型・自動連番)を追加
    alter table TBL-NAME add ID int(5) primary key not null auto_increment first;
    primary key は重複を許さない主キーのことであり、NOT NULL でなければならない


参考)
MySQL よく使うコマンド - WEB + PC http://weblogs.tail-lagoon.com/WebPC/2008/03/18/15/

今更ながら Cakeを焼く


cakeコマンドは coreの中のcake/console/cake (←shell)をbashで叩く
 →たたかれると 単に 同ディレクトリの cake.phpが呼ばれるだけ
これでうまくいかないなら
直接 php -q cake.php を叩けばいい
 ※ただ 上記のbashを利用すると自動でphpコマンドに「 -working」オプションをつけてくれるけどね カレントディレクトリが入るっぽい
■appをビルドする
cake bake
 →app アプリ一式をべべーっと作ってくれます
■各Controllerとか つくる
 ↑で作成した appディレクトリに行って
 cake bakeを叩くと なにつくるかーって聞かれます
$app>cake bake
Welcome to CakePHP v1.3.6 Console
---------------------------------------------------------------
App : app
Path: /hoge/huga/app
---------------------------------------------------------------
Interactive Bake Shell
---------------------------------------------------------------
[D]atabase Configuration
[M]odel
[V]iew
[C]ontroller
[P]roject
[F]ixture
[T]est case
[Q]uit
What would you like to Bake? (D/M/V/C/P/F/T/Q)
 Controllerなら[C]すかね?
 そっからの参考は→こちら
手順的な流れは M→C→V かな



ファイル名一括変更

※ Unixには無いらしい


rename [ -option ] perlexpr [ files ]
※Unixには無いらしい
こんなファイルがあったとして
diary_YYYYMMDD.html
例)2011/08月分のファイルを一括バックアップでリネーム→.html_bkにする
# 一覧確認
ls -l diary_201108??.html
rename 's/.html/.html_bk/' diary_201108??.html
# 一覧(再)確認
ls -l diary_201108??.html*
参考)
ファイル名を一括変更するには(renameコマンド) - UbuntuJapanese Wiki