Tạo và chạy dự án PHPixie
PHPixie là gì?
PHPixie là một framework PHP nhẹ, phù hợp cho việc phát triển nhanh các ứng dụng web hiệu suất cao. Nó tuân theo mô hình thiết kế HMVC (Hierarchical Model-View-Controller), cung cấp cấu trúc mã đơn giản và hiệu suất cao. PHPixie nổi tiếng với tính đơn giản, linh hoạt và hiệu suất cao, là sự lựa chọn hàng đầu của nhiều nhà phát triển.
Các tính năng và lợi ích chính của PHPixie
- Nhẹ nhàng: Hệ thống lõi của PHPixie rất nhỏ gọn, chỉ bao gồm các thành phần cần thiết, tốc độ tải rất nhanh.
- Hiệu suất cao: PHPixie nổi tiếng với hiệu suất và tốc độ cao, có thể xử lý các yêu cầu đồng thời lớn.
- Dễ học: Cung cấp API đơn giản và dễ sử dụng cùng tài liệu phong phú, giúp nhà phát triển nhanh chóng làm quen.
- Linh hoạt: Cho phép nhà phát triển tự do lựa chọn và sử dụng các thư viện và plugin của bên thứ ba, dễ dàng mở rộng và tùy chỉnh chức năng.
- Hỗ trợ cộng đồng mạnh mẽ: Có cộng đồng phát triển viên hoạt động và nhiều tiện ích mở rộng của bên thứ ba.
PHPixie giúp các nhà phát triển nhanh chóng xây dựng các ứng dụng web hiệu suất cao và chất lượng cao, phù hợp với mọi quy mô dự án.
Tạo và chạy dự án PHPixie với ServBay
Trong bài viết này, chúng ta sẽ sử dụng môi trường PHP do ServBay cung cấp để tạo và chạy một dự án PHPixie. Chúng ta sẽ sử dụng tính năng 'Host' của ServBay để cấu hình máy chủ web và thực hiện việc truy cập dự án một cách đơn giản.
Lưu ý: Nếu bạn từng là người 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ố điểm thay đổi quan trọng cần lưu ý:
Cấu hình Caddy
ServBay đã tích hợp sẵn Caddy và cấu hình mặc định đã được tối ưu hóa và kiểm tra. Nhà phát triển chỉ cần sử dụng tính năng 'Host' của ServBay để quản lý trang web mà không cần chỉnh sửa tệp cấu hình Caddy thủ công.
Quy tắc Rewrite và .htaccess
Trong NGINX và Apache, nhà phát triển thường phải tự viết quy tắc Rewrite và tệp .htaccess để xử lý URL rewrite và các cấu hình khác. Tuy nhiên, ServBay đã cấu hình sẵn các quy tắc của Caddy, vì vậy, trừ khi có yêu cầu đặc biệt, nhà phát triển không cần tự viết các quy tắc này.
Tìm hiểu thêm
Thông tin liên quan, vui lòng tham khảo Rewrite và htaccess, Cách di chuyển trang web Apache sang ServBay, Cách di chuyển trang web NGINX sang ServBay.
Tạo dự án PHPixie
TIP
ServBay khuyến nghị nhà phát triển đặt trang web trong thư mục /Applications/ServBay/www
để dễ dàng quản lý.
Cài đặt Composer
ServBay đã tích hợp sẵn Composer, không cần cài đặt riêng.
Tạo dự án PHPixie
Sử dụng Composer để tạo một dự án PHPixie mới:
bashcd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app composer create-project phpixie/project .
1
2
3
4Chuyển vào thư mục dự án
Chuyển vào thư mục dự án PHPixie mới tạo:
bashcd /Applications/ServBay/www/servbay-phpixie-app
1
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:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
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 PHPixie. Trong phần 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 web:
PHP
- Phiên bản PHP: chọn
8.3
- Thư mục gốc trang web:
/Applications/ServBay/www/servbay-phpixie-app/web
Chi tiết các bước cấu hình, vui lòng tham khảo Thêm trang web đầu tiên.
Thêm mã ví dụ
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' => '[email protected]',
])->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);
}
}
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
46
47
48
49
50
51
52
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>
2
3
4
5
6
7
8
9
10
11
12
Truy cập trang web
Mở trình duyệt và truy cập các URL sau:
https://servbay-phpixie-test.local
:Bạn sẽ thấy trang web hiển thịWelcome to PHPixie
.
Ví dụ về cơ sở dữ liệu NoSQL
Ví dụ về Memcached
Cài đặt phần mở rộng Memcached
Trong ServBay, phần mở rộng Memcached đã được cài đặt sẵ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:phpreturn [ 'default' => [ 'driver' => 'memcached', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], ];
1
2
3
4
5
6
7
8
9
10
11
12Sử dụng Memcached
Trong controller, sử dụng cache:
phppublic function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Ví dụ về Redis
Cài đặt phần mở rộng Redis
Trong ServBay, phần mở rộng Redis đã được cài đặt sẵn, 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:phpreturn [ 'default' => [ 'hostname' => '127.0.0.1', 'port' => 6379, 'timeout' => 0, 'database' => 0, ], ];
1
2
3
4
5
6
7
8Sử dụng Redis
Trong controller, sử dụng cache:
phppublic function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Ví dụ về cơ sở dữ liệu quan hệ
Tạo cấu trúc cơ sở dữ liệu và tệp migration
Tạo tệp migration
Sử dụng công cụ CLI của PHPixie để tạo tệp migration:
bashphp pixie generate:migration create_users_table
1Chỉnh sửa tệp migration
Trong thư mục
assets/migrations
, tìm tệp migration mới tạo và chỉnh sửa nó để định nghĩa cấu trúc bảng cơ sở dữ liệu:phppublic 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'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14Chạy migration
Sử dụng công cụ CLI của PHPixie để chạy migration, tạo bảng cơ sở dữ liệu:
bashphp pixie migrate
1
Ví dụ về 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:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Ghi dữ liệu người dùng
Trong controller, ghi dữ liệu người dùng:
phppublic function action_mysql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Sử dụng MySQL
Trong controller, gọi cơ sở dữ liệu:
phppublic function action_mysql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Ví dụ về 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:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Ghi dữ liệu người dùng
Trong controller, ghi dữ liệu người dùng:
phppublic function action_pgsql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Sử dụng PostgreSQL
Trong controller, gọi cơ sở dữ liệu:
phppublic function action_pgsql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Bằng cách làm theo các bước trên, bạn đã thành công tạo và chạy một dự án PHPixie, sử dụng các tính năng do ServBay cung cấp để quản lý và truy cập dự án của bạn, đồng thời kết nối và gọi dữ liệu từ nhiều cơ sở dữ liệu khác nhau. Hy vọng bài viết này sẽ giúp bạn nhanh chóng làm quen với PHPixie và áp dụng vào dự án của mình.