Posts tagged model

[iPhone] Core Data を使ってみる

1

iPhone 3.0 から Core Data が使えるようになりました。Core Data は MVC アーキテクチャの Model を補完するものです。iPhone 3.0 以前は SQLite などを使用していたのを Core Data を使って SQL を書くことなくできることになります。

Core Data の利点

Core Data を使った時の利点として SQL を書く必要がないこと以外に、アップルの資料によると以下の利点があります。

処理速度の向上

処理速度の向上


(続きを読む…)

[symfony] askeet 4日目

1

4日目です。

昨日までに作成した質問の一覧画面から質問の個別表示ページ

http://askeet/frontend_dev.php/question/show/id/1

にアクセスするとエラーになる。調べると show アクションもビューもない。
(続きを読む…)

[symfony] askeet 3日目

0

3日目をやってみてどうもバージョンの違いのためかチュートリアルに書かれている内容と実際にいじっているコードで違いが結構あるのに気がついた。そこで今回から違う点についても少し書いておきます。(askeet の symfony のバージョンは 1.0 、実際にいじっている symfony のバージョンは 1.1 です。)

MVC モデル

MVC の各ファイルの場所
モデル
askeet/lib/model/
ビュー
askeet/apps/frontend/modules/question/templates/
コントローラ
askeet/apps/frontend/modules/question/actions/

(続きを読む…)

[symfony] askeet 2日目

1

無事デバッグモードも表示できたので askeet 2日目に進みました。

データベースの設定

データベース askeet を作成
$ mysqladmin -u username -p --default-character-set=utf8 create askeet

(続きを読む…)

CakePHP1.2 SimpleTest のテストケースをまとめて実行する

1

ある程度テストケースが増えてくるといちいち App Test Cases からひとつづつテストを実行するのは面倒です。そこでグループ化してまとめてテストケースを実行する方法です。

テストケースのグループ化

app/tests/groups 以下に GroupTest を継承したクラスを作成する。
GroupTest を継承したクラスのファイル名は hoge.group.php のように .group.php を付ける。
まとめる対象はディレクトリかファイルを指定できる。
(続きを読む…)

CakePHP1.2 モデルのデータをオブジェクトで扱う

0

少し前ですが下記の投稿を読んでちょっと興味があり色々と試してみました。
“取得データを配列からオブジェクトに変換” フォーラム – CakePHP Users in Japan
I want objects, not arrays! ? nuts and bolts of cakephp

モデルに下記のようなコードを書けばデータを取得するとオブジェクトとして扱えるということです。

function afterFind($results, $primary = false) {
    if($primary == true && !is_object($results)) {
        return Set::map($results);
    }
}

(続きを読む…)

CakePHP1.2 SimpleTest でテストケースを作成する

6

CakePHP1.2 に SimpleTest をインストール で SimpleTest をインストールするところまでやったので、今度は実際にテストケースを作成してみます。

空のテストケースを作成する

app/test/cases/models に user.test.php を作成して以下のコードで保存する。

<?php
class UserTest extends User {
}
?>

(続きを読む…)

CakePHP1.2 で追加される3つのバリデーション

1

次に公開される CakePHP 1.2 に3つのバリデーションが追加されるようです。
Three new validation rules – cakebaker

真偽値か

var $validate = array('is_enabled' => array('rule' => array('boolean')));

(続きを読む…)

markItUp! を CakePHP で使用するヘルパー

0

jQuery を使用したブラウザで使用できる高機能マークアップエディタ markItUp! で紹介した markItUP を CakePHP で使用するヘルパーが Bakery に紹介されていました。
markItUp! jQuery universal markup editor Helper | The Bakery, Everything CakePHP : Articles

元の記事のままやってみたのですが一部うまく動作しなかった部分がありましたので、実際に私がやった手順を紹介します。
(続きを読む…)

CakePHP1.2 バリデーションで共通ルールを作成するときに便利な userDefined

0

CakePHP1.2 バリデーションのルールを調べているときに気になっていた Validation クラスにある userDefined に関して調べてみました。
cake/libs/validation.php

function userDefined($check, $object, $method, $args = null) {
    return call_user_func_array(array(&$object, $method), array($check, $args));
}

と定義されています。

call_user_func_array は PHP の関数で、関数やクラスのメソッドをコールすることができます。

つまり独自バリデーションがこれを使用して実装できるということです。
使用方法はモデルに以下のようにバリデーションを定義します。

var $validate = array(
    'field' => array('rule' => array('userDefined',  'Model',  'method_name')),
);

function method_name ($data) {
    /*
      バリデーションのチェック
      エラーなら false 、エラーなしなら true を返す
    */
}

ただこれだと下記のように書けるのであまりありがたみがない。

var $validate = array(
    'field' => array('rule' => array('method_name'),
);

何に使えばいいのかと考えたところ、クラス名、メソッド名が指定できるのでシステムで共通のバリデーションを設定するときに使えるのではと思いました。多分これが一番うれしいところではないかと思います。

※ただ、app_model.php に共通にしたいバリデーションチェック用のメソッド名を書けばそれでいけるような気もする。

Go to Top