NOBITA導入に必要なもの

  • apache2系
  • mod_rewriteモジュール
  • PHP5系
  • NOBITAはMySQL、PostgreSQL、memcachedをサポートします

インストール

* NOBITAのソースコードを入手し、WEBサーバに配置するだけです *

データベースの設定

  • config/database/の中にdatabase_xxx.phpというファイルで記述
  • xxxの部分はconfig/env.phpで定義した値を指定
     $database_config = array(
        "writer" => array(
            "host" => "localhost",
            "user" => "loginuser",
            "pass" => "password",
            "name" => "databasename",
            "driver" => "mysql",
            "port"   => 3306,
            "type"   => "master",
            "encode" => "UTF8",
        ),
        "reader" => array(
            "host" => "localhost",
            "user" => "loginuser",
            "pass" => "password",
            "name" => "databasename",
            "driver" => "mysql",
            "port"   => 3306,
            "type"   => "slave",
            "encode" => "UTF8",
        ),
     );
    
    上記はNOBITAにおけるデータベース設定の一例です。 writer、readerなどのようにわかりやすい識別名を付けます。 これはモデルのロード時にどのデータベースリソースに接続するかを指定する際に必要になります。
host: データベースのホストを指定します。
user: データベース接続時のユーザ名を指定します。
pass: データベース接続時のパスワードを指定します。
name: 使用するデータベース名を指定します。
driver: 使用するデータベースを指定します。mysql/pgsql/memcachedが指定できます。
port: 使用するデータベースのポート番号を指定します。
type: 接続するデータベースがmaster/slaveなのかを指定します。NOBITAではslaveに対してINSERT,UPDATE,DELETE出来ない事をアプリケーション側ではじくようになっています。
encode: データベースの文字エンコードを指定します。

定数の設定

  • config/define/の中にdefine_xxx.phpというファイルで記述
  • xxxの部分はconfig/env.phpで定義した値を指定

ルーティングの設定

  • config/route/の中にrotute_xxx.phpというファイルで記述
  • xxxの部分はconfig/env.phpで定義した値を指定

モデル

  • サンプル
    <?php
    /**
     * USER_MSTテーブルを操作するためのクラス
     *
     * @author NOBITA
     */
    class UserMst extends NbModels{
      protected $_primary_key = "ID";
      protected $_primary_increment = "auto";
    }
    ?>
    

データベース名は全て大文字で記述(USER_MST)

モデルクラス名はUserMstとなり、NbModelsクラスを継承する

$_primary_keyでプライマリキーを指定します(デフォルトはID)

$_primary_incrementでauto_incrementか否かを指定します。(デフォルトはauto、否の場合はmanual)

ビュー

NOBITAの設計思想は「PHPはテンプレート言語である」とあるため、ビューファイルはピュアPHPで記述します。

コントローラー

NOBITAフレームワークでは、コントローラーはユーザのアクセスポイント毎に用意されます。

多くのフレームワークではModelを操作するためにコントローラーが存在しますが、NOBITAフレームワークではそのような事はありません。

これは、開発者が使いやすくなるように考えられています。

NOBITAフレームワークのコントローラーは必ずNbControllerクラスを継承します。

アプリケーション用のルートクラスとしてNbControllerクラスを継承し、各クラスがルートクラスを継承する方法でも構いません。

全てのコントローラーで共通の処理を書く場合に、この方法は有用です。

コントローラーの中にはアクションと呼ばれるメソッドを多数定義する事ができます。

例えばCookingコントローラのmakeアクションを呼び出す場合は、/app/controller/cooking_controller.phpがコントローラーのファイルとなり、メソッドとしてmakeを定義します。

その際のアクセスポイントはhttp://example.com/cooking/make/になります。

なお、メソッドを省略した場合は、indexメソッドが呼ばれます。

http://example.com/cooking/と!http://example.com/cooking/index/は同じになります。

コントローラーにはいくつかのメンバ変数が定義されています。

$_render変数はviewをレンダリングするかどうかを定義します。

WEBAPIの作成など、viewが必要ない場合はfalseにします。

$_layout変数はデフォルトviewをレンダリングするかどうかを定義します。

NOBITAフレームワークでは、デフォルトヘッダーとデフォルトフッターを定義する事ができます。

/app/view/layouts/header.nbtと/app/view/layouts/footer.nbtがそれに当たります。

$_layout変数をtrueにするとコントローラーで定義したviewの前後にヘッダーとフッターが挿入されます。

NOBITAフレームワークでは、コントローラーに対するビューファイルは自動で割り当てられます。

cookingコントローラーのmakeアクションの場合のビューファイルは/app/view/cooking/make.nbtになります。

コントローラーにはモデルやビューと連携するためのいくつかのメソッドと開発を用意にするいくつかの便利なメソッドが用意されています。

  • サンプル

<?php

class UserController extends NbController {

protected $render=false;
public function index() { }

}

?>

各メソッド