Membuat dan Menjalankan Proyek Phalcon
Apa itu Phalcon?
Phalcon adalah framework web PHP open-source yang berperforma tinggi, dibuat sebagai ekstensi C. Berkat cara implementasinya yang unik, Phalcon menawarkan konsumsi sumber daya yang sangat rendah dan kecepatan eksekusi luar biasa, melampaui kebanyakan framework PHP tradisional. Phalcon menerapkan pola arsitektur MVC (Model-View-Controller) dan menyediakan serangkaian komponen kaya — termasuk ORM (Object-Relational Mapping), mesin templating, routing, caching, manajemen event, dan lainnya — yang membantu pengembang membangun aplikasi web dan API yang kuat dan efisien dengan cepat.
Fitur Utama dan Keunggulan Phalcon
- Kinerja Luar Biasa: Karena berjalan sebagai ekstensi C, Phalcon menghindari overhead parsing dan loading script PHP, sehingga menghasilkan performa tingkat native.
- Efisiensi Sumber Daya: Penggunaan memori sangat rendah, cocok untuk aplikasi yang menuntut performa dan skalabilitas tinggi.
- Fitur Lengkap: Dilengkapi dengan hampir seluruh komponen inti pengembangan web, mengurangi kebutuhan akan library pihak ketiga.
- Mudah Digunakan: Menawarkan API yang jelas dan konsisten serta dokumentasi lengkap, sehingga pemula bisa belajar dengan cepat.
- Desain Modular: Tiap komponen dirancang secara terpisah, memungkinkan pengembang memilih atau mengganti bagian sesuai kebutuhan proyek.
- Keamanan: Tersedia berbagai komponen keamanan, seperti filter input dan perlindungan CSRF.
Phalcon adalah pilihan ideal untuk membangun aplikasi web dan API yang cepat dan dapat diskalakan, terutama bagi proyek yang sangat menuntut efisiensi sumber daya dan kecepatan.
Membuat dan Menjalankan Proyek Phalcon Menggunakan ServBay
ServBay adalah lingkungan pengembangan web lokal khusus untuk macOS, yang sudah mengintegrasikan berbagai versi PHP, database (seperti MySQL, PostgreSQL, MongoDB, Redis), dan server web (Caddy, Nginx, Apache), beserta alat pendukung lainnya. Dengan ServBay, Anda bisa menyiapkan dan mengelola lingkungan pengembangan Phalcon secara mudah.
Panduan ini akan menuntun Anda membuat proyek dasar Phalcon menggunakan PHP dari ServBay, mengkonfigurasi server web agar proyek dapat diakses, serta mendemonstrasikan integrasi database relasional (MySQL) dan NoSQL (Redis).
Prasyarat
Sebelum memulai, pastikan Anda sudah memenuhi syarat berikut:
- ServBay Sudah Terinstal dan Berjalan: Pastikan ServBay telah diinstall dan dijalankan pada sistem macOS Anda.
- Versi PHP yang Dibutuhkan Sudah Diaktifkan: Aktifkan versi PHP yang akan digunakan melalui ServBay.
- Modul Phalcon Sudah Diaktifkan: ServBay sudah menyertakan modul Phalcon, tetapi modul ini mungkin belum aktif secara default. Pastikan Anda sudah mengikuti instruksi di cara mengaktifkan modul Phalcon bawaan ServBay sesuai versi PHP yang digunakan, lalu restart service PHP.
- Composer Sudah Tersedia: ServBay menyediakan Composer secara default, jadi Anda tidak perlu instalasi terpisah. Pastikan perintah
composer
bisa digunakan di terminal Anda.
Versi Phalcon & DevTools yang Didukung
Versi framework Phalcon dan tool pengembangnya (Phalcon DevTools) harus kompatibel dengan versi PHP yang digunakan. Berikut adalah rekomendasi hubungan versi PHP dengan Phalcon dan DevTools:
Versi PHP | Versi Phalcon yang Direkomendasikan | Versi Phalcon DevTools yang Direkomendasikan | Catatan |
---|---|---|---|
PHP 5.6, 7.0, 7.1 | Phalcon 3.4.5 | 3.4.x | |
PHP 7.2, 7.3, 7.4 | Phalcon 4.1.2 | ~4.1 atau 4.3.x | |
PHP 8.0, 8.1, 8.2 | Phalcon 5.x | 5.0.x (resmi) | DevTools versi resmi mungkin mengalami masalah kompatibilitas di PHP 8.x. |
PHP 8.3, 8.4 | Phalcon 5.x | dev-master (repo versi perbaikan) | Sebaiknya gunakan versi komunitas untuk kompatibilitas lebih stabil. |
Catatan Penting: Untuk PHP 8.x dan di atasnya, DevTools resmi Phalcon belum sepenuhnya kompatibel. Disarankan menggunakan versi perbaikan yang dikelola komunitas. Bagian berikut akan menjelaskan cara instalasi DevTools versi perbaikan melalui Composer.
Membuat Proyek Phalcon
Direktori Website yang Disarankan
Untuk kemudahan manajemen, ServBay menyarankan seluruh proyek website ditempatkan di root website default /Applications/ServBay/www
. Contoh berikut juga akan menggunakan direktori ini.
Masuk ke Root Website dan Buat Folder Proyek
Buka terminal, masuk ke root website ServBay, dan buat folder baru untuk proyek Phalcon Anda (misal
servbay-phalcon-app
):bashcd /Applications/ServBay/www mkdir servbay-phalcon-app cd servbay-phalcon-app
1
2
3Instalasi Phalcon DevTools
Phalcon DevTools adalah sekumpulan command-line tools untuk membangkitkan kode, membuat kerangka proyek, dan mengelola migrasi database. Instal DevTools dengan Composer sesuai versi PHP Anda:
PHP 5.6, 7.0, 7.1 (Phalcon DevTools
^3.4
):bashcomposer require phalcon/devtools:"^3.4"
1PHP 7.2, 7.3, 7.4 (Phalcon DevTools
~4.1
):bashcomposer require phalcon/devtools:"~4.1"
1PHP 8.0, 8.1, 8.2, 8.3, 8.4 (Phalcon DevTools
dev-master
versi perbaikan): Karena DevTools resmi kurang stabil di PHP 8.x, gunakan versi perbaikan dari komunitas. Buat atau edit filecomposer.json
di root proyek (/Applications/ServBay/www/servbay-phalcon-app
) seperti berikut:json{ "repositories": [ { "url": "https://github.com/daleffe/phalcon-devtools-5.x-fixed.git", "type": "git" } ], "require": { "phalcon/devtools": "dev-master" }, "minimum-stability": "dev", "prefer-stable": true }
1
2
3
4
5
6
7
8
9
10
11
12
13Lalu jalankan Composer:
bashcomposer update
1
Composer akan membuat folder
vendor
di root proyek Anda. File eksekusi DevTools dapat ditemukan divendor/bin/phalcon
.Membuat Struktur Proyek dengan DevTools
Selanjutnya, gunakan DevTools untuk menghasilkan struktur dasar proyek Phalcon. Isi kode aplikasi diletakkan di subfolder (misal juga bernama
servbay-phalcon-app
, sesuai default DevTools):bashvendor/bin/phalcon project servbay-phalcon-app
1Perintah ini membuat subfolder
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
dan menyiapkan skeleton proyek Phalcon di dalamnya.Masuk ke Folder Kode Proyek
Masuk ke folder kode proyek yang baru dibuat:
bashcd servbay-phalcon-app
1Kini Anda berada di
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
.
Konfigurasi Lingkungan Proyek
Konfigurasi proyek Phalcon biasanya berpusat pada file app/config/config.php
. Anda perlu mengatur informasi koneksi database, path aplikasi, dan lain-lain di sini.
Edit File Konfigurasi
Buka file
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/config/config.php
dengan editor favorit Anda. Cari bagian konfigurasi database, atau tambahkan jika belum ada. Untuk ServBay, user default MySQL/MariaDB adalahroot
tanpa password, namun sangat dianjurkan Anda membuat password yang kuat. Gunakanpassword
sebagai contoh; sesuaikan dengan pengaturan Anda. Databaseservbay_phalcon_app
adalah contoh, Anda perlu membuatnya terlebih dahulu.phpreturn new \Phalcon\Config([ // ... konfigurasi lain ... 'database' => [ 'adapter' => 'Mysql', // bisa juga 'Postgres', dll 'host' => '127.0.0.1', 'username' => 'root', // user bawaan ServBay 'password' => 'password', // <-- ubah sesuai password database Anda 'dbname' => 'servbay_phalcon_app', // <-- ubah sesuai nama database Anda ], // ... konfigurasi lain ... ]);
1
2
3
4
5
6
7
8
9
10
11Penting: Pastikan service database (MySQL atau MariaDB) sudah berjalan di ServBay, dan user serta password sesuai konfigurasi. Database
servbay_phalcon_app
perlu Anda buat sendiri, misal lewat phpMyAdmin atau Adminer di ServBay.
Pengaturan Server Web (Menggunakan Fitur Website ServBay)
Agar proyek Phalcon bisa diakses lewat browser, Anda perlu membuat virtual host melalui fitur Website di ServBay.
- Buka Aplikasi ServBay
- Masuk Menu 'Website': Temukan dan klik opsi 'Website' pada panel utama ServBay.
- Tambah Website Baru:
- Nama: Masukkan nama mudah dikenali, misal
My First Phalcon Dev Site
. - Domain: Masukkan domain yang ingin digunakan di browser, misal
servbay-phalcon-test.local
. ServBay akan mengarahkan domain.local
ke localhost. - Jenis Website: Pilih
PHP
. - Versi PHP: Pilih versi PHP yang telah diaktifkan modul Phalcon-nya.
- Root Directory Website: Penting! File masuk Phalcon (
index.php
) biasanya ada di folderpublic
. Maka, arahkan root directory ke/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/public
.
- Nama: Masukkan nama mudah dikenali, misal
- Simpan Pengaturan: Simpan, dan ServBay akan mengaplikasikan konfigurasi secara otomatis. Anda mungkin perlu restart server web (Caddy atau Nginx).
Detail langkah pengaturan, silakan lihat Menambah Website Pertama. Setelah selesai, ServBay akan menghandle resolusi domain dan konfigurasi server web secara otomatis.
Menambah Kode Contoh
Sekarang tambah kode sederhana untuk memastikan proyek berjalan dengan baik.
Konfigurasi Routing
Edit file
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/config/routes.php
, tambah aturan routing untuk menangani request ke/
:php<?php use Phalcon\Mvc\Router; $router = new Router(false); // Definisi routing default, map '/' ke IndexController::indexAction $router->add( '/', [ 'controller' => 'index', 'action' => 'index', ] ); // ... tambahkan rules lain bila perlu ... $router->handle($_SERVER['REQUEST_URI']); return $router;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Buat Controller
Edit (atau buat jika belum ada) file
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/app/controllers/IndexController.php
, tambahkan methodindexAction
sederhana:php<?php namespace App\Controllers; // Pastikan namespace benar use Phalcon\Mvc\Controller; class IndexController extends Controller { // Tangani request ke path '/' public function indexAction() { // Return string sederhana sebagai response return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Akses Website
Setelah semua file disimpan, pastikan ServBay berjalan. Buka browser lalu akses domain yang sudah Anda atur di ServBay:
https://servbay-phalcon-test.local
Jika konfigurasi sudah benar, seharusnya Anda melihat output Hello ServBay!
.
Integrasi Database
Phalcon menyediakan layer database abstraksi dan ORM yang tangguh. ServBay telah mengintegrasikan beragam database sehingga bisa dihubungkan ke Phalcon dengan mudah. Berikut contoh untuk MySQL dan Redis.
Contoh Database Relasional: MySQL
Berikut cara menggunakan adapter database Phalcon untuk terhubung ke MySQL ServBay, lalu melakukan insert dan query sederhana.
Buat Struktur Database (Menggunakan Migration)
Phalcon DevTools mendukung migrasi database, cara populer untuk mengelola versi struktur database.
Generate File Migration: Di folder kode proyek (
/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app
), jalankan perintah generate migration:bashvendor/bin/phalcon migration generate
1Akan dibuat file migration baru di folder
migrations
, misal bernamaYYYYMMDDHHMMSS_MigrationName.php
.Edit File Migration: Buka file migration, edit method
morph
untuk membuat tabel sederhanausers
:php<?php use Phalcon\Db\Column; use Phalcon\Db\Index; use Phalcon\Migrations\Mvc\Model\Migration; /** * Class UsersMigration_100 */ class UsersMigration_100 extends Migration // Pastikan nama class sesuai dengan nama file { /** * Jalankan migrasi */ public function morph() { $this->morphTable('users', [ 'columns' => [ new Column( 'id', [ 'type' => Column::TYPE_INTEGER, 'autoIncrement' => true, 'notNull' => true, 'primary' => true, ] ), new Column( 'name', [ 'type' => Column::TYPE_VARCHAR, 'size' => 255, 'notNull' => true, ] ), new Column( 'email', [ 'type' => Column::TYPE_VARCHAR, 'size' => 255, 'notNull' => true, 'unique' => true, ] ), ], 'indexes' => [ new Index('PRIMARY', ['id'], 'PRIMARY'), new Index('email_UNIQUE', ['email'], 'UNIQUE'), ], 'options' => [ 'TABLE_ENGINE' => 'InnoDB', 'CHARACTER SET' => 'utf8mb4', 'COLLATE' => 'utf8mb4_unicode_ci', ], ]); } /** * Rollback migrasi */ public function down() { // Opsional: Implementasi rollback, misal drop table // $this->getConnection()->dropTable('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
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
66Catatan: Nama class (
UsersMigration_100
) harus sama persis dengan nama migrasi di file. Nama file biasanya berisi timestamp dan nama class.Jalankan Migrasi: Pada folder kode proyek, jalankan migrasi untuk membuat tabel
users
:bashvendor/bin/phalcon migration run
1Jika terjadi error koneksi, cek lagi konfigurasi database di
app/config/config.php
dan pastikan MySQL/MariaDB ServBay berjalan normal.
Konfigurasi Koneksi Database (Sudah Dijelaskan Sebelumnya)
Pastikan konfigurasi di bagian
'database'
padaapp/config/config.php
sudah mengarah ke service MySQL/MariaDB ServBay (host127.0.0.1
, port 3306, usernameroot
, password sesuai pengaturan Anda).Tambah Routing Contoh
Edit file
app/config/routes.php
, tambahkan routing untuk insert dan query data users:php<?php use Phalcon\Mvc\Router; $router = new Router(false); $router->add('/', [ 'controller' => 'index', 'action' => 'index', ]); // Routing untuk menambah data user $router->add( '/mysql-add', [ 'controller' => 'index', 'action' => 'mysqlAdd', ] ); // Routing untuk meng-query user $router->add( '/mysql', [ 'controller' => 'index', 'action' => 'mysql', ] ); $router->handle($_SERVER['REQUEST_URI']); return $router;
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
31Implementasi Operasi Database di Controller
Edit file
app/controllers/IndexController.php
, tambahkan methodmysqlAddAction
danmysqlAction
untuk operasi database. Kali ini langsung menggunakan adapter database Phalcon.php<?php namespace App\Controllers; use Phalcon\Mvc\Controller; use Phalcon\Db\Adapter\Pdo\Mysql; // Import adapter MySQL use Phalcon\Db\Enum; // Untuk mode fetchAll class IndexController extends Controller { public function indexAction() { return 'Hello ServBay!'; } // Contoh insert data user baru public function mysqlAddAction() { // Mendapatkan koneksi database langsung (contoh, bukan best practice untuk aplikasi besar) $connection = new Mysql([ 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', // <-- Sesuaikan dengan password Anda 'dbname' => 'servbay_phalcon_app', 'charset' => 'utf8mb4', ]); // Insert satu user demo $success = $connection->insert( 'users', // nama tabel ['ServBay Demo User', 'demo@servbay.test'], // nilai kolom ['name', 'email'] // nama kolom ); // Output hasil operasi echo $success ? 'User added successfully.' : 'Failed to add user.'; } // Contoh query dan menampilkan data user public function mysqlAction() { // Mendapatkan koneksi database $connection = new Mysql([ 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', // <-- Sesuaikan dengan password Anda 'dbname' => 'servbay_phalcon_app', 'charset' => 'utf8mb4', ]); // Query semua user $users = $connection->fetchAll('SELECT * FROM users', Enum::FETCH_ASSOC); // Output hasil dalam format JSON header('Content-Type: application/json'); echo json_encode($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
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
57Catatan: Untuk aplikasi sungguhan, sebaiknya koneksi database dibuat sebagai service di container dan diakses melalui DI, bukan dibuat di setiap action.
Akses Contoh
- Buka browser dan akses
https://servbay-phalcon-test.local/mysql-add
. Jika berhasil, tampil "User added successfully.". - Akses
https://servbay-phalcon-test.local/mysql
, dan Anda bisa lihat data tabelusers
dalam format JSON, termasuk data yang baru saja ditambahkan.
- Buka browser dan akses
Contoh Database NoSQL: Redis
Berikut cara menggunakan Redis di proyek Phalcon dengan ServBay sebagai layanan cache.
Pastikan Ekstensi Redis Sudah Terpasang
PHP package di ServBay sudah menyertakan ekstensi Redis. Anda hanya perlu memastikan versi PHP yang digunakan sudah langsung enable ekstensi Redis di ServBay.
Konfigurasi Koneksi Redis
Di file
app/config/config.php
, tambahkan bagian Redis. Redis di ServBay default berjalan di127.0.0.1
port 6379.phpreturn new \Phalcon\Config([ // ... konfigurasi lain ... 'cache' => [ 'adapter' => 'Redis', 'host' => '127.0.0.1', 'port' => 6379, 'index' => 0, // Database index Redis (default 0) 'persistent' => false, // Gunakan persistent connection atau tidak 'auth' => null, // Jika Redis pakai password, isi di sini ], // ... konfigurasi lain ... ]);
1
2
3
4
5
6
7
8
9
10
11
12Tambah Routing Contoh Redis
Edit file
app/config/routes.php
, tambahkan routing untuk demo Redis cache:php<?php use Phalcon\Mvc\Router; $router = new Router(false); $router->add('/', [ 'controller' => 'index', 'action' => 'index', ]); $router->add('/mysql-add', [ 'controller' => 'index', 'action' => 'mysqlAdd', ]); $router->add('/mysql', [ 'controller' => 'index', 'action' => 'mysql', ]); // Routing untuk demo Redis cache $router->add( '/redis', [ 'controller' => 'index', 'action' => 'redis', ] ); $router->handle($_SERVER['REQUEST_URI']); return $router;
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
32Implementasi Cache Redis di Controller
Edit file
app/controllers/IndexController.php
, tambahkan methodredisAction
untuk demo Redis cache:php<?php namespace App\Controllers; use Phalcon\Mvc\Controller; use Phalcon\Db\Adapter\Pdo\Mysql; use Phalcon\Db\Enum; use Phalcon\Cache\Adapter\Redis; // Import adapter Redis use Phalcon\Storage\SerializerFactory; // Import serializer factory class IndexController extends Controller { public function indexAction() { return 'Hello ServBay!'; } public function mysqlAddAction() { $connection = new Mysql([/* ... */]); $success = $connection->insert(/* ... */); echo $success ? 'User added successfully.' : 'Failed to add user.'; } public function mysqlAction() { $connection = new Mysql([/* ... */]); $users = $connection->fetchAll('SELECT * FROM users', Enum::FETCH_ASSOC); header('Content-Type: application/json'); echo json_encode($users); } // Contoh penggunaan cache Redis public function redisAction() { // Buat instance serializer $serializerFactory = new SerializerFactory(); // Konfigurasi opsi Redis sesuai config.php $options = [ 'defaultSerializer' => 'Json', 'lifetime' => 3600, // cache berlaku 1 jam 'host' => '127.0.0.1', 'port' => 6379, 'index' => 0, // 'auth' => 'your_redis_password', // jika pakai password ]; // Buat adapter Redis $cache = new Redis($serializerFactory, $options); $cacheKey = 'my_servbay_redis_cache_key'; $cachedData = $cache->get($cacheKey); // Cek data di cache if ($cachedData === null) { // Jika belum ada cache echo "Data tidak ditemukan di cache, ambil dari sumber..."; $cachedData = 'Data diambil dari sumber: Hello Redis dari ServBay!'; $cache->set($cacheKey, $cachedData); // Simpan ke cache echo "Data disimpan ke cache."; } else { // Jika ada data cache echo "Data ditemukan di cache: "; } // Tampilkan data dari cache return $cachedData; } }
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
67
68Catatan: Pada aplikasi sesungguhnya, biasanya konfigurasi cache didaftarkan sebagai service untuk DI dan kemudahan penggunaan global.
Akses Contoh
Buka browser dan akses
https://servbay-phalcon-test.local/redis
.- Akses pertama, tampil "Data tidak ditemukan di cache, ambil dari sumber...Data disimpan ke cache." dan "Data diambil dari sumber: Hello Redis dari ServBay!".
- Pada periode cache selanjutnya, akan muncul "Data ditemukan di cache: " dan "Data diambil dari sumber: Hello Redis dari ServBay!", menandakan data diperoleh dari Redis.
FAQ (Pertanyaan yang Sering Diajukan)
- Q: Ketika akses website muncul 404 Not Found, apa solusinya?
- A: Pastikan pada pengaturan ServBay, "Root Directory Website" telah diarahkan ke folder
public
proyek Phalcon Anda (/Applications/ServBay/www/servbay-phalcon-app/servbay-phalcon-app/public
). Juga cek apakah server web (Caddy atau Nginx) sudah berjalan, dan domain.local
sudah ter-resolve dengan benar.
- A: Pastikan pada pengaturan ServBay, "Root Directory Website" telah diarahkan ke folder
- Q: Muncul error modul Phalcon tidak ditemukan (misal Class 'Phalcon\Mvc\Application' not found)?
- A: Kemungkinan ekstensi Phalcon belum diaktifkan di versi PHP yang Anda pakai. Kembali ke ServBay, pastikan ekstensi Phalcon sudah dicentang pada versi PHP proyek Anda, lalu restart service PHP. Lihat juga cara mengaktifkan modul Phalcon bawaan ServBay.
- Q: Gagal koneksi ke database?
- A: Periksa konfigurasi koneksi database pada file
app/config/config.php
(host, username, password, database name), pastikan service database di ServBay berjalan. Pastikan user punya akses ke database dan database sudah dibuat.
- A: Periksa konfigurasi koneksi database pada file
Kesimpulan
Dengan ServBay, Anda bisa menyiapkan lingkungan pengembangan lokal Phalcon yang cepat dan efisien tanpa ribet. Panduan ini sudah membahas langkah dari pembuatan skeleton proyek, pengaturan server web, sampai integrasi dengan MySQL dan Redis. Berbagai paket perangkat lunak dan panel pengaturan praktis dari ServBay membuat proses setup dan maintanance environment lokal jadi mudah, memungkinkan Anda fokus pada pengembangan aplikasi Phalcon. Semoga panduan ini membantu Anda untuk start coding Phalcon di ServBay jauh lebih produktif!