ページ: << 1 ... 3 4 5 6 7 8 9 10 11 12 13 ... 19 >>

routes.phpで正規表現を使う

パーマリンク 2008/09/04 21:02:22 著者: cakephp メール
カテゴリ: 設定

CakePHP1.2 RC2

routes.php にあれこれと書くことで、プログラム先を制御することができます。
固定の値なら良いのですが、http://www.example.com/200/ のように数字の部分が変化する場合で、それらを全て同じコントローラで受けたいとなると、正規表現を使いたくなります。

その書き方です。

Router::connect('/:id/', array('controller' => 'sample', 'action' => 'index'), array('id' => '[0-9]+'));


参考:3.4.5 Routesの設定

Shellの使い方

パーマリンク 2008/09/02 23:39:13 著者: cakephp メール
カテゴリ: Vendors, Shells

CakePHP1.2 RC2

CakePHP1.2 から Shell で簡単に呼び出せるようになりました。

app/vendors/shells/ 配下に処理を書いたスクリプトを配置します。

[app/vendors/shells/test.php]
class TestShell extends Shell
{
    var $uses = array('Test');

    function sample()
    {
       // 処理
    }
}


呼び出し方は、cake/console/ で

cake test sample

とすると、先ほど設置した test.php 内の sample が処理されます。

ただしテスト環境において、DB を利用する場合、「テスト環境でのDBの切り替え方」の方法をとっていると、DB の接続情報が「default」となってしまうので注意しましょう。

任意のファイルをビューに設定する

パーマリンク 2008/08/23 08:08:38 著者: cakephp メール
カテゴリ: ビュー, コンポーネント

CakePHP1.2 RC2

通常、ビューを呼び出すのは、何もしなくて良いです。
フレームワークの便利なところですね。

別のコントローラのビューを呼び出すことも可能です。
コントローラーから別のビューを呼び出す方法

さらに、任意のファイルを呼び出すこともできます。

$path = WWW_ROOT . 'sample.html';
$this->render(null, null, $path);

このように第3パラメータにファイルのパスを記述することで、そのファイルを呼び出すことができます。
(第1パラメータは Action 、第2パラメータは Layout)

PostgreSQL のINFORMATION_SCHEMAについて

パーマリンク 2008/08/21 19:14:53 著者: cakephp メール
カテゴリ: モデル, データベース, PostgreSQL

CakePHP1.2 RC2

開発中に debug の設定を 2 などにしておくとページを表示させる為に利用している SQL を出力してくれて大変便利です。
PostgreSQL を利用している場合、その SQL の一番上に表示される

SELECT table_name as name FROM INFORMATION_SCHEMA.tables WHERE table_schema = 'public';

などのスキーマに関する SQL の処理時間が結構かかります。

本番に導入した際にこんなに時間を取られては困るという場合は、debug を 0 にすれば解決します。
(本番環境では debug を 0 にするのは当然ですね)


この仕組みについてです。

スキーマ情報は app/tmp/cache/models/ 配下にキャッシュされるのですが、cake/libs/model/datasources/datasource.php を見てみると、

function __cacheDescription($object, $data = null) {
	if ($this->cacheSources === false) {
		return null;
	}
	if (Configure::read() > 0) {
		$expires = "+15 seconds";
	} else {
		$expires = "+999 days";
	}
	if ($data !== null) {
		$this->__descriptions[$object] =& $data;
	}

	$key = ConnectionManager::getSourceName($this) . '_' . $object;
	$cache = Cache::read($key, '_cake_model_');

	if (empty($cache)) {
		$cache = $data;
		Cache::write($key, $cache, array('duration' => $expires, 'config' => '_cake_model_'));
	}

	return $cache;
}

デバック情報が 0 でない場合は、キャッシュの有効期間が15秒とあります。
これの影響で、ページを表示する度にスキーマの SQL が呼ばれていたという訳です。

一方、デバック情報を 0 とした場合、有効期間が999日になっているので、毎回スキーマの SQL が呼ばれなくなります。

これで安心して本番導入できます。

#本番環境ではスキーマ情報が保持され続けるので、テーブルの構造を途中で変えたような時は、このキャッシュを削除しないと反映されないので注意しましょう。

Cookieの使い方

パーマリンク 2008/08/21 17:13:56 著者: cakephp メール
カテゴリ: コンポーネント, コントローラー

CakePHP1.2 RC2

Cookieの使い方です。

サイト全体で行う時は、app/app_controller.php に処理を入れます。

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

    function beforeFilter()
    {
        $value = 'sample';
        // 書き込み
        $this->Cookie->write('cooking', $value);
    }
}


write のパラメータについての補足。

$this->Cookie->write('cooking', $value, false);

クッキー情報が暗号化されません。

$this->Cookie->write('cooking', $value, false, '10 Days');

クッキー保持期間を10日間に設定できます。


また、クッキーの名称は上記の例では、
CakeCookie[cooking]
となり、"CakeCookie"の部分を変更するには、beforeFilter 内で

$this->Cookie->name = 'Cookie';

とすることで変更できます。



CakePHP1.1

1.2 の Cookie コンポーネントをコピーして利用することができます。
ただし、内部で 1.2 の設定である Security.salt を呼び出している箇所があるので、その付近を修正する必要があります(暗号化が必要な場合)。
暗号化が必要でない場合は、1.2 の時と同様に第3引数に false を与えることで、そのまま利用することができます。

<< 1 ... 3 4 5 6 7 8 9 10 11 12 13 ... 19 >>

2017年12月
 << <   > >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

CakePHPに関する情報をまとめていきます。

開発スピードがアップできればうれしいです。

>>連絡はこちらへどうぞ



CakePHP最新版
CakePHP 1.2.3.8166


CakePHPの書籍

CakePHPによる実践Webアプリケーション開発

CakePHP1.2で作成する人にオススメ。
とても参考になります。

まるごとPHP!(vol.2)

安藤さんの解説が載っています。
AmazonのPagination部分は参考になります。

CakePHPによるWebアプリケーション開発

まだ読んだことありません

CakePHPポケットリファレンス
CakePHPポケットリファレンス
CakePHP1.2 でやるなら、これがあると何かと便利♪

CakePHP徹底入門
CakePHP徹底入門
CakePHP1.2 を今から始めるならここから

Fast CakePHP
Fast CakePHP
シンプルでわかりやすい CakePHP の入門書

CakePHPガイドブック
CakePHPガイドブック
CakePHP1.1 ではとても参考にした CakePHP 最初の入門書

検索

XMLフィード

16ブログ     powered by b2evolution