PHPカンファレンス北海道での発表用に作成した粗雑なフレームワークです。
5年以上は前のスタイルを思い出しながら作成したネタ的な物なので、実用には耐えません。
TBD
− RESTにも使えない低機能なルーター − テンプレートエンジンと言い張るのに勇気がいるテンプレートエンジン風機能 − 異常に低機能なファイルローダー − 良く言えばシンプル、素直に言えば粗雑なコンテナ
route('/', 'index');
route('/what/your/name/:name', 'what_your_name');
第一引数がpath、:hoge
と書く事でキャプチャできる。キャプチャされた変数はoption
で取り出せるのでそちらを参照のこと。
第二引数はアクションとなる関数名、アクションについてはファイルローダーを参照のこと。
// セット
option('key', 'value');
// ゲット
$var = option('key');
// すべての保存されているものを配列としてゲット
$var_list = option();
第一引数にキー名、第二引数に値(なんでもよい)を指定することで保存できる。
第一引数のみでアクセスすると、それにヒモ付いた値を取得できる。存在しない場合にはNULLが返る。
引数省略時には、保存されているキーと値でヒモ付いた配列が返る。
どのタイミングでも(関数はグローバルスコープなので)呼び出す事ができ、どのタイミングでも保存できる。保存された値はリクエストの間保持しつづけられる。
ここにセットされた値は、後述のテンプレートの中では、キー名を変数名として使う事ができる。
require_all("/path/to/dir/");
指定ディレクトリ以下のファイルを全部require_once
する。
ルーターで指定するアクション関数のために、CONTROLLER_DIR
定数で指定されたディレクトリのphpがすべてロードされる。
CONTROLLER_DIR
が未定義の場合、ore.php
が設置されたディレクトリと同一のcontroller
ディレクトリがCONTROLLER_DIR
となる
render('template.php', 'layout_template.php', $params);
第一引数に主テンプレートを指定する。テンプレートファイルはTEMPLATE_DIR
定数で設定されたディレクトリ以下に置く。定数未定義の場合、ore.phpと同じ階層のディレクトリのtemplateディレクトリになる。
$paramsの配列は展開される。たとえば $params['name'] = 'タロウ';
的なものであれば、テンプレート内では$name
でアクセスできる。
layoutは省略できる、その場合nullを指定する。
ヘルパ関数としてeとe_rawがある。(e_rawはechoと同じであるが、兎に角echoをつかわないように存在する(後で検索して見つけやすいように)。そういう時代があったのだ)
<?php e($name); ?> HTMLエスケープされた文字が出力される
<?php e_raw($name); ?> 文字がそのまま出力される