Cara Menggunakan Composer Bawaan ServBay untuk Pengurusan Projek PHP
Sebagai persekitaran pembangunan web tempatan yang berkuasa, ServBay telah membawakan Composer secara prapasang, memudahkan proses pengurusan kebergantungan projek PHP anda. Composer ialah alat penting dalam pembangunan PHP moden yang membantu pembangun mengintegrasikan dan mengurus pustaka pihak ketiga, menyelesaikan kebergantungan yang kompleks secara automatik serta menawarkan ciri autoload yang praktikal. Dengan ServBay, anda boleh terus menggunakan Composer tanpa memerlukan pemasangan atau konfigurasi tambahan, mempercepat aliran kerja pembangunan PHP anda.
Pengenalan Composer
Composer ialah alat untuk mengurus kebergantungan projek PHP. Ia membolehkan pembangun menyatakan pustaka luaran (biasanya dipanggil pakej) yang diperlukan dan secara automatik memasang serta mengemas kininya. Composer bukan sahaja mengurus pustaka PHP, malah boleh digunakan untuk mengurus jenis pakej lain seperti rangka kerja, komponen dan plugin.
Ciri Utama
- Pengurusan Kebergantungan: Composer memproses kebergantungan projek secara automatik, memastikan keserasian versi pustaka dan menyelesaikan sebarang konflik yang mungkin timbul.
- Autoloading: Composer menyediakan fungsi autoload yang menjana satu fail autoload sehenti, membolehkan anda menggunakan kelas yang telah dipasang melalui Composer tanpa perlu
include
ataurequire
secara manual. - Kawalan Versi: Anda boleh menentukan garis panduan versi kebergantungan dalam fail
composer.json
. Composer akan memasang versi yang memenuhi kekangan tersebut dan mengunci versi sebenar di dalam failcomposer.lock
bagi memastikan semua rakan sepasukan dan persekitaran menggunakan versi yang sama. - Pengurusan Pakej: Composer menggunakan Packagist sebagai repositori pusat untuk pencarian dan pemasangan pakej. Anda boleh mencari dan menggunakan hampir semua pustaka PHP popular di situ.
- Sokongan Komuniti: Composer mempunyai komuniti pembangun yang besar dan dokumentasi yang meluas.
Composer Terintegrasi dalam ServBay
ServBay dilengkapi dengan pelbagai versi PHP dan Composer telah diprapasang bersama pemasangan ServBay. Anda tidak perlu memuat turun atau mengkonfigurasi Composer secara berasingan. Composer dalam ServBay sentiasa tersedia dalam persekitaran sistem anda, biasanya terikat dengan versi PHP yang sedang aktif. Anda boleh terus menggunakan arahan composer
atau composer-2.2
di terminal projek anda.
Amaran
Terdapat dua versi Composer: versi terkini Composer 2.8.x
dan Composer 2.2.x LTS
yang serasi dengan PHP lama. Composer 2.8.x
menyokong PHP 7.2+
, manakala Composer 2.2.x LTS
menyokong PHP 5.3 - PHP 7.1
.
ServBay secara lalai membawakan Composer 2.8.x
untuk kegunaan pada PHP 7.2+
.
Jika anda ingin menggunakan Composer dengan PHP 5.3 - PHP 7.1
, sila pasang Composer 2.2.x LTS
dari bahagian pakej, kemudian gunakan arahan composer-2.2
untuk menjalankan Composer tersebut. Kedua-dua versi ini boleh digunakan secara serentak tanpa sebarang konflik.
Mengurus Kebergantungan Projek dengan Composer
Composer menggunakan fail composer.json
di direktori root projek untuk mengurus kebergantungan. Berikut ialah langkah asas untuk mencipta serta menggunakan fail composer.json
.
1. Cipta Fail composer.json
Di root direktori projek PHP anda, cipta fail bernama composer.json
. Sebagai contoh, jika anda bekerja di /Applications/ServBay/www/my_php_project
, cipta fail itu dalam direktori tersebut.
Fail composer.json
ialah objek JSON di mana kunci require
digunakan untuk menentukan kebergantungan projek. Kekunci ialah nama pakej (biasanya dalam format vendor/package
) manakala nilai ialah kekangan versi yang anda kehendaki.
Contoh, untuk memasang pustaka Monolog (pustaka log PHP popular), versi sekurang-kurangnya 2.0:
json
{
"require": {
"monolog/monolog": "^2.0"
}
}
1
2
3
4
5
2
3
4
5
^2.0
ialah penanda kekangan versi, bermaksud serasi dengan semua versi dari 2.0.0 ke atas tetapi tidak termasuk 3.0.0.
2. Pasang Kebergantungan
Buka terminal di direktori root projek yang mengandungi fail composer.json
, kemudian jalankan:
sh
composer install
1
Selepas dijalankan:
- Composer akan membaca fail
composer.json
. - Ia akan mengira semua kebergantungan termasuk kebergantungan dari pustaka dalam
require
. - Semua pustaka akan dimuat turun ke dalam direktori
vendor
di root projek. - Fail
composer.lock
akan dijana, merekodkan versi tepat setiap pustaka yang dipasang. Fail ini penting dan perlu dihantar ke sistem kawalan versi (seperti Git) untuk memastikan semua persekitaran memasang versi kebergantungan yang sama. - Fail autoload
vendor/autoload.php
juga akan dijana.
Selepas pemasangan berjaya, anda akan menemui direktori vendor
dan fail composer.lock
dalam projek anda.
Menggunakan Fungsi Autoload Composer
Salah satu ciri paling penting Composer ialah autoload. Ia menyokong beberapa piawai autoload (seperti PSR-0, PSR-4) untuk memetakan nama kelas dengan laluan fail, dan menghasilkan fail autoload universal.
Langkah-langkah untuk mengkonfigurasi dan menggunakan autoload:
1. Konfigurasi Medan autoload
Tambah atau ubah medan autoload
dalam composer.json
. Contoh, guna piawai PSR-4 untuk memetakan namespace App\
ke direktori src/
di root projek:
json
{
"require": {
"monolog/monolog": "^2.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Ini bermaksud sebarang kelas yang bermula dengan App\
akan dicari oleh Composer di dalam direktori src/
mengikut sub-namespace dan nama kelas (cth. App\MyClass
=> src/MyClass.php
).
2. Jana Fail Autoload
Setiap kali anda mengubah konfigurasi autoload
, jalankan arahan berikut untuk mengemaskini pemetaan autoload Composer:
sh
composer dump-autoload
1
Arahan ini akan menjana semula fail vendor/autoload.php
. Jika anda hanya memasang atau mengemaskini kebergantungan tanpa mengubah autoload
, composer install
atau composer update
akan menangani langkah ini secara automatik.
3. Import Fail Autoload dalam Kod
Masukkan fail autoload yang dijana Composer di awal skrip PHP anda:
php
<?php
// Import fail autoload Composer
require __DIR__ . '/vendor/autoload.php';
// Kini, anda boleh terus menggunakan pustaka yang dipasang melalui Composer atau kelas yang anda konfigurasikan pada autoload
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use App\MyClass; // Jika anda telah konfigurasikan autoload untuk namespace App\
// Menggunakan pustaka Monolog
$log = new Logger('name');
$log->pushHandler(new StreamHandler('your.log', Logger::WARNING));
$log->warning('Ini adalah satu amaran!');
// Menggunakan kelas anda sendiri (jika autoload telah dikonfigurasi)
// $myObject = new MyClass();
// $myObject->doSomething();
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dengan adanya baris require __DIR__ . '/vendor/autoload.php';
, anda boleh menggunakan semua kelas yang diurus Composer di seluruh projek anda tanpa perlu menambah banyak arahan require
atau include
, sekali gus memudahkan kod anda.
Mengemas Kini Kebergantungan
Apabila projek anda berkembang dan pustaka dikemaskini, anda mungkin perlu mengemas kini versi pustaka yang digunakan.
Di root projek anda, jalankan arahan berikut untuk mengemas kini kebergantungan:
sh
composer update
1
composer update
akan menyemak semua kebergantungan yang dinyatakan dalamcomposer.json
dan turunannya jika terdapat versi baharu yang memenuhi kekangan.- Sekiranya terdapat kemas kini, Composer akan memuat turun dan memasangnya.
- Composer juga akan mengemas kini fail
composer.lock
untuk menggambarkan versi sebenar yang telah dipasang.
Nota Penting:
composer install
vscomposer update
: Gunakancomposer install
untuk pemasangan projek kali pertama atau pemasangan kebergantungan pada projek sedia ada; ia berpegang kepada versi di dalamcomposer.lock
untuk menjamin konsistensi persekitaran. Gunakancomposer update
untuk menaik taraf kebergantungan mengikut kekangan dalamcomposer.json
dan mengemas kinicomposer.lock
. Dalam kerjasama pasukan,composer update
biasanya hanya dijalankan apabila benar-benar perlu mengemaskini kebergantungan sebelum menghantar perubahan padacomposer.json
dancomposer.lock
.
Perhatian Semasa Menggunakan Composer di Persekitaran ServBay
ServBay menawarkan kemudahan pembangunan tempatan, namun berikut adalah perkara yang perlu diambil perhatian semasa menggunakan Composer:
- Persekitaran Terminal: Pastikan anda menjalankan arahan Composer dalam terminal persekitaran ServBay. ServBay biasanya menambah versi PHP yang aktif ke dalam PATH, jadi anda boleh terus menggunakan arahan
php
dancomposer
di tetingkap terminal yang baharu. Jika menghadapi ralatcommand not found
, cuba buka semula terminal atau periksa sama ada ServBay sedang berjalan. - Versi PHP: Anda boleh bertukar-tukar antara pelbagai versi PHP di ServBay. Arahan
composer
akan sentiasa menggunakan versi PHP yang diaktifkan dalam panel ServBay. Jika projek anda memerlukan versi PHP tertentu untuk Composer, tukar terlebih dahulu versi PHP pada panel kawalan ServBay sebelum menjalankan Composer. - Laluan Projek: Disarankan untuk meletakkan projek web anda di subdirektori dalam root laman web ServBay iaitu
/Applications/ServBay/www
, dan konfigurasikan laman web dalam panel ServBay supaya boleh diakses melalui pelayar. Jalankan arahan Composer dalam subdirektori projek tersebut.
Projek Contoh: Menggunakan Pustaka GuzzleHttp
Berikut adalah contoh ringkas bagaimana menggunakan Composer dalam persekitaran ServBay untuk memasang dan menggunakan pustaka GuzzleHttp (klien HTTP PHP popular).
Cipta Direktori Projek dan Masuk: Dalam root laman web ServBay, cipta direktori baharu dan masuk ke dalamnya:
shcd /Applications/ServBay/www mkdir guzzle_demo.servbay.demo cd guzzle_demo.servbay.demo
1
2
3Nama direktori ini mengikuti piawai penamaan demo ServBay.
Cipta Fail
composer.json
: Dalam direktoriguzzle_demo.servbay.demo
, buat failcomposer.json
dengan kandungan berikut:json{ "require": { "guzzlehttp/guzzle": "^7.0" }, "autoload": { "psr-4": { "App\\": "src/" } } }
1
2
3
4
5
6
7
8
9
10Konfigurasi PSR-4 autoload turut disediakan – meskipun tidak digunakan dalam contoh ini, ia adalah amalan terbaik.
Pasang Kebergantungan: Jalankan pemasangan kebergantungan dalam direktori
guzzle_demo.servbay.demo
:shcomposer install
1Composer akan memuat turun GuzzleHttp dan kebergantungannya, serta menghasilkan direktori
vendor
dan failcomposer.lock
dalam direktori tersebut.Cipta Fail PHP dan Gunakan Pustaka: Buat fail bernama
index.php
di dalam direktoriguzzle_demo.servbay.demo
:php<?php // Import fail autoload Composer require __DIR__ . '/vendor/autoload.php'; use GuzzleHttp\Client; use GuzzleHttp\Exception\RequestException; echo "<h1>Demo GuzzleHttp</h1>"; echo "<pre>"; try { // Cipta instans klien Guzzle $client = new Client(); // Lakukan permintaan GET $response = $client->request('GET', 'https://httpbin.org/get', [ 'query' => ['param1' => 'value1', 'param2' => 'value2'] ]); // Dapatkan kandungan respons $body = $response->getBody()->getContents(); echo "Response Body:\n"; echo $body; // Dapatkan kod status respons $statusCode = $response->getStatusCode(); echo "\n\nStatus Code: " . $statusCode; } catch (RequestException $e) { // Tangani pengecualian permintaan echo "Request Exception:\n"; echo $e->getMessage(); if ($e->hasResponse()) { echo "\nResponse Status: " . $e->getResponse()->getStatusCode(); echo "\nResponse Body: " . $e->getResponse()->getBody()->getContents(); } } catch (\Exception $e) { // Tangani pengecualian lain echo "Ralat telah berlaku:\n"; echo $e->getMessage(); } echo "</pre>"; ?>
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
44Fail ini mengimport autoload, menggunakan klien GuzzleHttp untuk membuat permintaan kepada API demo dan memaparkan hasilnya.
Konfigurasi Laman Web di ServBay: Buka panel kawalan ServBay, pergi ke tab “Laman Web” (dahulunya "Hos"). Klik butang tambah dan konfigurasikan laman baharu ke direktori
/Applications/ServBay/www/guzzle_demo.servbay.demo
, tetapkan domain kepadaguzzle_demo.servbay.demo
. Simpan dan mulakan semula pelayan web berkaitan (seperti Caddy atau Nginx).Akses Melalui Pelayar: Buka pelayar dan lawati
http://guzzle_demo.servbay.demo/
. Anda akan melihat hasil skrip PHP yang memaparkan data daripadahttps://httpbin.org/get
.
Soalan Lazim (FAQ)
S: Saya menggunakan PHP 5.6, Composer tidak dapat berjalan dengan betul. Apa perlu saya lakukan?
J: ServBay menyediakan dua versi Composer: versi arus perdana 2.8.x dan 2.2.x LTS yang serasi dengan versi PHP lama. Untuk menyokong PHP 5.6, sila pasang Composer 2.2 LTS
dan gunakan arahan composer-2.2
.
S: Saya mendapat mesej command not found
apabila menjalankan arahan composer
di terminal. Apakah solusinya?
J:
- Pastikan aplikasi ServBay sedang berjalan.
- Cuba tutup dan buka semula tetingkap terminal anda. ServBay biasanya mengkonfigurasi pembolehubah persekitaran semasa permulaan, terminal baharu akan memuatkan pembolehubah ini.
- Pastikan sekurang-kurangnya satu versi PHP diaktifkan dalam panel kawalan ServBay.
- Jika masih bermasalah, anda boleh cuba gunakan laluan penuh untuk versi PHP dan Composer spesifik ServBay, contohnya:
/Applications/ServBay/php/8.2/bin/php /usr/local/bin/composer install
(laluan sebenar bergantung pada pemasangan anda, tetapi matlamat ServBay ialah anda boleh terus menggunakan arahancomposer
).
S: Bagaimana untuk menentukan Composer menggunakan versi PHP tertentu dalam ServBay?
J: Arahan Composer akan menggunakan versi PHP yang sedang diaktifkan pada panel kawalan ServBay. Untuk menukar versi, aktifkan versi PHP yang dikehendaki di tab PHP panel kawalan, kemudian buka tetingkap terminal baharu dan jalankan composer
.
S: Apakah guna fail composer.lock
? Perlukah saya muat naik ke Git?
J: Fail composer.lock
merekod versi sebenar setiap pustaka yang telah dipasang semasa anda menjalankan composer install
atau composer update
. Sangat digalakkan anda menghantar fail ini ke Git atau sistem kawalan versi yang lain. Ini memastikan semua rakan sepasukan serta persekitaran ujian dan pengeluaran menggunakan versi kebergantungan yang sama, sekaligus mengelakkan isu "berfungsi di mesin saya saja". Apabila orang lain menggandakan projek anda dan menjalankan composer install
, Composer akan merujuk kepada composer.lock
untuk pemasangan yang konsisten.
Rumusan
ServBay, dengan Composer yang diprapasang dan terintegrasi, menawarkan pembangun PHP persekitaran pembangunan tempatan yang cekap dan mudah. Anda boleh mengurus kebergantungan, menggunakan autoload secara automatik dalam pelbagai versi PHP serta memberi tumpuan kepada penulisan kod dan meningkatkan produktiviti serta kualiti projek. Gabungan ServBay dan Composer ialah pilihan kuat pembangunan PHP moden untuk membina dan menyelenggara projek dengan lebih cekap.