如何为使用Fat Free的PHP框架

[脱脂框架(http://www.fatfreeframework.com)是一个PHP *微架构*这是在2009年由奉COSCA启动。继简约的方式,它往往以避免增加代码和结构都并非绝对必要,同时专注于真正重要的。以下是我们对如何使用不含脂肪的PHP框架教程。

背景


Fat Free 框架是一个PHP 的微架构 ,是在2009年由奉COSCA启动。 遵循简单的方法,它倾向于避免添加不是严格必需的代码和结构,同时关注真正重要的。

为什么是一个微框架?


这种类型的简约设计在所谓的微框架中是常见的,其中PHP提供了广泛的选择。 其他受欢迎的微框架是: Slim (PHP), Sinatra (Ruby)和express.js(Node.js的)。 这些框架通常具有几个优点,例如:

  • 非常轻巧(无脂肪只有约55kb)

  • 有一个温和的学习曲线,允许开发人员几乎专注于重要的,不必改变他们的编码风格。

  • 提供成熟,成熟的框架通常具有的许多功能。

不言而喻,选择像Fat Free这样的微框架并不总是最好的选择。 对于其中的人的团队,预计大项目,如更自以为是和结构框架Yii的Zend的可能会是一个更好的选择。

用Fat Free设置一个新项目


第一步: 下载框架解压项目的根文件夹中的文件。

Fat Free仅在PHP 5.3及更高版本上运行。 如果您不确定自己目前使用的版本,可以输入以下内容:

/path/to/php -v

后经证实,你正在开发那里的环境是正确的,创建一个名为index.php ,这将是你的项目的引导文件。 第一行,包括Fat Free:

// 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"');

或者,如果你喜欢它,你可以使用不含脂肪的内置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

但是,当然你可以完全自由地使用你喜欢的结构。 这是使用非评论框架的最好的事情。

自动加载


为了避免必须包括所有的类到你的项目,不含脂肪,您可以使用自动加载功能,这是一种只在你真正需要它们的时候,包括类。 所以,要调用所有的类,我们只需要输入:

$f3->set('AUTOLOAD','api/models/');

在本例中, api/models/显然是我们拯救我们的所有型号的类的位置。 当你调用一个类(如$myClass = new myClass()无脂肪会自动寻找一个名为相同的方式(文件myClass.php的自动加载位置内)。

路由


下一个有趣的事情是Fat Free管理我们的应用程序的路由。 这是我们如何定义到我们的主页的路由:

$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 )通过输入`<?php echo $ nameVariable; ?>。 这真的很简单。

总而言之,这些可能是在使用Fat Free框架开发第一个应用程序时所需要的最有用的功能。 如果您需要更多的人,你总是可以参考官方文档