バックグラウンド


Fat Free Framework は、2009年にBongCoscaによって開始されたPHPmicro-frameworkです。 最小限のアプローチに従うと、本当に重要なことに焦点を合わせながら、厳密には必要ではないコードや構造を追加することを避ける傾向があります。

なぜマイクロフレームワークなのか?


このタイプのミニマルなデザインは、PHPが幅広い選択肢を提供するいわゆるマイクロフレームワークの間で一般的です。 その他の人気のあるマイクロフレームワークは、 Slim (PHP)、 Sinatra (Ruby)、 express.js (node.js)です。 これらのフレームワークには通常、次のようないくつかの利点があります。

  • 非常に軽量であること(ファットフリーは約55kbの量のみ)

  • 緩やかな学習曲線を持ち、開発者がコーディングスタイルを変更することなく、重要なことにほぼ専念できるようにします。

  • 成熟した本格的なフレームワークが通常持つ機能の多くを提供します。

言うまでもなく、FatFreeのようなマイクロフレームワークを選択することが常に最良の選択であるとは限りません。 人々のチームが期待される大規模なプロジェクトの場合、YiiZendなどのより意見が分かれて構造化されたフレームワークの方が適している可能性があります。

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

提出者:http: //www.marcotroisi.com/