No description, website, or topics provided.
Branch: master
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.
framework
samples/simple-cms
.gitkeep
LICENSE
README.md

README.md

Pachira PHP Framework

Pachira(パキラ)は、PHP製の超軽量Webフレームワークです。
モダンな機能や真新しいアイデアは無いですが、少ない学習コストですぐに利用できます。

特徴

Pachiraで出来ること

  • Sinatra風ルーティング
  • Model, Pluginのオートロード
  • シンプルなView機能

Pachiraだけでは出来ないこと

  • Controller
  • テスト
  • データベース接続
  • などなど

覚えること

Pachiraは、4つの主要な関数と6つの機能を覚えれば利用できます。 複雑なルールや名前空間、クラス、オブジェクトを覚える必要はありません。

4つの関数

view($view, $vars)

第一引数にviewのファイル名を指定すると、application/views/{$view}.phpが読み込まれます。

view("index");

第二引数には、そのview内で使いたい変数の配列を渡すことができます。

view("news", array(
  "title" => "News Page",
  "news" => $news
));

get($re, $callback) と post($re, $callback)

ルーティング機能も、グローバルな関数として用意されています。 第一引数は、URLにマッチする正規表現を指定します。

get("^/$", function(){
  view("index");
});

get("^/inquiry$", function(){
  view("inquiry/index");
});

post("^/inquiry$", function(){
  // inquiry();
  view("inquiry/complete");
});

正規表現にマッチした文字列はコールバック関数の引数として渡されます。

get("^/news/page/([\d+])$", function($page){
  view("news/list", array("news_list" => News::find($page)));
});

get("^/news/([\d+])$", function($id){
  $news = News::load($id);
  $news ? view("news/detail", array("news")) : not_found();
});

pass()

get()/post()のコールバック関数内でpass()を呼ぶと、次のルーティングに飛ぶことができます。

// 全ページで実行される
get("", function(){
  pass();
});

// admin/以下へのアクセス時、ログインしてない場合はログイン画面へ
get("^/admin/", function(){
  logged_in() ? pass() : redirect("login");
});

その他の組み込み関数はリファレンスを参照ください。

6つの機能

Config (config.php)

システムに関する設定、アプリケーションに関する設定を行います。

Bootstrap (application/bootstrap.php)

システムが全て読み込まれた後、アプリケーションの初期化や設定、ルータの読み込みを行うファイルです。

//
session_start();

initialize_orm(DB_HOST, DB_NAME, DB_USER, DB_PASS);

add_router("app");
add_router("api");
add_router("admin");

Router (application/routers/*.php)

  • add_router($router)
  • get($re, $callback)
  • post($re, $callback)
  • request($re, $callback)
  • pass()
  • not_found()

View (application/views/*.php)

  • view($name, $vars=array())
  • capture_view($name, $vars=array())
  • view_var($var, $val)

Model (application/models/*.php)

Modelは、システム初期化時に自動で読み込まれます。 models/以下のディレクトリに置いたファイルの読み込みも、再帰的に行われます。 命名規則や制限はありませんが、1ファイル1クラスを想定しています。(が、ルールではありません。)

Plugin (application/plugins/*.php, application/plugins/libs/*.php)

Pluginは、システム初期化時に自動で読み込まれますが、Modelのように再帰読み込みは行われません。 plugins/libs/以下に、サードパーティ製のライブラリなどを置き、plugins/直下にそれらを読み込むスクリプトを置くことを想定しています。

リファレンス

Pachira Reference