背景
Fat Free Framework是一个PHP micro-framework,由Bong Cosca于2009年启动,遵循一种最小主义的方法,它倾向于避免添加不必要的代码和结构,同时专注于真正重要的东西。
为什么要使用微框架?
这种类型的最低限度设计在所谓的微框架中很常见,其中PHP提供了广泛的选择。其他流行的微框架包括: Slim(PHP), Sinatra(Ruby)和 express.js(node.js)。
- 极其轻量级(Fat Free仅相当于大约55kb)
- 具有温和的学习曲线,允许开发人员几乎完全专注于重要的东西,而不必改变他们的编码风格。
当然,选择像Fat Free这样的微框架并不总是最好的选择,对于大项目,在那里人们需要团队,更有意见和结构的框架,如 Yii或 Zend可能是一个更好的选择。
创建一个新的项目与Fat Free
第一步: 下载框架,在项目的根文件夹中解码文件。
Fat Free 只在 PHP 5.3 和更高版本上运行. 如果您不确定您目前正在使用的版本,您可以通过键入来检查:
1/path/to/php -v
确定您正在开发的环境是正确的后,创建一个名为index.php
的文件,这将是您的项目启动文件。
1// FatFree framework
2$f3 = require ("fatfree/lib/base.php");
然后,您需要通过设置此变量来告诉您的应用程序,如果您正在开发或处于生产模式:
1// Set to 1 when in development mode, otherwise set to 0
2$f3->set('DEBUG', 1);
数据库
当然,您需要设置数据库连接,假设您正在使用MySQL:
1// MySql settings
2$f3->set('DB', new DB\SQL(
3 'mysql:host=localhost;port=3306;dbname=mydatabase',
4 'dbuser',
5 'dbpassword'
6));
或者,如果你更喜欢使用 SQLite:
1$db=new DB\SQL('sqlite:/var/www/myproject/db/database.sqlite'));
欲望
一个简单的查询可以通过键入呼叫:
1$result = $db->exec('SELECT field FROM table WHERE id = "1"');
或者,如果你喜欢它,你可以使用Fat Free的内置 ORM。
1$table = new DB\SQL\Mapper($db, 'table');
2$table->load(array('id=?', '1'));
3$result = $table->field;
使用DB\SQL\Mapper
函数,您基本上正在绘制
已经存在于数据库中的表格。
1$table = new DB\SQL\Mapper($db, 'table');
2$table->field = "Here is a value";
3$table->save();
注意:您将无法使用 ORM 更改表。
给你的项目一个结构
由于Fat Free是一个微框架,它没有为您的项目提供可用结构,因此您必须自己创建它。
1- api
2-- models
3- css
4- js
5- template
6- views
7- index.php
但是,当然,你将完全自由使用你喜欢的结构,这是使用无意见的框架的最佳方法。
自动化
为了避免在您的项目中包含所有类,Fat Free 允许您使用 autoloading 功能,这是一种只在您真正需要这些类的时候添加类的方式。
1$f3->set('AUTOLOAD','api/models/');
在我们的例子中,api/models/将显然是我们保存所有模型类的位置. 当您召唤一个类(例如,$myClass = new myClass()),Fat Free将在自动加载的位置中自动搜索一个以同样的方式命名的文件(`myClass.php').
路线
下一个有趣的事情是 Fat Free 如何管理我们的应用程序的路由,这就是我们如何定义路由到我们的主页:
1$f3->route('GET /',
2 function() {
3 echo 'This is my Home Page!';
4 }
5);
注意到 GET 属性在那里. 如果需要,它可以被替换为 POST,甚至是 GEŢPOST,如果您需要两者。 然后显然有一个函数,定义该页面应该做什么。
1$f3->route('GET|POST /post/@id',
2 function($f3) {
3 echo 'Post #'.$f3->get('PARAMS.id');
4 }
5);
正如你所看到的那样,任何@
前面的东西都将被视为变量参数。
寺庙与观点
脂肪免费为您提供有您的模板和视图的能力. 要在路由命令中包含您的模板/视图,只需写下:
1$f3->route('GET /',
2 function($f3) {
3 // Instantiates a View object
4 $view = new View;
5 // Header template
6 echo $view->render('template/header.php');
7 // This is a variable that we want to pass to the view
8 $f3->set('name','value');
9 // Page view
10 echo $view->render('views/index.php');
11 // Footer template
12 echo $view->render('template/footer.php');
13 }
14);
为了将变量设置为将其传递到视图中,您可以使用$f3->set('nameVariable', 'value')
函数,然后通过键入<?php echo $nameVariable;?>
将相同的变量调用到视图中(例如view/index.php
)。
总结而言,这些可能是你在开发你的第一个应用程序时需要的最有用的功能,如果你需要更多的功能,你总是可以参考 官方文档。