CakePHP とりあえずセットアップ

環境:Mac + MAMP + cakePHP1.2.6

DB接続編集
app/config/database.php.default
→app/config/database.php
設定をあわせて、文字コードを追記
「'encoding'=>'utf8'」 を末尾に。

環境設定で、
Aptana/Editorでタブ使用にして、Editを押して
「Insert spaces for tabs」にチェックを入れる

ログをカスタマイズする。
cake/libs/cake_log.php
$filename = LOGS . date('ymd') . '_' . $type . '.log';
日ごとにログになる。

ーーー
SimpleTestを入れる。
~/test.phpにアクセスして、あとは流れで入れる。
app/vendors 配下にコピーして終わり。

      • -

bakeでモデルをつくっておく

※MySQLWorkbenchでDDL自動生成時、外部キーがPKになってしまうので、
ツール上ではずすことを忘れないようにする。

      • -

モバイル用にカスタマイズ

1.PEARでNetUserAgentMobileを落とす
2.PEARディレクトリをまるごとAPP/vendors配下にコピー
3.APP/vendors配下にinclude_path.phpを設置、内容は以下

          • -

            • EOF

4.APP/controller/compornent配下にmobile.phpを作成

          • -

'Net'.DS.'UserAgent'.DS.'Mobile.php'));

class MobileComponent extends Object {
function startup(&$controller) {
$this->controller = $controller;
$mobile = Net_UserAgent_Mobile::factory();
if ($mobile->isNonMobile()) {
$this->controller->redirect("/pc.html");
}
}
}

          • EOF

※APP/webroot配下にpc.htmlを適当のおく。PCはここに振り分けられる。

5.APP/app_controller.phpを配置
※CAKE/lib/controller配下からコピーしたもの
空っぽのAppControllerクラスを以下のように記述

        • -

class AppController extends Controller {
var $components = array('Mobile');
var $helpers = array('Mobile');

function beforeRender() {
$this->pageTitle = mb_convert_encoding($this->pageTitle, "SJIS", "UTF-8");
parent::beforeRender();
}

}

          • EOF

ヘルパークラスのMobileが必要になるので、
APP/views/helper/moble.phpを作成

        • -

class MobileHelper extends Helper {
function afterRender() {
$out = ob_get_clean();
$out = mb_convert_kana($out, "rak", "UTF-8");
$out = mb_convert_encoding($out, "SJIS", "UTF-8");
ob_start();
echo $out;
}
}

          • EOF

以上
参考
http://www.syuhari.jp/blog/archives/168


このままではhtmlが文字化けするので、
APP/views/layouts/default.ctp

をheadに追加する。