yiiを使ってみる

業務で使っているCakePHPの鈍重さが辛くなってきた。ので軽そうなYii Frameworkを試してみる。以下ガイドをなぞっているだけなので読む価値はありません。

Yiiは高性能、コンポーネントベースのPHPフレームワークで、大規模なウェブアプリケーションの開発に向いています。 Yiiはウェブプログラミングの再利用性を最大にするため、開発プロセスを大幅に加速します。 このYii(イー; [ji:]と発音します)の名前は容易(easy)、効率(efficient)、拡張性(extensible)の3つの頭文字を並べたものから来ています。

Yiiとは何でしょうか

ダウンロード

ここらへんからダウンロードする。1.1.6は2011年1月16日にリリースされている。1.1系は奇数月にリリースされているので、今月中に1.1.7のリリースがあるかもしれない。

配置

解凍したモノをおもむろにドキュメントルートにおく、べきじゃあないのはわかってる。が前に進むことを優先する。

初めてのYiiアプリケーションの作成

iiで最初の経験を積むために、この章では最初のYiiアプリケーションの作成法を説明します。強力な'yiic'ツールを使用します。 これは数種類のタスクのためのコード生成を自動で行います。 便宜上、YiiRootはYiiをインストールしたディレクトリと仮定し、WebRootはウェブサーバのドキュメントルートします。

初めてのYiiアプリケーションの作成

↑説明にしたがってアプリケーションを生成してみる。

cd C:\xampp\htdocs
.\yii\framework\yiic webapp C:\xampp\htdocs\yiiprac1

生成したアプリケーションを確認

http://localhost/yii/demos/yiiprac1/index.php

データベース、テーブル生成

次はyiic shell からモデルを生成し、CRUDページを生成するのだが、その前にDBとテーブルを作成する。DBはMySQLをつかう。

CREATE DATABASE `yiiprac1` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE User (
    id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(128) NOT NULL,
    password VARCHAR(128) NOT NULL,
    email VARCHAR(128) NOT NULL
);

データベースへの接続

yiic shellを起動する前に、データベース接続文字列を書いておく。

C:\xampp\htdocs\yiiprac1\protected\config\main.php

'db'=>array(
	'connectionString'=>'mysql:host=localhost;dbname=yiiprac1',
	'username'=>'root',
	'password'=>'',
	'charset' => 'utf8',
),

CRUD操作の実装

yiic shellを起動して、userモデルを生成し、user crud ページを生成する。

>cd C:\xampp\htdocs\yiiprac1
>.\protected\yiic shell
Yii Interactive Tool v1.1 (based on Yii v1.1.6)
Please type 'help' for help. Type 'exit' to quit.
>>  model User

The following model classes are successfully generated:
    User

If you have a 'db' database connection, you can test these models now with:
    $model=User::model()->find();
    print_r($model);

>> crud User
   generate UserController.php
   generate UserTest.php
      mkdir C:/xampp/htdocs/yiiprac1/protected/views/user
   generate create.php
   generate update.php
   generate index.php
   generate view.php
   generate admin.php
   generate _form.php
   generate _view.php
   generate _search.php

Crud 'user' has been successfully created. You may access it via:
http://hostname/path/to/index.php?r=user

一般ユーザーとしてuserページにアクセスしてみる。

demo/demoでログインし、Userページにアクセスする。
http://localhost/yiiprac1/index.php?r=user

管理者としてuserページにアクセスしてみる。

admin/adminでログインし、Userページにアクセスする。
http://localhost/yiiprac1/index.php?r=user

10件以上登録するとページングするというのでそれも確認する。