創建並運行 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 配置檔。
Rewrite 規則和 .htaccess
在 NGINX 和 Apache 中,開發者通常需要自己撰寫 Rewrite 規則和 .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" 設置中,添加一個新的 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 並將其應用於您的項目中。