No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
public
.gitignore
README.md
db.sqlite

README.md

Ore Framework

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); ?> 文字がそのまま出力される