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フレームワークを使用して最初のアプリケーションを開発するときに必要となる最も便利な機能です。 さらに必要な場合は、いつでも公式ドキュメントを参照できます。