Tin Tức

Tổng hợp các bài viết, kinh nghiệm, chia sẻ kiến thức hữu ích về việc làm onsite, nhân sự onsite.

Hướng dẫn tạo và chạy dự án FuelPHP cho người mới bắt đầu

folder Kiến thức công nghệ
today 06/09/2024 12:04
FuelPHP là một framework PHP linh hoạt và mô-đun, phù hợp cho việc phát triển các ứng dụng web hiện đại. Nó theo mẫu thiết kế HMVC (Hierarchical Model-View-Controller) và cung cấp các tính năng và công cụ phong phú giúp các nhà phát triển xây dựng các ứng dụng web chất lượng cao một cách nhanh chóng. Được biết đến với tính linh hoạt, hiệu suất cao và dễ mở rộng, FuelPHP là một framework được nhiều nhà phát triển ưa chuộng.
Các Tính Năng và Lợi Ích Chính của FuelPHP
  • Kiến trúc HMVC: Hỗ trợ 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 nổi tiếng với hiệu suất và tốc độ hiệu quả, có khả năng xử lý các yêu cầu đồng thời cao.
  • Dễ Dàng Mở Rộng: Cung cấp các cơ chế mở rộng phong phú, cho phép các nhà phát triển dễ dàng thêm các chức năng tùy chỉnh.
  • Bảo Mật: Các tính năng bảo mật tích hợp sẵn 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ộng đồng nhà phát triển năng động và nhiều tiện ích mở rộng của bên thứ ba.

FuelPHP giúp các nhà phát triển xây dựng nhanh chóng các ứng dụng web hiệu suất cao, chất lượng cao, phù hợp cho các dự án ở bất kỳ quy mô nào.

Tạo và Chạy Dự Án FuelPHP bằng ServBay

Trong bài viết này, chúng ta sẽ sử dụng môi trường PHP của ServBay để tạo và chạy một dự án FuelPHP. Chúng ta sẽ sử dụng tính năng Host của ServBay để thiết lập máy chủ web và truy cập dự án thông qua cấu hình đơn giản.

Lưu ý: Đối với Người Dùng Trước Đây Của NGINX hoặc Apache

ServBay sử dụng Caddy theo mặc định làm máy chủ web. Đối với người dùng chuyển từ NGINX hoặc Apache sang ServBay, có một số thay đổi chính cần lưu ý:

  • Cấu Hình Caddy

    ServBay đã bao gồm Caddy, và cấu hình mặc định được tối ưu hóa và gỡ lỗi. Các 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 phải chỉnh sửa các tệp cấu hình Caddy thủ công.

  • Quy Tắc Rewrite và .htaccess

    Trong NGINX và Apache, các nhà phát triển thường viết các quy tắc rewrite và tệp .htaccess của riêng họ để xử lý việc viết lại URL và các cấu hình khác. Tuy nhiên, cấu hình mặc định của ServBay đã bao gồm các quy tắc Caddy, vì vậy các nhà phát triển không cần phải viết những quy tắc này trừ khi có yêu cầu đặc biệt.

Tạo một dự án FuelPHP

1. Cài đặt Composer

ServBay đi kèm với Composer đã được cài đặt sẵn, vì vậy bạn không cần phải cài đặt riêng.

2. Tạo một dự án FuelPHP

Sử dụng Composer để tạo một dự án FuelPHP mới:

cd /Applications/ServBay/www
mkdir servbay-fuelphp-app
cd servbay-fuelphp-app
composer create-project fuel/fuel .

3. Vào thư mục dự án

Vào thư mục dự án FuelPHP vừa được tạo:

cd /Applications/ServBay/www/servbay-fuelphp-app

Cấu hình ban đầu

1. 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 file:

return [
    'default' => [
         'connection' => [
 		    'dsn'      => 'mysql:host=localhost;dbname=fuel_dev',
 		    'username' => 'root',
 		    'password' => 'root',
         ],
    ],
];

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 thông qua máy chủ web. Trong cài đặt Host của ServBay, thêm một host mới:

  • Tên: My First FuelPHP Dev Site
  • Tên miền: servbay-fuelphp-test.local
  • Loại trang web: PHP
  • Phiên bản PHP: Chọn 8.3
  • Thư mục gốc của tài liệu: /Applications/ServBay/www/servbay-fuelphp-app/public

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;

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()
    {
        $redis = \Redis::instance();
        $redis->set('key', 'Hello Redis!');
        $value = $redis->get('key');
        return Response::forge($value);
    }

    public function action_mysql_add()
    {
        \DB::insert('users')->set([
            'name' => 'ServBay',
            'email' => 'demo@servbay.test',
        ])->execute();
        return Response::forge('User added');
    }

    public function action_mysql()
    {
        $users = \DB::select()->from('users')->execute()->as_array();
        return Response::forge(json_encode($users));
    }
}

Truy cập Trang Web

Mở trình duyệt và truy cập URL sau:

https://servbay-fuelphp-test.local: Bạn sẽ thấy trang hiển thị thông báo "Hello ServBay!".

Ví dụ về Cơ sở dữ liệu NoSQL

Ví dụ về Memcached

1. Cài đặt Mở rộng Memcached

Mở rộng Memcached đã được cài đặt sẵn trong ServBay, không cần cài đặt thêm.

2. Cấu hình Memcached

Cấu hình thông tin kết nối Memcached trong tệp fuel/app/config/cache.php:

return [
    'driver' => 'memcached',
    'memcached' => [
        'cache_id' => 'fuel',
        'servers' => [
             'default' => [
                'host'   => '127.0.0.1',
                'port'   => 11211,
                'weight' => 100,
            ],
        ],
    ],
];

3. Thêm Định tuyến

Thêm đoạn mã sau vào tệp fuel/app/config/routes.php:

return array(
    'memcached' => 'welcome/memcached',
)

4. Sử dụng Memcached

Sử dụng bộ nhớ cache trong controller:

public function action_memcached()
{
    Cache::set('key', 'Hello Memcached!', 60);
    $value = Cache::get('key');

    return Response::forge($value);
}

5. Mở trình duyệt và truy cập: https://servbay-fuelphp-test.local/redis

Ví dụ về Cơ sở dữ liệu Quan hệ

Tạo Sơ đồ Cơ sở dữ liệu và Tệp Di chuyển

1. Tạo Tệp Di chuyển

Sử dụng công cụ Oil của FuelPHP để tạo một tệp di chuyển:

php oil g migration create_users_table
 

2. Chỉnh sửa Tệp Di chuyển

Chỉnh sửa tệp di chuyển mới được tạo trong thư mục fuel/app/migrations để định nghĩa cấu trúc bảng cơ sở dữ liệu:

<?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');
     }
 }

3. Chạy Di chuyển

Sử dụng công cụ Oil của FuelPHP để chạy di chuyển và tạo bảng cơ sở dữ liệu:

php oil refine migrate

Ví dụ về MySQL

1. 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:

 return [
  'default' => [
 	'connection' => [
 		'dsn'      => 'mysql:host=localhost;dbname=fuel_dev',
 		'username' => 'root',
 		'password' => 'root',
     ],
  ],
];

2. Write User Data

Write user data in the controller:

public function action_mysql_add()
{
    DB::insert('users')->set([
        'name' => 'ServBay',
        'email' => 'demo@servbay.test',
    ])->execute();

    return Response::forge('User added');
}

3. Sử dụng MySQL

Gọi cơ sở dữ liệu trong controller:

public function action_mysql()
{
    $users = DB::select()->from('users')->execute()->as_array();
    return Response::forge(json_encode($users));
}

Bằng cách làm theo các bước trên, bạn đã tạo và chạy thành công một 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, và kết nối với các cơ sở dữ liệu khác nhau để lấy dữ liệu. Chúng tôi hy vọng bài viết này sẽ giúp bạn bắt đầu với FuelPHP và áp dụng nó vào các dự án của bạn.