コンピュータを研究に使うための私的メモ。Python、Fortran、Ubuntu、etc...


環境構築

Linux

XAMPPでApache + PHP + MySQL環境の構築
oilコマンドのインストール
/usr/bin/oilがインストールされる。
$ sudo curl get.fuelphp.com/oil | sh

FuelPHPの初期設定

導入

oilコマンドでプロジェクトディレクトリを作成する。
oil create fuelphp
もしくは、gitでレポジトリからcloneする。
git clone --recursive git://github.com/fuel/fuel.git fuelphp
FuelPHP1.7.2からは依存関係はcomposerで管理できるようになっている。依存関係にあるパッケージの最低限の安定性がdevになっているので、stableにして再度、依存関係を更新する。
# composer.json
...
"minimum-stability" : "stable",
composerで依存関係を更新する。
php composer.phar self-update
php composer.phar update

環境変数の設定

fuel/app/config/config.phpを編集する。
# fuel/app/config/config.php
...
  'language' => 'ja',          // 言語の設定
...
  'locale'   => 'ja_JP.UTF-8', // ロケールの設定(シェルでlocale -aコマンドで使用可能なロケールを調べておく)
...
  'default_timezone' => 'Asia/Tokyo',  // タイムゾーンの設定
...
  'log_threshold'    => Fuel::L_ALL,   // ログ情報をすべて記録する


追記予定

  • PHPUnit
  • gitでの管理
  • トークンのソルト設定
  • 文字コードまわり?bootstrap.phpでdefault_charset

FuelPHP入門

ディレクトリ構成

全体の構成
appディレクトリの構成
ユーザーが自身で開発して作成するファイルは原則この下に置く。
app
├── bootstrap.php ・・・ブートストラップファイル
├── cache         ・・・Cacheクラスの作成するキャッシュが保存される
├── classes
│   ├── controller ・・・コントローラークラスファイル置き場
│   ├── model      ・・・モデルクラスファイルを配置
│   └── presenter  ・・・プレゼンタ?を配置
│       └── welcome
├── config        ・・・設定ファイルを配置
│   ├── config.php
│   ├── db.php
│   ├── routes.php
│   ├── development
│   ├── production
│   ├── staging
│   └── test
├── lang          ・・・言語ファイルを配置
├── logs          ・・・ログフォルダ
├── migrations    ・・・マイグレーションファイル(データベーステーブルを定義)を配置
├── modules       ・・・モジュールを配置
├── tasks         ・・・タスク?を配置
├── tests         ・・・テストを配置
│   ├── controller
│   ├── model
│   └── view
├── themes        ・・・
├── tmp           ・・・一時フォルダ
├── vendor        ・・・サードパーティのライブラリを配置(composer使用の場合はfuel/vendorに配置される)
└── views         ・・・ビューを配置
     └── welcome
編集中
# 編集中
docs ・・・FuelPHPの公式ドキュメント
fuel ・・・FuelPHPのプログラムやファイル郡
├── app
│             ├── cache
│             ├── classes
│             │   ├── controller ・・・コントローラークラスのファイル置き場
│   │   ├── model      ・・・モデルクラスのファイル置き場
│   │   └── presenter
│   │       └── welcome
│   ├── config ・・・各種設定ファイル
│   │   ├── config.php ・・・アプリケーション全体に関する設定
│   │   ├── db.php     ・・・データベースに関する設定
│   │   ├── routes.php ・・・
│   │   ├── development
│   │   ├── production
│   │   ├── staging
│   │   └── test
│   ├── lang
│   │   └── en
│   ├── logs
│   ├── migrations
│   ├── modules
│   ├── tasks
│   ├── tests
│   │   ├── controller
│   │   ├── model
│   │   └── view
│   ├── themes
│   ├── tmp
│   ├── vendor
│   └── views ・・・ビューファイル置き場
│       └── welcome

コントローラー

規約
  • 「fuel/app/classes/controller」ディレクトリ以下にクラスファイルを配置する。
  • ファイル名はコントローラ名とする。
  • クラス名には「Controller_」を頭につける。
  • クラス名の単語は最初の文字は大文字でその他は小文字にする。
  • クラス名の中の「 _ 」はフォルダ区切りになる。
  • Controller クラスを継承する。
URLとの対応
ルート名/コントローラ名/メソッド名[/パラメータ1[/パラメータ2[/...]]]
サブフォルダを利用して、「fuel/app/classes/contorolle/サブフォルダ/コントローラ」のように配置した場合には、
ルート名/サブフォルダ名/コントローラ名/メソッド名[/パラメータ1[/パラメータ2[/...]]]
メソッド名
  • ブラウザから実行されるメソッド名(アクションメソッド)には「action_」を頭につける。
  • 特殊メソッド
action_index()URLでメソッド名が省略された時に実行される。
before()アクションメソッドの実行前に実行される。コントローラ内で共通する前処理などを記述する。
after($response)アクションメソッドの実行後に実行される。引数にはアクションメソッドの返り値をとる。
router($method, $params)内部ルーティングを上書きする。すなわち、このメソッドが定義されているとURLに別のメソッド名が指定されていても、(before()メソッドの次に)router()メソッドが実行される。
Templateコントローラ
Restコントローラ
  • Controller_Restクラスを継承する。
  • 実行されるメソッドにはHTTPメソッドの接頭辞をつける。利用可能なHTTPメソッドは、「get_」「post_」「put_」「delete_」。すなわち「action_メソッド名」は使えない。
  • URLのメソッド名に出力されるフォーマットの拡張子をつける。
Hybridコントローラ

ビュー

命名規則
  • 「fuel/app/views」ディレクトリ以下に配置する。
  • ファイル名はすべて小文字(FuelPHP共通の規則)。
  • viewディレクトリ下にコントローラ名のディレクトリを作りその下に関連するビューファイルを配置することが多い。
ビューの使用方法
コントローラクラス内で、次のように呼び出してビューオブジェクトを生成する。
View::forge($file[, $data])
$file・・・ビューファイル名(拡張子を除く)
$data・・・ビューに渡す連想配列またはオブジェクト
(例)ビューファイル
# fuel/app/views/home/index.php
<html>
    <head>
        <title><?php echo $title; ?></title>
    </head>
    <body>
        Welcome, <?php echo $username; ?>.
    </body>
</html>
(例1)コントローラからの呼び出しとビューへの当てはめ。
class Controller_Home extends Controller
{
    public function action_index()
    {
        $data = array();

        $data['username'] = 'Joe14';
        $data['title'] = 'Home';

        // 連想配列をforgeメソッドに渡すことで、ビューに当てはめる。
        return View::forge('home/index', $data);
    }
}
(例2)
class Controller_Home extends Controller
{
    public function action_index()
    {
        // ビューオブジェクトを作成(この段階ではビューへの当てはめは行われない)
        $view = View::forge('home/index');

        // ビューのプロパティの形で変数を当てはめることもできる。
        $view->username = 'Joe14';
        $view->title = 'Home';

        // set()メソッドを使う方法もある。
        $view->set('username', 'Joe14');
        $view->set('title', 'Home');

        return $view;
    }
}










参考

参考サイト

情報

管理人/副管理人のみ編集できます