Membuat dan Menjalankan Proyek PHPixie di macOS dengan ServBay
PHPixie adalah framework PHP yang ringan dan berkinerja tinggi, dirancang khusus untuk pengembangan aplikasi web yang cepat. Framework ini mengikuti pola desain HMVC (Hierarchical Model-View-Controller), menawarkan struktur kode yang sederhana serta kemampuan pemrosesan yang efisien. PHPixie diminati oleh banyak pengembang karena sifatnya yang sederhana, fleksibel, dan memiliki performa tinggi.
Fitur Utama dan Keunggulan PHPixie
- Ringan: Sistem inti PHPixie sangat minimalis, hanya mencakup komponen esensial untuk membangun aplikasi. Proses startup dan eksekusi sangat cepat.
- Kinerja Tinggi: Rancangannya mengedepankan efisiensi, mampu menangani permintaan secara konkuren, cocok untuk aplikasi dengan tuntutan performa tinggi.
- Mudah Dipelajari: Menyediakan API yang jelas dan dokumentasi lengkap sehingga pengembang dapat mempelajari penggunaannya dengan cepat.
- Fleksibel: Struktur lepas dan tidak saling terkait sehingga pengembang bebas memilih serta mengintegrasikan pustaka dan komponen pihak ketiga sesuai kebutuhan proyek.
- Dukungan Komunitas Aktif: Memiliki komunitas pengembang yang dinamis dengan banyak ekstensi serta sumber daya bantuan yang tersedia.
PHPixie membantu developer membangun aplikasi web yang berkualitas dan berkinerja tinggi secara efisien, cocok untuk proyek kecil hingga aplikasi skala perusahaan besar.
Membuat dan Menjalankan Proyek PHPixie dengan ServBay
Dokumentasi ini akan membimbing Anda dalam menciptakan dan menjalankan proyek PHPixie menggunakan lingkungan pengembangan web lokal yang disediakan ServBay. Kita akan memanfaatkan lingkungan PHP terintegrasi milik ServBay, Composer sebagai pengelola dependensi, serta fitur “Website” untuk mengatur server web—memungkinkan akses lokal ke proyek Anda serta integrasi database/penyimpanan cache.
Persyaratan Awal
- ServBay sudah terpasang dan berjalan di macOS Anda. ServBay sudah terintegrasi dengan PHP, Composer, berbagai database (MySQL, PostgreSQL, MongoDB, Redis, dll.), serta server web Caddy.
- Memahami dasar penggunaan command line.
Membuat Proyek PHPixie
Rekomendasi Lokasi Penyimpanan Website
ServBay merekomendasikan untuk meletakkan semua proyek website lokal Anda di direktori /Applications/ServBay/www
agar mudah dikelola dan mendukung kontrol akses ServBay.
- Pastikan Composer sudah terpasang: ServBay sudah menyediakan Composer sejak awal, jadi Anda tidak perlu melakukan instalasi manual. Buka terminal dan ketik
composer --version
untuk verifikasi. - Buat Direktori Proyek: Di dalam direktori root website yang direkomendasikan oleh ServBay, buat folder baru untuk proyek PHPixie lalu masuk ke folder tersebut:bash
cd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app
1
2
3 - Membuat Proyek PHPixie dengan Composer: Jalankan perintah Composer berikut di folder proyek untuk mengunduh template PHPixie:bashComposer akan mengunduh PHPixie beserta dependensi ke direktori yang aktif.
composer create-project phpixie/project .
1
Konfigurasi Server Web
Gunakan fitur Website pada ServBay untuk mengatur server web Caddy sehingga dapat menjalankan proyek PHPixie Anda dengan benar.
Buka tampilan utama aplikasi ServBay.
Navigasi ke daftar Website.
Klik untuk menambah website baru.
Isi informasi konfigurasi website:
- Nama: Misal
My First PHPixie Dev Site
(hanya sebagai penanda internal pada ServBay). - Domain: Misal
servbay-phpixie-test.local
(domain lokal pengembangan yang diakses lewat browser). - Tipe Website: Pilih
PHP
. - Versi PHP: Pilih versi PHP yang diinginkan, misal
8.3
. - Document Root: Arahkan ke folder
web
di proyek Anda:/Applications/ServBay/www/servbay-phpixie-app/web
.
Mengapa directory
/web
?File entry point pada proyek PHPixie berada di
web/index.php
. Untuk alasan keamanan dan best practice, root server web harus langsung mengarah ke folderweb
ini, bukan ke level teratas proyek. Cara ini mencegah akses langsung dari web ke file-file sensitif (spt file konfigurasi dan folder vendor).- Nama: Misal
Simpan konfigurasi. ServBay akan otomatis mengatur Caddy dan memperbarui file hosts lokal Anda (jika diperlukan), sehingga
servbay-phpixie-test.local
diarahkan ke server ServBay di komputer Anda.
Untuk detail langkah, silakan lihat Menambah Website Pertama.
Menambahkan Kode Contoh
Untuk memastikan proyek berjalan dengan baik dan mendemonstrasikan integrasi database dan cache, mari tambahkan kode contoh ke dalam proyek.
Buat Controller Contoh: Tambahkan kode berikut ke file
src/App/HTTP/Controller/Home.php
. Jika file atau folder tidak ada, silakan buat 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 beranda default 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 from ServBay!', 60); // Menyimpan data, berlaku 60 detik $value = $cache->get('key'); // Mengambil data return $this->response()->string($value); // Mengembalikan response string } // action contoh Redis public function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis from ServBay!'); // Menyimpan data $value = $redis->get('key'); // Mengambil data return $this->response()->string($value); // Mengembalikan response string } // action contoh menambah user ke MySQL/PostgreSQL public function action_add_user(Request $request) { // Mendapatkan query builder dari komponen database $query = $this->components->database()->query(); // Masukkan data user baru ke tabel 'users' $query->insert('users')->data([ 'name' => 'ServBay Demo User', 'email' => 'demo-' . uniqid() . '@servbay.test', // Menggunakan email unik ])->execute(); // Jalankan operasi insert return $this->response()->string('User added successfully.'); // Pesan sukses } // action contoh mengambil daftar user dari MySQL/PostgreSQL public function action_list_users(Request $request) { // Mendapatkan query builder dari komponen database $query = $this->components->database()->query(); // Ambil semua data user di tabel 'users' $users = $query->select('*')->from('users')->execute()->fetchAll(); // Jalankan query return $this->response()->json($users); // Kembalikan daftar user dalam format 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
67Buat Template Contoh: Tambahkan kode berikut pada
assets/templates/app/home.php
. Jika file atau folder tidak ada, buat 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>Welcome to PHPixie on 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>Welcome to PHPixie on ServBay</h1> <p>Halaman ini dihasilkan secara dinamis oleh aplikasi PHPixie Anda yang berjalan di ServBay.</p> <h2>Link Fitur Contoh:</h2> <ul> <li><a href="/home/memcached">Tes Memcached</a></li> <li><a href="/home/redis">Tes Redis</a></li> <li><a href="/home/add_user">Tambah User ke Database</a></li> <li><a href="/home/list_users">Daftar User dari Database</a></li> </ul> <p>Pastikan Anda telah menyelesaikan langkah pengaturan database dan cache terlebih dahulu.</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 Situs Dasar
Setelah konfigurasi website di ServBay selesai dan kode contoh ditambahkan, Anda dapat mengakses domain yang telah diatur menggunakan browser:
- Buka browser, akses
https://servbay-phpixie-test.local
. - Anda akan melihat halaman bertuliskan "Welcome to PHPixie on ServBay" serta beberapa link fitur contoh.
Jika tidak bisa diakses, periksa:
- Apakah ServBay sedang berjalan.
- Apakah konfigurasi website di ServBay sudah benar (terutama domain, tipe website, dan document root).
- Apakah file hosts lokal Anda sudah memetakan
servbay-phpixie-test.local
dengan benar (ServBay biasanya mengatur otomatis). - Apakah versi PHP yang dipilih di ServBay sudah aktif.
Contoh Integrasi Database & Cache
PHPixie mendukung banyak sistem database dan cache secara bawaan. ServBay menyediakan paket MySQL, PostgreSQL, Redis, dan Memcached yang bisa Anda integrasikan ke dalam proyek PHPixie dengan mudah.
Catatan Penting: Sebelum melakukan operasi database, pastikan layanan database (misal MySQL atau PostgreSQL) sudah berjalan di ServBay dan Anda telah membuat database untuk proyek ini. Contoh di dokumen ini menggunakan database bernama servbay_phpixie_app
. Anda dapat membuat database ini menggunakan alat manajemen seperti Sequel Ace, Postico, TablePlus, atau melalui terminal. User database default ServBay umumnya adalah root
, password-nya password
(silakan konfirmasi pada pengaturan ServBay Anda).
Konfigurasi Koneksi Database
Sesuaikan dengan jenis database Anda (MySQL atau PostgreSQL), edit file assets/config/database.php
di root proyek. Alamat database default ServBay biasanya adalah 127.0.0.1
.
Contoh konfigurasi MySQL (assets/config/database.php
):
php
<?php
return [
'default' => [
'driver' => 'pdo',
// String koneksi sesuaikan dengan tipe database & pengaturan ServBay Anda
'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // user default ServBay
'password' => 'password', // password default ServBay (ubah sesuai pengaturan)
'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',
// String koneksi sesuaikan dengan tipe database & pengaturan ServBay Anda
'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app',
'user' => 'root', // user default ServBay
'password' => 'password', // password default ServBay (ubah sesuai pengaturan)
'options' => []
]
];
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Membuat Tabel Database (Dengan Migrasi)
PHPixie menyediakan CLI untuk mengelola migrasi database, yaitu pengaturan versi struktur database.
- Buka terminal: Masuk ke direktori root proyek PHPixie Anda:bash
cd /Applications/ServBay/www/servbay-phpixie-app
1 - Buat file migrasi: Jalankan perintah CLI PHPixie untuk membuat migration baru—misal untuk membuat tabel
users
:bashFile baru akan dihasilkan di folderphp pixie generate:migration create_users_table
1assets/migrations
dengan nama berisi timestamp. - Edit file migrasi: Buka file migrasi baru di folder
assets/migrations
(misalYYYY_MM_DD_HHMMSS_create_users_table.php
), lalu definisikan struktur tabelusers
pada methodup()
dandown()
:php<?php use PHPixie\Database\Migration; use PHPixie\Database\Schema\Table; class CreateUsersTable extends Migration { public function up() { // Membuat tabel 'users' menggunakan schema builder $this->schema->create('users', function(Table $table) { $table->increments('id'); // Primary key auto increment $table->string('name'); // Kolom nama $table->string('email')->unique(); // Kolom email (unik) $table->timestamps(); // Kolom timestampt created_at & updated_at }); } public function down() { // Menghapus tabel '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: Dari root proyek, jalankan perintah berikut untuk membuat tabel
users
:bashJika berhasil, akan ada pesan sukses di terminal. Anda juga bisa cek di database bahwa tabelphp pixie migrate
1users
sudah tersedia diservbay_phpixie_app
.
Menggunakan Database Relasional (MySQL/PostgreSQL)
Pada controller contoh src/App/HTTP/Controller/Home.php
di atas, sudah ditambahkan metode action_add_user
dan action_list_users
untuk menampilkan contoh interaksi PHPixie dengan database MySQL/PostgreSQL.
- Tambah User: Akses
https://servbay-phpixie-test.local/home/add_user
untuk menambah user baru ke tabelusers
. - Lihat User: Akses
https://servbay-phpixie-test.local/home/list_users
untuk melihat seluruh user dan mengembalikan data dalam format JSON.
Konfigurasi & Penggunaan Database NoSQL (Memcached/Redis)
ServBay sudah menyediakan paket Memcached dan Redis beserta ekstensi PHP-nya. Cukup konfigurasi di proyek PHPixie Anda untuk dapat langsung digunakan.
Konfigurasi Memcached (assets/config/cache.php
):
Edit atau buat file assets/config/cache.php
, tambahkan konfigurasi Memcached berikut:
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 buat file assets/config/redis.php
, tambahkan konfigurasi Redis berikut:
php
<?php
return [
'default' => [
'hostname' => '127.0.0.1', // Alamat default Redis ServBay
'port' => 6379, // Port default Redis ServBay
'timeout' => 0,
'database' => 0, // Index database Redis
],
];
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Menggunakan Memcached/Redis:
Pada controller contoh src/App/HTTP/Controller/Home.php
, sudah tersedia metode action_memcached
dan action_redis
untuk demonstrasi penggunaan komponen cache PHPixie (bisa dikonfigurasi menggunakan Memcached atau Redis).
- Tes Memcached: Akses
https://servbay-phpixie-test.local/home/memcached
untuk menulis dan membaca data Memcached. - Tes Redis: Akses
https://servbay-phpixie-test.local/home/redis
untuk menulis dan membaca data Redis.
Pastikan paket Memcached dan Redis di ServBay sudah dijalankan.
Kesimpulan
Dengan mengikuti panduan di atas, Anda telah berhasil menciptakan, mengonfigurasi, dan menjalankan proyek PHPixie menggunakan ServBay pada lingkungan lokal macOS. Anda telah mempelajari cara membuat proyek menggunakan Composer, mengatur server web lewat fitur Website di ServBay, melakukan konfigurasi database dan cache dasar, serta cara menguji fitur-fitur tersebut.
Lingkungan terintegrasi dari ServBay sangat mempermudah proses setup lingkungan pengembangan PHP, sehingga Anda bisa lebih fokus kepada pengembangan kode. Semoga panduan ini membantu Anda segera membangun proyek web berikutnya dengan PHPixie!