tjtjtjのメモ

自分のためのメモです

2011-01-01から1年間の記事一覧

yiiカイドを横断してみる リレーション(3/3) - テスト

今回は作成したテーブルにデータを登録し、モデルからDBのデータにアクセス可能かユニットテストを使って検証します。とりあえずテスト概要を読んでおいてください。PHPUnitをインストールしていなければしといてください。 テスト計画 まずどんなテストをす…

yiiカイドを横断してみる リレーション編(2/3) - モデル作成

今回はモデルを作ります。 Gii準備 yiic shell のコード生成機能は、バージョン 1.1.2 以降、非推奨(depricated)となっています。 http://www.yiiframework.com/doc/guide/1.1/ja/quickstart.first-app-yiic とのことなのでyiicを使わずGiiを使ってモデルを…

yiiカイドを横断してみる リレーション編(1/3) - テーブル作成

初見の人がリレーショナルアクティブレコード - ガイドをみてテーブルを作成しモデルを作成しリレーション定義しそれを検証できるんだろうか、ガイド記事は断片的過ぎやしないか、横断的なまとまった情報ほしいなあ、と思い書いてみました。。 yiiのカイドペ…

xampp1.7.5-beta2にPHPUnitをインストールする

PHP環境をVC9に統一するため、xampp1.7.5-beta2を使うことにしました。が、またまたPHPUnitインストール手順に嵌りました。 下記のサイトを参考にさせていただき、次の手順でインストールに成功しました。ありがとうございます。*1 手順 コマンドプロンプト…

phpunit のインストール

明日の自分へ。たぶん思い出せないだろうから書いておきます。 PHPUnitインストールしておきましたよ。 VC9にするためxampp1.7.5betaにしたのは知っていました、が、諸々アップデートを怠っていましたね。PHPUnitインストールしておきましたよ。使うんでしょ…

リレーショナルアクティブレコードを使ってみる

yii1.1.8 リリースとともにガイドのリレーショナルアクティブレコードページが更新され、英語ガイドページとの同期が取れました。これまで、日本語ガイドと英語ガイドを行き来して面倒だったんです。翻訳の皆さんありがとうございます。リレーション宣言で特…

データベースマイグレーションを使ってみる(2)

昨日の続き テーブルプレフィックス console.php で tablePrefix を指定したとき、マイグレーションのテーブル名を「{{」「}}」で囲むと、プレフィックスつきでCREATEしてくれました。 array( : 'db'=>array( : 'tablePrefix' => 'test_', ), ), ); c…

データベースマイグレーションを使ってみる

使い方はガイドをみれば大体わかるはず。なので、ちょっと引っかかったことを残します。 接続先はconsole.phpのDB yiic migrate は webapp/protected/config/console.php の DB を使う。yiic model は main.php の DB を使ったので油断してました。 カラム型…

ファイルアップロード

yiiでファイルアップロードしてみる。アップロードしたファイルはMySQL BLOBに保存する。 テーブルを作る create table `file` ( `id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) not null, `type` varchar(64) not null, `size` fl…

モデルのモックを使ってテストしたいのだが

うーん。yiiへの期待のひとつに、PHPUnitが使えてPHPUnitのモックを利用できることがあったのですが、厳しい感じです。id:hiromi2424:20110306 にあるような、サービスレイヤを設けたいのです。がががががががががが、Yiiは、CakePHPのClassRegistryのような…

モデルのテスト

今日も粛々とyiiする。 yiic で生成したモデルをテストする必要はないと思いますが、サンプルとして残しておきます。 Saveのテスト テストケース yiiprac1\protected\tests\unit\UserTest.php にtestSaveメソッドを加える。 'User', ); public function test…

Yii PHP framework 1.1.7

Yii PHP framework 1.1.7がリリースされました。 Yii PHP framework 1.1.7 is released RESTful URL Support Query Caching Parameter Binding for Class-based Actions Seamless Client-side Validation Passing Parameters to Relational Named Scopes Usi…

多段継承したコントローラの依存コンポーネントを解決する

CakePHP1.3 コントローラを多段継承したとき、各コントローラーが依存するコンポーネントをそれぞれの $this->componentsに書くと、中間層コントローラのコンポーネントがロードされません。 依存するコンポーネントをAppControllerに指定してしまうと、使わ…

yiiでPHPUnit 準備編

PHPUnit Windows XAMPPなのでここを参考にしました。 First off I'm assuming xampp is installed to C:\xampp 1. Open a command prompt and go to C:\xampp\php 2. Type "pear update-channels" (updates channel definitions) 3. Type "pear upgrade" (up…

yiiを使ってみる - ページネーション

前回、Yii Debug Toolbarを使ったのはページネーション化したとき想定外のDBアクセスがないか確認したかったからです。今回は本来の目的であるページネーション化をしてみます。 カテゴリをYiiFrameworkからYiiへ変更しました参考 yii forums - yii初心者の…

Yii Debug Toolbar

yiidebugtbというエクステンションを使ってみる。CakePHP DebugKitみたいなものか。 インストール yiidebugtbとかyiidebugtb - yii extensionsとかから持ってくる。 解凍し、/webroot/protected/extention 下にコピー。 /webroot/protected/config/main.php …

yiiを使ってみる7

YiiFrameworkを使ってみる1h/dayシリーズ7回目。当面の目標はCRUDを自前で実装すること。今回はupdate。ここまでくれば迷わず書ける。 Updateを実装する user2 indexビュー updateへのリンクを追加 <h1>user2/index</h1> <p> </p> <ol> <li> id; ?>&nbsp; </li></ol>

yiiを使ってみる6

YiiFrameworkを使ってみる1h/dayシリーズ6回目。当面の目標はCRUDを自前で実装すること。今回はcreate。 CHtmlでフォームを作成する user2 createアクション コントローラーにcreateアクションを追加。 render('Create',array( 'user'=>$user,…

yiiを使ってみる5

$_GET, $_POST, $_SESSION には直接アクセスしないっぽい。CHttpRequestを参照。 CHttpRequest::getQuery $_GETでなくCHttpRequest::getQueryを使う。

yiiを使ってみる4

YiiFrameworkを使ってみる1h/dayシリーズ4回目。当面の目標はCRUDを自前で実装すること。今回はdelete。 コントローラ 1件deleteし、indexへredirectする。 yiiprac1\protected\controllers\User2Controller.php findByPk($_GET['id']); $user->delete(); $t…

yiiを使ってみる3

YiiFrameworkを使ってみる1h/dayシリーズ3回目。当面の目標はCRUDを自前で実装すること。今回はviewページを作る。 indexビュー viewへリンクする。idをgetで渡す yiiprac1\protected\views\user2\index.php <h1>user2/index</h1> <ol> <li> id; ?>&nbsp; username, array('u</li></ol>…

yiiを使ってみる2

Userを一覧表示するページを作る。前回yiicを使ってCRUDページを生成した。まずはindexページを作れるようになることが今回のゴール。ただしモデルはyiicシェルで生成したものを使いまわす。 コントローラーのみ コントローラー作成 yiiprac1\protected\cont…

yiiを使ってみる

業務で使っているCakePHPの鈍重さが辛くなってきた。ので軽そうなYii Frameworkを試してみる。以下ガイドをなぞっているだけなので読む価値はありません。 Yiiは高性能、コンポーネントベースのPHPフレームワークで、大規模なウェブアプリケーションの開発に…

mongodb で複数シャードを立ち上げる。

前回まで 前回は、シャードを2つ登録し、10万件のドキュメントを登録した。ドキュメントは全てshard0000に登録された。データを確認する。 > db.emails.count(); 100000モデル的にはユーザー:10 の受信箱には 4000件のメールがあり、送信箱に1000件のメール…

MongoDB で複数シャードを立ち上げる。

最近MongoDBに取り組んでいます。これは、1台のwindowsマシンで2つのシャードを立ち上げたときのメモです。大量emailデータをMongoDBで管理することを想定しています。 MongoDBのインストール方法は データディレクトリ作成 コマンドプロンプトから実行しま…