FatFreePHPフレームワークの使用方法
バックグラウンド
Fat Free Framework は、2009年にBongCoscaによって開始されたPHPmicro-frameworkです。 最小限のアプローチに従うと、本当に重要なことに焦点を合わせながら、厳密には必要ではないコードや構造を追加することを避ける傾向があります。
なぜマイクロフレームワークなのか?
このタイプのミニマルなデザインは、PHPが幅広い選択肢を提供するいわゆるマイクロフレームワークの間で一般的です。 その他の人気のあるマイクロフレームワークは、 Slim (PHP)、 Sinatra (Ruby)、 express.js (node.js)です。 これらのフレームワークには通常、次のようないくつかの利点があります。
-
非常に軽量であること(ファットフリーは約55kbの量のみ)
-
緩やかな学習曲線を持ち、開発者がコーディングスタイルを変更することなく、重要なことにほぼ専念できるようにします。
-
成熟した本格的なフレームワークが通常持つ機能の多くを提供します。
言うまでもなく、FatFreeのようなマイクロフレームワークを選択することが常に最良の選択であるとは限りません。 人々のチームが期待される大規模なプロジェクトの場合、YiiやZendなどのより意見が分かれて構造化されたフレームワークの方が適している可能性があります。
FatFreeで新しいプロジェクトを設定する
最初のステップ:プロジェクトのルートフォルダー内のファイルを解凍するフレームワークをダウンロードします。
Fat Freeは、PHP5.3以降でのみ動作します。 現在使用しているバージョンがわからない場合は、次のように入力して確認できます。
/path/to/php -v
開発している環境が適切であることを確認したら、プロジェクトのブートストラップファイルとなるindex.php
というファイルを作成します。 最初の行に、FatFreeを含めます。
// FatFree framework
$f3 = require ("fatfree/lib/base.php");
次に、次の変数を設定して、開発モードか本番モードかをアプリケーションに通知する必要があります。
// Set to 1 when in development mode, otherwise set to 0
$f3->set('DEBUG', 1);
データベース
そしてもちろん、データベース接続を設定する必要があります。 MySQLを使用していると仮定します。
// MySql settings
$f3->set('DB', new DB\SQL(
'mysql:host=localhost;port=3306;dbname=mydatabase',
'dbuser',
'dbpassword'
));
または、SQLiteを使用したい場合は、次のようにします。
$db=new DB\SQL('sqlite:/var/www/myproject/db/database.sqlite'));
クエリ
次のように入力すると、簡単なクエリを呼び出すことができます。
$result = $db->exec('SELECT field FROM table WHERE id = "1"');
または、必要に応じて、FatFreeの組み込みのORMを使用できます。 上記のクエリは次のようになります。
$table = new DB\SQL\Mapper($db, 'table');
$table->load(array('id=?', '1'));
$result = $table->field;
DB\SQL\Mapper
関数を使用すると、基本的に、データベースにすでに存在するテーブルを「マッピング」することになります。 代わりに、テーブルに新しいレコードを追加する必要がある場合は、次のように入力する必要があります。
$table = new DB\SQL\Mapper($db, 'table');
$table->field = "Here is a value";
$table->save();
注意:ORMを使用してテーブルを変更することはできません。
プロジェクトに構造を与える
Fat Freeはマイクロフレームワークであるため、プロジェクトですぐに使用できる構造が付属していないため、自分で作成する必要があります。 プロジェクトの構造の例は次のとおりです。
- api
-- models
- css
- js
- template
- views
- index.php
しかしもちろん、あなたはあなたが愛する構造を完全に自由に使うことができます。 それは、意見のないフレームワークを使用することについての最良のことです。
自動読み込み
すべてのクラスをプロジェクトに含める必要がないように、Fat Freeでは自動読み込み機能を使用できます。これは、本当に必要なときにだけクラスを含める方法です。 したがって、すべてのクラスを呼び出すには、次のように入力するだけです。
$f3->set('AUTOLOAD','api/models/');
この場合、api/models/
は、すべてのModelクラスを保存する場所になることは明らかです。 クラスを呼び出すとき(例: $myClass = new myClass()
)、Fat Freeは、自動ロードされた場所内で同じ方法(myClass.php
)で呼び出されたファイルを自動的に検索します。
ルーティング
次に興味深いのは、FatFreeがアプリケーションのルーティングを管理する方法です。 ホームページへのルーティングを定義する方法は次のとおりです。
$f3->route('GET /',
function() {
echo 'This is my Home Page!';
}
);
そこにあるGET属性に注意してください。 必要に応じて、 POST に置き換えることができます。両方が必要な場合は、 GET |POSTに置き換えることもできます。 そして、明らかにそのページが何をすべきかを定義する関数があります。 もちろん、次の構文を使用して、さまざまなパラメーターを管理することもできます。
$f3->route('GET|POST /post/@id',
function($f3) {
echo 'Post #'.$f3->get('PARAMS.id');
}
);
ご覧のとおり、@
が前に付いているものはすべて可変パラメーターと見なされます。
テンプレートとビュー
Fat Freeを使用すると、テンプレートとビューを作成できます。 テンプレート/ビューをルートコマンドに含めるには、次のように記述します。
$f3->route('GET /',
function($f3) {
// Instantiates a View object
$view = new View;
// Header template
echo $view->render('template/header.php');
// This is a variable that we want to pass to the view
$f3->set('name','value');
// Page view
echo $view->render('views/index.php');
// Footer template
echo $view->render('template/footer.php');
}
);
ビューに渡される変数を設定するには、$f3->set('nameVariable', 'value')
関数を使用してから、同じ変数をビューに呼び出します(例: views/index.php
)`と入力します。 とても簡単です。
結論として、これらはおそらく、FatFreeフレームワークを使用して最初のアプリケーションを開発するときに必要となる最も便利な機能です。 さらに必要な場合は、いつでも公式ドキュメントを参照できます。