Membuat dan Menjalankan Projek PHPixie di macOS Dengan ServBay
PHPixie ialah rangka kerja PHP yang ringan dan berprestasi tinggi, direka untuk pembangunan aplikasi web yang pantas. Ia mengikuti corak HMVC (Hierarchical Model-View-Controller), menawarkan struktur kod yang jelas dan kecekapan pemprosesan yang tinggi. Kesederhanaan, fleksibiliti dan kelajuan PHPixie menjadikannya pilihan ramai pembangun.
Ciri-ciri Utama dan Kelebihan PHPixie
- Ringan: Sistem teras PHPixie sangat minimal, hanya mengandungi komponen penting yang diperlukan untuk membangun aplikasi. Permulaan dan operasi sangat pantas.
- Berprestasi Tinggi: Direka secara efisien untuk mengendalikan permintaan selari dengan cekap; sesuai untuk aplikasi dengan keperluan prestasi tinggi.
- Mudah Dipelajari: Menyediakan API yang mudah difahami dan dokumentasi yang lengkap, memudahkan pembangun menguasai penggunaannya dengan cepat.
- Fleksibel: Struktur rangka kerja yang kurang terikat membenarkan pembangun memilih atau mengintegrasikan pustaka dan komponen pihak ketiga mengikut keperluan projek.
- Komuniti Aktif: Komuniti pembangun yang proaktif menawarkan pelbagai sambungan pihak ketiga dan sokongan sumber.
PHPixie membantu anda membina aplikasi web berkualiti tinggi dan berprestasi cepat, sesuai dari projek kecil hinggalah ke aplikasi perusahaan.
Membuat & Menjalankan Projek PHPixie Menggunakan ServBay
Panduan ini akan membantu anda menggunakan persekitaran pembangunan web tempatan yang disediakan ServBay untuk menyiapkan dan menjalankan projek PHPixie. Kita akan menggunakan PHP terintegrasi ServBay, Composer sebagai pengurus kebergantungan, dan ciri "Websites" untuk mengkonfigurasi pelayan web serta akses tempatan ke projek dan integrasi pangkalan data/cache.
Syarat Awal
- ServBay telah dipasang dan berjalan di macOS. ServBay telah pun mengintegrasikan PHP, Composer, pangkalan data (MySQL, PostgreSQL, MongoDB, Redis dan lain-lain), serta pelayan web Caddy.
- Anda faham operasi asas terminal.
Membuat Projek PHPixie
Laluan Simpanan Website yang Disyorkan
ServBay menyarankan supaya projek website tempatan diletakkan dalam direktori /Applications/ServBay/www
untuk pengurusan yang mudah dan kawalan akses ServBay.
- Pastikan Composer Telah Dipasang: ServBay sudah dilengkapi dengan Composer – anda tidak perlu memasang secara berasingan. Anda boleh sahkan dengan membuka terminal dan taip
composer --version
. - Cipta Direktori Projek: Dalam direktori root yang disyorkan oleh ServBay, buat folder baharu untuk projek PHPixie dan masuk ke direktori tersebut:bash
cd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app
1
2
3 - Cipta Projek PHPixie Dengan Composer: Jalankan perintah Composer di direktori projek untuk mendapatkan template projek PHPixie:bashComposer akan memuat turun PHPixie dan kebergantungan ke direktori ini.
composer create-project phpixie/project .
1
Konfigurasi Pelayan Web
Gunakan ciri Websites ServBay untuk menetapkan pelayan web Caddy agar dapat menunjuk dan menjalankan projek PHPixie anda dengan betul.
Buka antara muka aplikasi ServBay.
Navigasi ke senarai Websites.
Klik untuk menambah website baharu.
Isikan maklumat konfigurasi:
- Nama: Contohnya
My First PHPixie Dev Site
(hanya untuk pengenalan dalaman ServBay). - Domain: Contoh
servbay-phpixie-test.local
(nama domain tempatan untuk akses melalui pelayar web). - Jenis Website: Pilih
PHP
. - Versi PHP: Pilih versi PHP yang diinginkan, cth
8.3
. - Document Root: Arahkan ke folder
web
dalam projek:/Applications/ServBay/www/servbay-phpixie-app/web
.
Kenapa Pilih Direktori
/web
?Fail permulaan projek PHPixie ialah
web/index.php
. Untuk keselamatan dan amalan terbaik, root pelayan web mesti menunjuk terus ke direktoriweb
(yang mengandungi fail permulaan) dan bukannya folder projek utama. Ini mengelak pendedahan fail sensitif seperti fail konfigurasi dan folder vendor melalui web.- Nama: Contohnya
Simpan konfigurasi. ServBay akan automatik menetapkan pelayan Caddy dan mengemas kini fail hosts tempatan anda (jika perlu) supaya
servbay-phpixie-test.local
menghala ke ServBay pada komputer anda.
Untuk langkah terperinci, rujuk Tambah Website Pertama.
Menambah Kod Contoh
Untuk menguji dan menunjukkan integrasi pangkalan data serta cache, seterusnya kita akan menambah beberapa kod contoh ke dalam projek.
Cipta Controller Contoh: Tambahkan kod berikut pada fail
src/App/HTTP/Controller/Home.php
. Jika folder atau fail belum wujud, anda perlu cipta secara manual.php<?php namespace App\HTTP\Controller; use PHPixie\HTTP\Request; use PHPixie\Template; use PHPixie\Database\Query; // Import kelas Query class Home extends \PHPixie\Controller { protected $template; public function __construct(Template $template) { $this->template = $template; } // Action default laman utama public function action_index(Request $request) { // Render template assets/templates/app/home.php return $this->template->render('app:home'); } // Action contoh Memcached public function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached dari ServBay!', 60); // Simpan data dengan tempoh 60 saat $value = $cache->get('key'); // Ambil data return $this->response()->string($value); // Respons string } // Action contoh Redis public function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis dari ServBay!'); // Simpan data $value = $redis->get('key'); // Ambil data return $this->response()->string($value); // Respons string } // Action tambah pengguna (MySQL/PostgreSQL) public function action_add_user(Request $request) { // Dapatkan pembina query dari komponen database $query = $this->components->database()->query(); // Masukkan data pengguna baharu ke table 'users' $query->insert('users')->data([ 'name' => 'ServBay Demo User', 'email' => 'demo-' . uniqid() . '@servbay.test', // Email unik ])->execute(); // Jalankan operasi memasukkan return $this->response()->string('Pengguna berjaya ditambah.'); // Mesej berjaya } // Action untuk senarai pengguna (MySQL/PostgreSQL) public function action_list_users(Request $request) { // Dapatkan pembina query dari komponen database $query = $this->components->database()->query(); // Cari semua pengguna dalam table 'users' $users = $query->select('*')->from('users')->execute()->fetchAll(); // Jalankan dan ambil semua hasil return $this->response()->json($users); // Respons senarai pengguna dalam bentuk JSON } }
1
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67Cipta Template Contoh: Tambahkan kod berikut dalam
assets/templates/app/home.php
. Jika folder atau fail belum wujud, sila cipta secara manual.php<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Selamat Datang ke PHPixie di ServBay</title> <style> body { font-family: sans-serif; line-height: 1.6; margin: 20px; } h1 { color: #333; } p { margin-bottom: 15px; } code { background-color: #f4f4f4; padding: 2px 5px; border-radius: 4px; } ul { list-style: none; padding: 0; } li { margin-bottom: 10px; } li a { text-decoration: none; color: #007bff; } li a:hover { text-decoration: underline; } </style> </head> <body> <h1>Selamat Datang ke PHPixie di ServBay</h1> <p>Laman ini dijana secara dinamik oleh aplikasi PHPixie anda yang sedang berjalan di ServBay.</p> <h2>Pautan Fungsi Contoh:</h2> <ul> <li><a href="/home/memcached">Uji Memcached</a></li> <li><a href="/home/redis">Uji Redis</a></li> <li><a href="/home/add_user">Tambah Pengguna ke Database</a></li> <li><a href="/home/list_users">Senaraikan Pengguna dalam Database</a></li> </ul> <p>Pastikan anda sudah selesai langkah konfigurasi database dan cache yang berkaitan.</p> </body> </html>
1
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
Mengakses Website Asas
Selepas konfigurasi ServBay dan penambahan kod contoh, anda boleh mengakses domain yang anda tetapkan melalui pelayar:
- Buka pelayar dan lawati
https://servbay-phpixie-test.local
. - Anda sepatutnya melihat halaman bertajuk "Selamat Datang ke PHPixie di ServBay" bersama beberapa pautan fungsi contoh.
Jika tidak berjaya, semak:
- Adakah ServBay sedang berjalan.
- Konfigurasi website dalam ServBay betul, terutamanya domain, jenis website, dan root directory.
- Fail hosts tempatan telah menghala
servbay-phpixie-test.local
ke ServBay (selalunya ServBay akan mengurus ini secara automatik). - Versi PHP yang diperlukan sudah aktif dalam ServBay.
Contoh Integrasi Database & Cache
PHPixie menyokong pelbagai pangkalan data dan sistem cache secara terbina dalam. ServBay menyediakan MySQL, PostgreSQL, Redis dan Memcached, membolehkan integrasi mudah ke projek PHPixie.
Nota Penting: Sebelum membuat operasi pada pangkalan data, pastikan perkhidmatan database (cth MySQL atau PostgreSQL) telah diaktifkan dalam ServBay dan anda sudah mencipta database untuk projek ini. Dalam contoh, nama database ialah servbay_phpixie_app
. Anda boleh gunakan alat pengurusan DB seperti Sequel Ace, Postico, TablePlus atau terminal. Pengguna default ServBay biasanya root
, dan kata laluan password
(sila semak konfigurasi anda).
Konfigurasi Sambungan Database
Bergantung jenis database (MySQL/PostgreSQL), edit fail assets/config/database.php
di root projek. Alamat database default dalam ServBay selalunya 127.0.0.1
.
Contoh Konfigurasi MySQL (assets/config/database.php
):
php
<?php
return [
'default' => [
'driver' => 'pdo',
// Sesuaikan connection string dengan jenis database dan konfigurasi ServBay anda
'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // Pengguna default ServBay
'password' => 'password', // Kata laluan default ServBay (ubah mengikut tetapan anda)
'options' => []
]
];
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Contoh Konfigurasi PostgreSQL (assets/config/database.php
):
php
<?php
return [
'default' => [
'driver' => 'pdo',
// Sesuaikan connection string dengan jenis database dan konfigurasi ServBay anda
'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // Pengguna default ServBay
'password' => 'password', // Kata laluan default ServBay (ubah mengikut tetapan anda)
'options' => []
]
];
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Cipta Jadual Database (Menggunakan Migrasi)
PHPixie menyediakan CLI untuk pengurusan migrasi database – memudahkan kawalan versi dan struktur database.
- Buka Terminal: Tukar ke direktori root projek PHPixie:bash
cd /Applications/ServBay/www/servbay-phpixie-app
1 - Cipta Fail Migrasi: Jalankan CLI PHPixie untuk jana migrasi baharu bagi jadual
users
:bashSatu fail PHP migrasi akan tercipta di direktoriphp pixie generate:migration create_users_table
1assets/migrations
dengan nama masa (timestamp). - Edit Fail Migrasi: Buka fail migrasi baharu di
assets/migrations
(cthYYYY_MM_DD_HHMMSS_create_users_table.php
). Edit kaedahup()
dandown()
untuk mendefinisikan struktur jadualusers
:php<?php use PHPixie\Database\Migration; use PHPixie\Database\Schema\Table; class CreateUsersTable extends Migration { public function up() { // Bina jadual 'users' menggunakan schema builder $this->schema->create('users', function(Table $table) { $table->increments('id'); // Primary key auto increment $table->string('name'); // Lajur nama $table->string('email')->unique(); // Lajur email, unik $table->timestamps(); // Kolum timestamp created_at dan updated_at }); } public function down() { // Hapuskan jadual 'users' $this->schema->drop('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 - Jalankan Migrasi: Dalam terminal pada direktori projek, jalankan arahan migrasi untuk buat jadual
users
:bashJika berjaya, paparan terminal akan menunjukkan migrasi selesai. Anda juga boleh sahkan jadualphp pixie migrate
1users
wujud dalam databaseservbay_phpixie_app
menggunakan alat pengurusan database.
Menggunakan Database Relasi (MySQL/PostgreSQL)
Dalam controller contoh tadi (src/App/HTTP/Controller/Home.php
), kita sudah menambah kaedah action_add_user
dan action_list_users
untuk tunjuk cara menggunakan komponen database PHPixie dengan MySQL atau PostgreSQL.
- Tambah Pengguna: Layari
https://servbay-phpixie-test.local/home/add_user
untuk tambah pengguna baharu ke jadualusers
. - Senarai Pengguna: Layari
https://servbay-phpixie-test.local/home/list_users
untuk paparan senarai semua pengguna dalam format JSON.
Konfigurasi & Penggunaan Database NoSQL (Memcached/Redis)
ServBay telah pre-pasang Memcached dan Redis serta ekstensi PHPnya. Anda hanya perlu tambah konfigurasi berikut dalam projek PHPixie untuk mula menggunakan fungsi cache.
Konfigurasi Memcached (assets/config/cache.php
):
Edit atau cipta fail assets/config/cache.php
dan tambah konfigurasi Memcached:
php
<?php
return [
'default' => [
'driver' => 'memcached',
'servers' => [
[
'host' => '127.0.0.1', // Alamat default Memcached ServBay
'port' => 11211, // Port default Memcached ServBay
'weight' => 100,
],
],
],
];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Konfigurasi Redis (assets/config/redis.php
):
Edit atau cipta fail assets/config/redis.php
dan tambah konfigurasi Redis:
php
<?php
return [
'default' => [
'hostname' => '127.0.0.1', // Alamat default Redis ServBay
'port' => 6379, // Port default Redis ServBay
'timeout' => 0,
'database' => 0, // Indeks database Redis
],
];
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Penggunaan Memcached/Redis:
Merujuk controller contoh (src/App/HTTP/Controller/Home.php
), kaedah action_memcached
dan action_redis
sudah menunjukkan cara menggunakan komponen cache PHPixie, yang boleh dikonfigurasi untuk gunakan Memcached atau Redis.
- Uji Memcached: Layari
https://servbay-phpixie-test.local/home/memcached
untuk tulis dan baca data dari Memcached. - Uji Redis: Layari
https://servbay-phpixie-test.local/home/redis
untuk tulis dan baca data dari Redis.
Jangan lupa pastikan pakej berkaitan (Memcached dan Redis) telah dimulakan dalam ServBay.
Rumusan
Kini anda telah berjaya membuat, mengkonfigurasi dan menjalankan projek PHPixie di persekitaran pembangunan tempatan macOS menggunakan ServBay. Anda mempelajari cara menggunakan Composer untuk cipta projek, konfigurasi pelayan web dengan ciri Websites ServBay, serta asas integrasi pangkalan data dan cache, dan menguji fungsi-fungsi tersebut.
Persekitaran terintegrasi ServBay memudahkan proses pemasangan dan persediaan pembangunan PHP, membolehkan anda memberi fokus terus kepada pembangunan kod. Diharap panduan ini dapat membantu anda bermula membina projek web seterusnya dengan PHPixie!