Tạo và chạy dự án với PHPixie dành cho người mới bắt đầu
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 App\HTTP\Controller;
use PHPixie\HTTP\Request;
use PHPixie\Template;
class Home extends \PHPixie\Controller
{
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.
Hatonet kết nối doanh nghiệp ITO toàn cầu.
Giúp các doanh nghiệp IT Việt Nam tiết kiệm chi phí,tìm kiếm
đối tác,mở rộng mạng lưới.
- Mở rộng kênh tìm kiếm khách hàng gia tăng doanh thu.
- Tiết kiệm chi phí quan hệ tìm đối tác.
- Ứng tuyển trực tuyến bất cứ lúc nào khi có yêu cầu.
- Trực tiếp liên kết với công ty quốc tế
Liên hệ :
Email: hello@hatonet.vn
Zalo: https://zalo.me/hatonet