创建和运行一个 FuelPHP 项目
什么是 FuelPHP?
FuelPHP 是一个灵活且模块化的 PHP 框架,专为开发现代 Web 应用程序设计。它遵循 HMVC(层次化模型-视图-控制器)设计模式,提供丰富的特性和工具,使开发者能够快速构建高质量的 Web 应用程序。以其灵活性、高性能和易于扩展而著称,FuelPHP 是许多开发者的首选。
FuelPHP 的关键特性和优点
- HMVC 架构:支持层次化 MVC 设计模式,有助于代码重用和模块化开发。
- 高性能:FuelPHP 以其高效的性能和速度著称,能够处理高并发请求。
- 易于扩展:提供丰富的扩展机制,允许开发者轻松添加自定义功能。
- 安全性:包含多种内置安全功能,如输入验证、输出过滤和 CSRF 保护。
- 强大的社区支持:拥有活跃的开发者社区和丰富的第三方扩展。
FuelPHP 可以帮助开发者快速构建高性能、高质量的 Web 应用程序,适用于各种规模的项目。
使用 ServBay 创建和运行 FuelPHP 项目
在本文中,我们将使用 ServBay 提供的 PHP 环境来创建和运行一个 FuelPHP 项目。我们将使用 ServBay 的 "Host" 功能来设置一个 Web 服务器,并通过简单配置实现项目访问。
注意:对于已使用 NGINX 或 Apache 的用户
ServBay 默认使用 Caddy 作为 Web 服务器。对于从 NGINX 和 Apache 迁移到 ServBay 的用户,有以下几个关键变化需要注意:
Caddy 配置
ServBay 已集成 Caddy 且默认配置已优化和调试。开发者只需通过 ServBay 的 "Host" 功能来管理站点,而无需手动修改 Caddy 配置文件。
重写规则和 .htaccess
在 NGINX 和 Apache 中,开发者通常需要编写自己的重写规则和 .htaccess 文件来进行 URL 重写和其他配置。然而,ServBay 预先配置了 Caddy 规则,开发者无需编写这些规则,除非有特殊需求。
了解更多
有关更多信息,请参考 Rewrite and htaccess,How to Migrate Apache Websites to ServBay 和 How to Migrate NGINX Websites to ServBay。
创建一个 FuelPHP 项目
TIP
ServBay 建议将网站放置在 /Applications/ServBay/www
目录下,以便于管理。
安装 Composer
Composer 已随 ServBay 预装,无需单独安装。
创建一个 FuelPHP 项目
使用 Composer 创建一个新的 FuelPHP 项目:
bashcd /Applications/ServBay/www mkdir servbay-fuelphp-app cd servbay-fuelphp-app composer create-project fuel/fuel .
1
2
3
4切换到项目目录
进入新创建的 FuelPHP 项目目录:
bashcd /Applications/ServBay/www/servbay-fuelphp-app
1
初始配置
配置数据库连接
在
fuel/app/config/development/db.php
文件中配置数据库连接信息:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9
配置 Web 服务器
使用 ServBay 的 "Host" 功能,通过 Web 服务器访问 FuelPHP 项目。在 ServBay 的 "Host" 设置中,添加一个新的主机:
- 名称:
My First FuelPHP Dev Site
- 域名:
servbay-fuelphp-test.local
- 网站类型:
PHP
- PHP 版本:选择
8.3
- 网站根目录:
/Applications/ServBay/www/servbay-fuelphp-app/public
有关详细的设置步骤,请参考 Adding the First Website。
添加示例代码
在 fuel/app/classes/controller/welcome.php
文件中添加以下代码:
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Cache;
use Fuel\Core\DB;
class Controller_Welcome extends Controller
{
public function action_index()
{
return Response::forge('Hello ServBay!');
}
public function action_memcached()
{
Cache::set('key', 'Hello Memcached!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_redis()
{
Cache::set('key', 'Hello Redis!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_mysql_add()
{
DB::insert('users')->set([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return Response::forge('User added');
}
public function action_mysql()
{
$users = DB::select()->from('users')->execute()->as_array();
return Response::forge(json_encode($users));
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
访问网站
打开浏览器,访问以下 URL:
https://servbay-fuelphp-test.local
:你将看到页面输出Hello ServBay!
。
NoSQL 数据库示例
Memcached 示例
安装 Memcached 扩展
Memcached 扩展已随 ServBay 预装,无需额外安装。
配置 Memcached
在
fuel/core/config/cache.php
文件中配置 Memcached 连接信息:phpreturn [ 'driver' => 'memcached', 'memcached' => [ 'cache_id' => 'fuel', 'servers' => [ 'default' => [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ] ], ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14添加路由
将以下路由添加到
fuel/app/config/routes.php
中:phpreturn array( 'memcached' => 'welcome/memcached', )
1
2
3使用 Memcached
在控制器中使用缓存:
phppublic function action_memcached() { Cache::set('key', 'Hello Memcached!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7
Redis 示例
安装 Redis 扩展
Redis 扩展已随 ServBay 预装,无需额外安装。
配置 Redis
在
fuel/app/config/redis.php
文件中配置 Redis 连接信息:phpreturn [ 'driver' => 'redis', 'redis' => [ 'database' => 'default', ], ];
1
2
3
4
5
6添加路由
将以下路由添加到
fuel/app/config/routes.php
中:phpreturn array( 'redis' => 'welcome/redis', )
1
2
3使用 Redis
在控制器中使用缓存:
phppublic function action_redis() { Cache::set('key', 'Hello Redis!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7
关系型数据库示例
MySQL 示例
配置 MySQL
在
fuel/app/config/development/db.php
文件中配置 MySQL 连接信息:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9创建迁移文件
使用 FuelPHP 的 oil 工具创建迁移文件:
bashphp oil g migration create_users_table
1编辑迁移文件
在
fuel/app/migrations
目录中找到新创建的迁移文件,并编辑它以定义数据库表结构:php<?php namespace Fuel\Migrations; use Fuel\Core\DBUtil; class Create_users_table { public function up() { DBUtil::create_table('users', [ 'id' => ['type' => 'int', 'constraint' => 11, 'auto_increment' => true], 'name' => ['type' => 'varchar', 'constraint' => 100], 'email' => ['type' => 'varchar', 'constraint' => 100, 'unique' => true], ], ['id']); } public function down() { DBUtil::drop_table('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21运行迁移
使用 FuelPHP 的 oil 工具运行迁移,创建数据库表:
bashphp oil refine migrate
1添加路由
将以下路由添加到
fuel/app/config/routes.php
中:phpreturn array( 'mysql_add' => 'welcome/mysql_add', 'mysql' => 'welcome/mysql', )
1
2
3
4插入用户数据
在控制器中插入用户数据:
phppublic function action_mysql_add() { DB::insert('users')->set([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return Response::forge('User added'); }
1
2
3
4
5
6
7
8
9使用 MySQL
在控制器中调用数据库:
phppublic function action_mysql() { $users = DB::select()->from('users')->execute()->as_array(); return Response::forge(json_encode($users)); }
1
2
3
4
5
6打开浏览器并访问
https://servbay-fuelphp-test.local/mysql_add
和https://servbay-fuelphp-test.local/mysql
通过上述步骤,您已经成功使用 ServBay 的功能创建并运行了一个 FuelPHP 项目,管理和访问您的项目,同时连接和查询多个数据库。希望本文能帮助您快速上手 FuelPHP 并应用于您的项目。