Tạo và chạy dự án với PHPixie dành cho người mới bắt đầu

folder Kiến thức công nghệ
today 01/10/2024 21:11
PHPixie là một framework PHP nhẹ, được thiết kế để phát triển nhanh các ứng dụng web hiệu suất cao. Nó tuân theo mẫu thiết kế HMVC (Hierarchical Model-View-Controller), cung cấp cấu trúc mã sạch và hiệu suất cao. PHPixie nổi tiếng với sự đơn giản, linh hoạt và hiệu suất cao, làm cho nó trở thành lựa chọn phổ biến trong giới lập trình viên.
tao-va-chay-du-an-voi-phpixie-danh-cho-nguoi-moi-bat-dau

Các tính năng và lợi ích chính của PHPixie

  • Nhẹ: Hệ thống lõi của PHPixie rất nhỏ, chỉ chứa các thành phần cần thiết và rất nhanh để tải.
  • Hiệu suất cao: Được biết đến với hiệu suất hiệu quả và tốc độ, PHPixie có thể xử lý nhiều yêu cầu đồng thời.
  • Dễ học: Với API đơn giản và tài liệu hướng dẫn đầy đủ, lập trình viên có thể nhanh chóng bắt đầu.
  • Linh hoạt: Cho phép lập trình viên chọn và sử dụng các thư viện và plugin bên thứ ba, dễ dàng mở rộng và tùy chỉnh chức năng.
  • Cộng đồng hỗ trợ mạnh mẽ: PHPixie có một cộng đồng lập trình viên năng động và nhiều tiện ích mở rộng từ bên thứ ba.

Tạo và chạy một dự án PHPixie bằng ServBay

Trong bài viết này, chúng ta sẽ tạo và chạy một dự án PHPixie bằng môi trường PHP do ServBay cung cấp. Chúng ta sẽ sử dụng tính năng "Host" của ServBay để thiết lập máy chủ web và cấu hình truy cập dự án với nỗ lực tối thiểu.

Lưu ý:

Nếu bạn đã quen sử dụng NGINX hoặc Apache, ServBay sử dụng Caddy làm máy chủ web mặc định. Nếu bạn đang chuyển đổi từ NGINX hoặc Apache sang ServBay, có một số thay đổi quan trọng cần lưu ý.

Cấu hình Caddy

ServBay đi kèm với Caddy được cài đặt sẵn, và cấu hình mặc định đã được tối ưu hóa và gỡ lỗi. Các lập trình viên có thể quản lý trang web thông qua tính năng 'Host' của ServBay mà không cần phải chỉnh sửa tệp cấu hình Caddy thủ công.

Quy tắc chuyển hướng và .htaccess

Trong NGINX và Apache, các lập trình viên thường viết quy tắc chuyển hướng và tệp .htaccess của riêng mình để xử lý việc chuyển đổi URL và các cấu hình khác. Tuy nhiên, ServBay đã cung cấp các quy tắc Caddy đã được cấu hình sẵn, vì vậy bạn không cần phải tự viết các quy tắc này trừ khi có yêu cầu cụ thể.

Tạo dự án PHPixie

Mẹo

ServBay khuyên các lập trình viên đặt 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, vì vậy không cần cài đặt riêng.

Tạo một dự án PHPixie

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

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

Nhập Thư Mục Dự Án
Chuyển đến thư mục dự án PHPixie vừa tạo:

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

Cấu Hình Ban Đầu
Cấu Hình Kết Nối Cơ Sở Dữ Liệu
Trong tệp assets/config/database.php, cấu hình thông tin kết nối cơ sở dữ liệu:

return [
    'default' => [
        'driver'    => 'pdo',
        'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app',
        'user'      => 'root',
        'password'  => 'password',
        'options'   => []
    ]
];

Cấu Hình Máy Chủ Web
Sử dụng tính năng 'Host' của ServBay để truy cập dự án PHPixie qua máy chủ web. Trong cài đặt 'Host' của ServBay, thêm một host mới:

  • Tên: My First PHPixie Dev Site
  • Tên miền: servbay-phpixie-test.local
  • Loại trang: PHP
  • Phiên bản PHP: Chọn 8.3
  • Thư mục gốc: /Applications/ServBay/www/servbay-phpixie-app/web

Để biết thêm chi tiết, hãy tham khảo phần Thêm Trang Đầu Tiên của bạn.

Thêm Mã Mẫu
Trong tệp src/App/HTTP/Controller/Home.php, thêm mã sau:

namespace AppHTTPController;

use PHPixieHTTPRequest;
use PHPixieTemplate;

class Home extends PHPixieController
{
    protected $template;

    public function __construct(Template $template)
    {
        $this->template = $template;
    }

    public function action_index(Request $request)
    {
        return $this->template->render('app:home');
    }

    public function action_memcached(Request $request)
    {
        $cache = $this->components->cache();
        $cache->set('key', 'Hello Memcached!', 60);
        $value = $cache->get('key');
        return $this->response()->string($value);
    }

    public function action_redis(Request $request)
    {
        $redis = $this->components->redis();
        $redis->set('key', 'Hello Redis!');
        $value = $redis->get('key');
        return $this->response()->string($value);
    }

    public function action_mysql_add(Request $request)
    {
        $query = $this->components->database()->query();
        $query->insert('users')->data([
            'name' => 'ServBay',
            'email' => 'demo@servbay.test',
        ])->execute();
        return $this->response()->string('User added');
    }

    public function action_mysql(Request $request)
    {
        $query = $this->components->database()->query();
        $users = $query->select('*')->from('users')->execute()->fetchAll();
        return $this->response()->json($users);
    }
}

Trong tệp assets/templates/app/home.php, thêm mã sau:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Welcome to PHPixie</title>
</head>
<body>
    <h1>Welcome to PHPixie</h1>
    <p>The page you are looking at is being generated dynamically by PHPixie.</p>
</body>
</html>

Truy Cập Trang Web
Mở trình duyệt và truy cập vào URL sau:

https://servbay-phpixie-test.local: Bạn sẽ thấy trang hiển thị "Welcome to PHPixie".

Ví Dụ Cơ Sở Dữ Liệu NoSQL
Ví Dụ Memcached
Cài Đặt Extension Memcached
Extension Memcached đã được cài đặt sẵn trong ServBay, nên không cần cài đặt thêm.

Cấu Hình Memcached
Trong tệp assets/config/cache.php, cấu hình thông tin kết nối Memcached:

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

Sử Dụng Memcached
Sử dụng cache trong controller:

public function action_memcached(Request $request)
{
    $cache = $this->components->cache();
    $cache->set('key', 'Hello Memcached!', 60);
    $value = $cache->get('key');
    return $this->response()->string($value);
}

Ví Dụ Redis
Cài Đặt Extension Redis
Extension Redis đã được cài đặt sẵn trong ServBay, không cần cài đặt thêm.

Cấu Hình Redis
Trong tệp assets/config/redis.php, cấu hình thông tin kết nối Redis:

return [
    'default' => [
        'hostname' => '127.0.0.1',
        'port'     => 6379,
        'timeout'  => 0,
        'database' => 0,
    ],
];

Sử Dụng Redis
Sử dụng cache trong controller:

public function action_redis(Request $request)
{
    $redis = $this->components->redis();
    $redis->set('key', 'Hello Redis!');
    $value = $redis->get('key');
    return $this->response()->string($value);
}

Ví Dụ Cơ Sở Dữ Liệu Quan Hệ
Tạo Cấu Trúc Cơ Sở Dữ Liệu và Tệp Di Trú
Tạo Tệp Di Trú
Sử dụng công cụ CLI của PHPixie để tạo tệp di trú:

php pixie generate:migration create_users_table

Chỉnh Sửa Tệp Di Trú
Trong thư mục assets/migrations, tìm tệp di trú mới tạo và chỉnh sửa để định nghĩa cấu trúc bảng cơ sở dữ liệu:

public function up()
{
    $this->schema->create('users', function($table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamps();
    });
}

public function down()
{
    $this->schema->drop('users');
}

Chạy Di Trú
Sử dụng công cụ CLI của PHPixie để chạy di trú và tạo bảng cơ sở dữ liệu:

php pixie migrate

Ví Dụ MySQL
Cấu Hình MySQL
Trong tệp assets/config/database.php, cấu hình thông tin kết nối MySQL:

return [
    'default' => [
        'driver'    => 'pdo',
        'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app',
        'user'      => 'root',
        'password'  => 'password',
        'options'   => []
    ]
];

Chèn Dữ Liệu Người Dùng
Sử dụng controller để chèn dữ liệu người dùng:

public function action_mysql_add(Request $request)
{
    $query = $this->components->database()->query();
    $query->insert('users')->data([
        'name' => 'ServBay',
        'email' => 'demo@servbay.test',
    ])->execute();
    return $this->response()->string('User added');
}

Sử Dụng MySQL
Gọi cơ sở dữ liệu trong controller:

public function action_mysql(Request $request)
{
    $query = $this->components->database()->query();
    $users = $query->select('*')->from('users')->execute()->fetchAll();
    return $this->response()->json($users);
}

Ví Dụ PostgreSQL
Cấu Hình PostgreSQL
Trong tệp assets/config/database.php, cấu hình thông tin kết nối PostgreSQL:

return [
    'default' => [
        'driver'    => 'pdo',
        'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app',
        'user'      => 'root',
        'password'  => 'password',
        'options'   => []
    ]
];

Chèn Dữ Liệu Người Dùng
Sử dụng controller để chèn dữ liệu người dùng:

public function action_pgsql_add(Request $request)
{
    $query = $this->components->database()->query();
    $query->insert('users')->data([
        'name' => 'ServBay',
        'email' => 'demo@servbay.test',
    ])->execute();
    return $this->response()->string('User added');
}

Sử Dụng PostgreSQL
Gọi cơ sở dữ liệu trong controller:

public function action_pgsql(Request $request)
{
    $query = $this->components->database()->query();
    $users = $query->select('*')->from('users')->execute()->fetchAll();
    return $this->response()->json($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 PHPixie, quản lý và truy cập dự án bằng các chức năng của ServBay, cũng như kết nối đến nhiều cơ sở dữ liệu và gọi dữ liệu. Hy vọng bài viết này giúp bạn bắt đầu với PHPixie và áp dụng vào các dự án của mình.

Bài viết cùng chuyên mục

hatonet

Hướng dẫn cài và sử dụng vue-object-to-formdata cho dự án nuxtjs

today 11/12/2024 22:15
vue-object-to-formdata là một thư viện JavaScript được thiết kế để chuyển đổi một đối tượng JavaScript (Object) thành đối tượng FormData. Đây là một đối tượng có thể dễ dàng sử dụng trong các yêu cầu HTTP để gửi dữ liệu, đặc biệt là khi bạn cần gửi dữ liệu như là một phần của biểu mẫu (form), ví dụ: khi upload file hoặc gửi dữ liệu dưới dạng multipart/form-data.
Xem thêm arrow_right_alt
hatonet

Hướng dẫn cài đặt và sử dụng v-tooltip trong project nuxt js

today 04/12/2024 21:34
v-tooltip là một thư viện Vue.js nhẹ, dễ sử dụng, giúp tạo ra các tooltip (hộp thông báo khi người dùng di chuột qua một phần tử) trong các ứng dụng Vue. Tooltip là một yếu tố giao diện người dùng (UI) thông báo hoặc giải thích ngắn gọn về một đối tượng khi người dùng hover (di chuột) hoặc focus vào phần tử đó.
Xem thêm arrow_right_alt
hatonet

Hướng dẫn cài đặt và sử dụng thư viện Elementjs nuxtjs

today 28/11/2024 23:14
Thư viện Element UI là một bộ thư viện giao diện người dùng mạnh mẽ, cung cấp nhiều thành phần (components) tùy chỉnh sẵn, giúp bạn xây dựng giao diện ứng dụng dễ dàng và nhanh chóng. Đối với Nuxt.js , bạn có thể tích hợp và sử dụng Element UI một cách đơn giản. Dưới đây là hướng dẫn từng bước.
Xem thêm arrow_right_alt

Việc làm tại Hatonet

Actively collaborate with team leads to develop a cohesive vision for each Agent that ensures audience resonance, and successful integration with the existing cast through personality, visual aesthetics, and gameplay Lead, manage, and mentor a high performing, healthy, and collaborative concept art team Work with production to ensure your team’s timely and successful delivery of products Maintain and contribute to artifacts that inform, align, and empower teams to successfully create character concept art in the VALORANT style

  • GWS
  • Trưởng phòng IT
Onsite
vietnam_flag