Mengaktifkan Modul Rangka Kerja PHP Phalcon Berprestasi Tinggi di ServBay
ServBay ialah persekitaran pembangunan Web tempatan yang berkuasa dan direka khas untuk pembangun, menggabungkan pelbagai timbunan teknologi utama. Bagi pembangun PHP, ServBay sudah diprapasang dengan modul Phalcon yang berprestasi tinggi, serta menyediakan cara pengaktifan yang sangat mudah. Phalcon, sebagai satu rangka kerja PHP yang terkenal dengan kelajuan dan efisiensi, mempunyai reka bentuk modular yang membantu pembangun membina aplikasi Web yang cekap.
Pengenalan Rangka Kerja Phalcon
Phalcon ialah rangka kerja PHP sumber terbuka yang serba lengkap, terkenal dengan kelajuannya yang luar biasa dan penggunaan sumber yang amat rendah. Berbeza dengan kebanyakan rangka kerja yang dibina sepenuhnya menggunakan PHP, Phalcon ditulis dalam bahasa C dan dijalankan sebagai ekstensi PHP. Seni bina unik ini memberikan kelebihan prestasi yang ketara sambil menyediakan set fungsi yang lengkap dan berkuasa.
Ciri-ciri Utama
- Prestasi Tinggi: Disebabkan Phalcon berjalan terus sebagai ekstensi C di peringkat rendah, ia lebih pantas berbanding rangka kerja yang dibina sepenuhnya dalam PHP, serta menggunakan kurang memori dan sumber CPU semasa memproses permintaan.
- Kos Overhed Rendah: Reka bentuk Phalcon mengoptimumkan penggunaan sumber, memastikan ia kekal efisien walaupun menangani permintaan serentak yang banyak.
- Fungsi Lengkap: Menyediakan sokongan lengkap untuk seni bina MVC (Model-View-Controller), ORM (Pemetaan Objek-Relasi) yang mantap, enjin templat, sistem routing fleksibel, mekanisme cache, servis queue dan banyak lagi untuk memenuhi keperluan pembangunan Web yang rumit.
- Mudah Digunakan: Walaupun terasnya dibina dalam C, pembangunan aplikasi menggunakan sintaks PHP yang biasa. Rangka kerja ini menawarkan API jelas dengan dokumentasi yang banyak, sekaligus menurunkan halangan pembelajaran.
- Reka Bentuk Modular: Semua komponen Phalcon adalah sangat terasing dan modular, membolehkan pembangun memilih atau menggantikan komponen mengikut keperluan projek.
Versi Modul Phalcon Diprapasang dalam ServBay
ServBay menyokong pelbagai versi PHP utama, dan untuk setiap versi PHP tersebut turut menyediakan modul Phalcon yang sepadan secara prapasang. ServBay akan terus mengemas kini versi PHP serta pakej perisian prapasang bagi memastikan sokongan teknologi terkini. Modul Phalcon yang disepadukan dalam ServBay umumnya serasi dengan versi PHP yang sepadan, dan maklumat versi tersebut boleh disemak menerusi antara muka pengurusan pakej ServBay. Berikut adalah beberapa padanan versi PHP dan Phalcon yang biasa digunakan (Sila maklum, ServBay mungkin menyokong lagi versi lain atau versi lebih baharu):
- PHP 5.6, 7.0, 7.1: Phalcon 3.4.5
- PHP 7.2, 7.3, 7.4: Phalcon 4.1.2
- PHP 8.0, 8.1, 8.2, 8.3: Phalcon 5.7.0
- PHP 8.4, 8.5-dev: Phalcon 5.8.0
Cara Mengaktifkan Modul Phalcon
Mengaktifkan modul Phalcon dalam ServBay adalah proses yang sangat intuitif. Secara lalai, demi mengekalkan persekitaran yang ringan, modul Phalcon mungkin dinyahaktifkan. Anda hanya perlu beberapa langkah mudah melalui antara muka grafik ServBay untuk mengaktifkannya.
Kaedah Disarankan: Aktifkan Melalui Antara Muka Grafik ServBay
Berikut adalah kaedah paling disyorkan dan mudah:
- Buka aplikasi ServBay.
- Navigasi ke menu sebelah kiri dan pilih Languages (Bahasa).
- Dalam senarai pakej, cari dan pilih versi PHP yang ingin diaktifkan modul Phalcon, contohnya
PHP 8.3
atauPHP 8.4
. - Klik butang Extensions (Ekstensi) di sebelah kanan versi PHP berkenaan.
- Dalam senarai ekstensi yang dipaparkan, cari Phalcon.
- Klik suis di sebelah kiri modul Phalcon untuk menukarnya ke keadaan aktif.
- Klik butang Save (Simpan) di bahagian bawah tetingkap.
- ServBay akan meminta anda menghidupkan semula servis PHP berkaitan untuk perubahan berkuat kuasa. Sahkan dan teruskan proses but semula.
Selepas servis dihidupkan semula, modul Phalcon akan dimuatkan ke dalam versi PHP pilihan anda.
Sunting Fail Konfigurasi Secara Manual (Untuk Pengguna Lanjutan)
Bagi pengguna yang memerlukan konfigurasi automasi atau penyahpepijatan lanjutan, anda juga boleh mengaktifkan modul Phalcon dengan menyunting fail konfigurasi PHP secara manual.
Langkah 1: Cari Fail Konfigurasi
Mula-mula, cari direktori conf.d
untuk versi PHP berkenaan, iaitu lokasi standard untuk fail konfigurasi ekstensi PHP. Contohnya, untuk mengaktifkan Phalcon pada PHP 8.3, laluan fail konfigurasi lazimnya ialah:
bash
/Applications/ServBay/etc/php/8.3/conf.d/phalcon.ini
1
Buka fail ini menggunakan editor teks.
Langkah 2: Sunting Fail Konfigurasi Phalcon
Cari ayat berikut di dalam fail, dan buang tanda koma bertitik ;
di hadapan extension = phalcon.so
bagi mengaktifkan ekstensi tersebut:
ini
[Phalcon]
; Uncomment the following line to enable Phalcon
extension = phalcon.so
1
2
3
2
3
Selepas disunting, jadikan seperti ini:
ini
[Phalcon]
extension = phalcon.so
1
2
2
Langkah 3: Aktifkan Modul PSR (Hanya untuk PHP 7.2 - PHP 7.4)
Nota: Jika anda mengaktifkan melalui antara muka grafik ServBay, abaikan langkah ini.
Bagi PHP 7.2 hingga 7.4, Phalcon memerlukan ekstensi PSR (PHP Standards Recommendations). Extension PSR ini telah pun diprapasang dalam ServBay; anda hanya perlu memastikan ia diaktifkan. Dalam fail phalcon.ini
atau fail konfigurasi PSR (kebiasaannya psr.ini
), pastikan baris berikut juga tidak dikomen:
ini
; Uncomment both Psr & Phalcon to enable Phalcon
[Psr]
extension = psr.so
[Phalcon]
extension = phalcon.so
1
2
3
4
5
6
2
3
4
5
6
Langkah 4: Hidupkan Semula Servis PHP
Sama ada anda menggunakan antara muka grafik atau menyunting fail konfigurasi, sebarang perubahan pada konfigurasi ekstensi PHP memerlukan servis PHP berkenaan dihidupkan semula agar berkuat kuasa.
Dalam antara muka utama ServBay atau paparan Packages (Pakej), cari versi PHP yang disunting, kemudian klik butang but semula (selalunya diwakili ikon anak panah bulat) untuk menghidupkan semula servis berkenaan.
Cara Menguji Sama Ada Modul Phalcon Berjaya Dimuatkan
Cara paling biasa untuk mengesahkan sama ada modul Phalcon telah berjaya dimuatkan ialah dengan memeriksa maklumat runtime PHP (phpinfo()
).
- Di direktori root mana-mana laman web anda yang telah dikonfigurasikan dalam ServBay, cipta fail baru bernama
phpinfo.php
. Sebagai contoh, untuk laman webservbay.demo
di/Applications/ServBay/www/servbay.demo
, buat failphpinfo.php
di direktori tersebut. - Masukkan kandungan berikut ke dalam fail
phpinfo.php
:php<?php phpinfo(); ?>
1
2
3 - Layari URL laman web anda, contoh:
https://servbay.demo/phpinfo.php
. - Pada halaman maklumat PHP yang dipaparkan, cari bahagian berkaitan "Phalcon". Jika anda melihat maklumat konfigurasi, nombor versi dan lain-lain yang berkaitan dengan Phalcon, itu bermakna modul telah berjaya dimuatkan.
Gambar: Cari maklumat Phalcon di output phpinfo
Contoh Penggunaan
Setelah modul Phalcon diaktifkan, anda boleh mula membangunkan aplikasi Web menggunakan rangka kerja Phalcon. Berikut ialah contoh asas bagaimana membina aplikasi Phalcon dan menjalankannya di ServBay.
Katakan anda ingin meletakkan fail projek di direktori /Applications/ServBay/www/phalcon-demo
.
Langkah 1: Cipta Struktur Direktori Projek
Berdasarkan struktur yang disyorkan Phalcon, cipta fail dan folder berikut:
/Applications/ServBay/www/phalcon-demo/
├── app/
│ ├── controllers/
│ │ └── IndexController.php
│ └── views/
│ └── index/
│ └── index.phtml
└── public/
└── index.php
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Langkah 2: Cipta Konfigurasi Laman Web ServBay
Dalam ServBay, cipta satu konfigurasi Website (Laman Web) baharu. Tetapkan domain kepada phalcon-demo.servbay.demo
, tetapkan root laman web kepada folder public
projek (/Applications/ServBay/www/phalcon-demo/public
), dan pastikan PHP versi yang digunakan ialah yang mana modul Phalcon sudah diaktifkan.
Langkah 3: Tulis Kod Contoh
Front Controller:
public/index.php
Fail ini merupakan pintu masuk aplikasi.php<?php use Phalcon\Autoload\Loader; use Phalcon\Di\FactoryDefault; use Phalcon\Mvc\View; use Phalcon\Mvc\Url; use Phalcon\Mvc\Application; // Takrifkan direktori root projek dan direktori app define('BASE_PATH', dirname(__DIR__)); // Menuju ke /Applications/ServBay/www/phalcon-demo define('APP_PATH', BASE_PATH . '/app'); // Menuju ke /Applications/ServBay/www/phalcon-demo/app // Daftar autoloader untuk pembolehmuat pengawal dan model $loader = new Loader(); $loader->setDirectories( [ APP_PATH . '/controllers/', APP_PATH . '/models/', // Daftarkan direktori model jika ada ] ); $loader->register(); // Cipta bekas suntikan kebergantungan (DI) $container = new FactoryDefault(); // Daftar servis view dalam DI container $container->set( 'view', function () { $view = new View(); $view->setViewsDir(APP_PATH . '/views/'); // Tetapkan direktori fail view return $view; } ); // Daftar servis URL dalam DI container $container->set( 'url', function () { $url = new Url(); $url->setBaseUri('/'); // Tetapkan URL asas return $url; } ); // Cipta instans aplikasi Phalcon $application = new Application($container); try { // Proses permintaan dan hantar respons $response = $application->handle( $_SERVER["REQUEST_URI"] ); $response->send(); } catch (\Exception $e) { // Tangkap pengecualian dan papar maklumat ralat echo 'Exception: ', $e->getMessage(); } ?>
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
62Pengawal:
app/controllers/IndexController.php
Pengawal untuk permintaan halaman utama.php<?php use Phalcon\Mvc\Controller; use Phalcon\Support\Version; // Import kelas Version untuk mendapatkan versi Phalcon class IndexController extends Controller { // Aksi lalai (Action) public function indexAction() { // Dapatkan nombor versi Phalcon semasa $phalconVersion = new Version(); $versionString = $phalconVersion->get(); // Serahkan versi kepada view $this->view->phalconVersion = $versionString; // Papar fail view app/views/index/index.phtml } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20View:
app/views/index/index.phtml
Fail view yang memaparkan mesej alu-aluan dan nombor versi Phalcon.html<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello ServBay with Phalcon</title> <style> body { font-family: sans-serif; margin: 40px; text-align: center; } h1 { color: #333; } p { color: #666; } </style> </head> <body> <h1>Hello ServBay!</h1> <p>Anda telah berjaya menjalankan aplikasi Phalcon dalam ServBay.</p> <p>Versi Phalcon semasa: **<?= $phalconVersion ?>**</p> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Langkah 4: Layari Aplikasi
Pastikan Nginx/Caddy dan versi PHP yang dipilih di ServBay sedang berjalan. Layari domain yang telah anda konfigurasikan, contoh https://phalcon-demo.servbay.demo
. Anda sepatutnya melihat paparan "Hello ServBay!" bersama nombor versi Phalcon semasa.
Gambar: Aplikasi contoh Phalcon berjaya dijalankan
Perkara Penting
- Pastikan versi PHP yang anda pilih serasi dengan projek Phalcon anda.
- Setiap kali anda menyunting fail konfigurasi secara manual, anda mesti menghidupkan semula servis PHP berkaitan.
- Jika berdepan masalah, semak dahulu log ralat PHP serta log ralat pelayan Web (Nginx/Caddy), biasanya di lokasi
/Applications/ServBay/var/log/
.
Soalan Lazim (FAQ)
S1: Saya telah mengaktifkan Phalcon tetapi tidak kelihatan dalam phpinfo()
, apa yang perlu dilakukan?
J1: Sila semak perkara-perkara berikut:
- Pastikan anda telah menyunting fail konfigurasi untuk versi PHP yang betul (jika suntingan manual).
- Pastikan tanda koma bertitik
;
di hadapanextension = phalcon.so
telah dibuang. - Pastikan anda telah menghidupkan semula servis PHP berkenaan.
- Pastikan konfigurasi laman web anda menggunakan PHP versi yang sudah diaktifkan Phalcon.
- Semak log ralat PHP di ServBay untuk sebarang kesilapan ketika memuatkan ekstensi.
S2: Aplikasi Phalcon saya keluar ralat Class 'Phalcon\...' not found
, apa punca?
J2: Ini biasanya bermakna modul Phalcon tidak berjaya dimuatkan ke dalam persekitaran PHP semasa. Ulangi langkah pengaktifan dan pengesahan dalam dokumen ini, pastikan modul Phalcon diaktifkan serta boleh dilihat dalam phpinfo()
. Jika modul telah dimuatkan, semak kod aplikasi anda sama ada terdapat kesilapan namespace atau masalah konfigurasi autoloading.
S3: Adakah Phalcon memerlukan kebergantungan tambahan?
J3: Untuk PHP versi 7.2 hingga 7.4, Phalcon bergantung kepada ekstensi PSR. ServBay sudah memprapasang PSR; pastikan anda mengaktifkan extension = psr.so
dan extension = phalcon.so
secara serentak dalam phalcon.ini
. Untuk PHP 8.0 dan ke atas, Phalcon 5.x biasanya tidak memerlukan ekstensi PSR secara berasingan kerana piawai berkenaan telah dikendalikan secara dalaman.
Rumusan
ServBay amat memudahkan proses penyediaan rangka kerja Phalcon dalam persekitaran pembangunan tempatan anda. Sama ada dengan antara muka grafik yang intuitif atau melalui penyuntingan fail konfigurasi yang mudah, pembangun boleh mengaktifkan modul Phalcon berprestasi tinggi untuk pelbagai versi PHP dengan mudah. Digabungkan dengan sokongan menyeluruh ServBay terhadap timbunan teknologi Web lain, pembangun dapat membina persekitaran pembangunan tempatan yang lengkap dan cemerlang untuk pembangunan aplikasi Web berasaskan Phalcon dengan lebih pantas. Dengan memanfaatkan prestasi tinggi Phalcon, anda boleh membina aplikasi moden yang responsif dengan penggunaan sumber yang minimum.