如何使用免脂 PHP 框架

背景


Fat Free Framework是一个PHP micro-framework,由Bong Cosca于2009年启动,遵循一种最小主义的方法,它倾向于避免添加不必要的代码和结构,同时专注于真正重要的东西。

为什么要使用微框架?


这种类型的最低限度设计在所谓的微框架中很常见,其中PHP提供了广泛的选择。其他流行的微框架包括: Slim(PHP), Sinatra(Ruby)和 express.js(node.js)。

  • 极其轻量级(Fat Free仅相当于大约55kb)
  • 具有温和的学习曲线,允许开发人员几乎完全专注于重要的东西,而不必改变他们的编码风格。

当然,选择像Fat Free这样的微框架并不总是最好的选择,对于大项目,在那里人们需要团队,更有意见和结构的框架,如 YiiZend可能是一个更好的选择。

创建一个新的项目与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)。

总结而言,这些可能是你在开发你的第一个应用程序时需要的最有用的功能,如果你需要更多的功能,你总是可以参考 官方文档

Submitted by: Marco Troisi
Published At
Categories with 技术
comments powered by Disqus