背景
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框架开发第一个应用程序时所需要的最有用的功能。 如果您需要更多的人,你总是可以参考官方文档 。