Tạo và Chạy Dự Án FuelPHP
FuelPHP là gì?
FuelPHP là một framework PHP linh hoạt và mô-đun được thiết kế để phát triển các ứng dụng web hiện đại. Nó tuân theo mẫu thiết kế HMVC (Hierarchical Model-View-Controller) và cung cấp một bộ tính năng và công cụ phong phú giúp nhà phát triển nhanh chóng xây dựng các ứng dụng web chất lượng cao. Nổi tiếng với tính linh hoạt, hiệu suất cao và dễ dàng mở rộng, FuelPHP là lựa chọn ưa thích của nhiều nhà phát triển.
Các Tính Năng và Lợi Ích Chính của FuelPHP
- Kiến trúc HMVC: Hỗ trợ các mẫu thiết kế MVC phân cấp, tạo điều kiện cho việc tái sử dụng mã và phát triển mô-đun.
- Hiệu Suất Cao: FuelPHP được biết đến với hiệu suất và tốc độ hiệu quả, khả năng xử lý yêu cầu đồng thời cao.
- Dễ Dàng Mở Rộng: Cung cấp cơ chế mở rộng phong phú cho phép nhà phát triển dễ dàng thêm các chức năng tùy chỉnh.
- Bảo Mật: Bao gồm nhiều tính năng bảo mật tích hợp như xác thực đầu vào, lọc đầu ra, và bảo vệ CSRF.
- Hỗ Trợ Cộng Đồng Mạnh Mẽ: Có cộng đồng phát triển tích cực và nhiều phần mở rộng từ bên thứ ba.
FuelPHP có thể giúp các nhà phát triển nhanh chóng xây dựng các ứng dụng web chất lượng cao, hiệu suất cao phù hợp với các dự án có nhiều quy mô khác nhau.
Tạo và Chạy Dự Án FuelPHP với ServBay
Trong bài viết này, chúng tôi sẽ sử dụng môi trường PHP do ServBay cung cấp để tạo và chạy dự án FuelPHP. Chúng tôi sẽ thiết lập một máy chủ web sử dụng tính năng "Host" của ServBay và đạt được quyền truy cập dự án thông qua cấu hình đơn giản.
Lưu ý: Dành cho người dùng đã từng sử dụng NGINX hoặc Apache
ServBay mặc định sử dụng Caddy làm máy chủ web. Đối với người dùng di chuyển từ NGINX và Apache sang ServBay, có một số thay đổi chính cần lưu ý:
Cấu hình Caddy
ServBay đã tích hợp Caddy, và cấu hình mặc định được tối ưu hóa và gỡ lỗi. Nhà phát triển chỉ cần quản lý các trang web thông qua tính năng "Host" của ServBay mà không cần sửa đổi thủ công tệp cấu hình Caddy.
Quy tắc Rewrite và .htaccess
Trong NGINX và Apache, nhà phát triển thường phải viết quy tắc rewrite và tệp .htaccess để viết lại URL và các cấu hình khác. Tuy nhiên, ServBay đi kèm với các quy tắc Caddy đã được cấu hình, do đó nhà phát triển không cần viết các quy tắc này trừ khi có yêu cầu đặc biệt.
Tìm Hiểu Thêm
Để biết thêm thông tin, vui lòng tham khảo Rewrite và htaccess, Cách Di Chuyển Websites Apache sang ServBay, và Cách Di Chuyển Websites NGINX sang ServBay.
Tạo Dự Án FuelPHP
TIP
ServBay đề xuất đặt các trang web trong thư mục /Applications/ServBay/www
để dễ dàng quản lý.
Cài Đặt Composer
Composer đã được cài đặt sẵn với ServBay do đó không cần cài đặt riêng.
Tạo Dự Án FuelPHP
Sử dụng Composer để tạo dự án FuelPHP mới:
bashcd /Applications/ServBay/www mkdir servbay-fuelphp-app cd servbay-fuelphp-app composer create-project fuel/fuel .
1
2
3
4Điều Hướng Đến Thư Mục Dự Án
Đi vào thư mục dự án FuelPHP mới tạo:
bashcd /Applications/ServBay/www/servbay-fuelphp-app
1
Cấu Hình Ban Đầu
Cấu Hình Kết Nối Cơ Sở Dữ Liệu
Cấu hình thông tin kết nối cơ sở dữ liệu trong tệp
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
Cấu Hình Máy Chủ Web
Sử dụng tính năng "Host" của ServBay để truy cập dự án FuelPHP qua máy chủ web. Trong cài đặt "Host" của ServBay, thêm một máy chủ mới:
- Tên:
My First FuelPHP Dev Site
- Tên Miền:
servbay-fuelphp-test.local
- Loại Website:
PHP
- Phiên Bản PHP: chọn
8.3
- Thư Mục Gốc của Website:
/Applications/ServBay/www/servbay-fuelphp-app/public
Để biết các bước cài đặt chi tiết, vui lòng tham khảo Thêm Trang Web Đầu Tiên.
Thêm Mã Mẫu
Thêm mã sau vào tệp 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
Truy Cập Website
Mở trình duyệt và truy cập URL sau:
https://servbay-fuelphp-test.local
: Bạn sẽ thấy trang xuấtHello ServBay!
.
Ví Dụ Cơ Sở Dữ Liệu NoSQL
Ví Dụ Memcached
Cài Đặt Tiện Ích Memcached
Tiện ích mở rộng Memcached đã được cài đặt sẵn với ServBay, không cần cài đặt thêm.
Cấu Hình Memcached
Cấu hình thông tin kết nối Memcached trong tệp
fuel/core/config/cache.php
: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
14Thêm Routes
Thêm các routes sau vào
fuel/app/config/routes.php
:phpreturn array( 'memcached' => 'welcome/memcached', )
1
2
3Sử Dụng Memcached
Sử dụng cache trong controller:
phppublic function action_memcached() { Cache::set('key', 'Hello Memcached!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Mở trình duyệt và truy cập https://servbay-fuelphp-test.local/memcached
Ví Dụ Redis
Cài Đặt Tiện Ích Redis
Tiện ích mở rộng Redis đã được cài đặt sẵn với ServBay, không cần cài đặt thêm.
Cấu Hình Redis
Cấu hình thông tin kết nối Redis trong tệp
fuel/app/config/redis.php
:phpreturn [ 'driver' => 'redis', 'redis' => [ 'database' => 'default', ], ];
1
2
3
4
5
6Thêm Routes
Thêm các routes sau vào
fuel/app/config/routes.php
:phpreturn array( 'redis' => 'welcome/redis', )
1
2
3Sử Dụng Redis
Sử dụng cache trong controller:
phppublic function action_redis() { Cache::set('key', 'Hello Redis!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Mở trình duyệt và truy cập https://servbay-fuelphp-test.local/redis
Ví Dụ Cơ Sở Dữ Liệu Quan Hệ
Ví Dụ MySQL
Cấu Hình MySQL
Cấu hình thông tin kết nối MySQL trong tệp
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
9Tạo Tệp Migration
Sử dụng công cụ oil của FuelPHP để tạo tệp migration:
bashphp oil g migration create_users_table
1Chỉnh Sửa Tệp Migration
Tìm tệp migration vừa tạo trong thư mục
fuel/app/migrations
và chỉnh sửa để định nghĩa cấu trúc bảng cơ sở dữ liệu: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
21Chạy Migration
Sử dụng công cụ oil của FuelPHP để chạy migration và tạo bảng cơ sở dữ liệu:
bashphp oil refine migrate
1Thêm Routes
Thêm các routes sau vào
fuel/app/config/routes.php
:phpreturn array( 'mysql_add' => 'welcome/mysql_add', 'mysql' => 'welcome/mysql', )
1
2
3
4Chèn Dữ Liệu Người Dùng
Chèn dữ liệu người dùng trong controller:
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
9Sử Dụng MySQL
Gọi cơ sở dữ liệu trong controller:
phppublic function action_mysql() { $users = DB::select()->from('users')->execute()->as_array(); return Response::forge(json_encode($users)); }
1
2
3
4
5
6Mở trình duyệt và truy cập
https://servbay-fuelphp-test.local/mysql_add
vàhttps://servbay-fuelphp-test.local/mysql
Qua các bước trên, bạn đã tạo thành công và chạy dự án FuelPHP sử dụng các tính năng của ServBay để quản lý và truy cập dự án của bạn đồng thời kết nối và truy vấn nhiều cơ sở dữ liệu. Hy vọng bài viết này sẽ giúp bạn nhanh chóng bắt đầu với FuelPHP và áp dụng nó vào các dự án của bạn.