composer require phpunit/phpunit
. Seterusnya, composer akan memuat turun fail-fail lain yang diperlukan untuk memastikan sumber kod tersebut berfungsi dengan sempurna.Manakala Autoloading pula merupakan satu cara untuk menstrukturkan projek kita dengan lebih tersusun. Ianya juga membolehkan kita menggunakan kod-kod secara terus tanpa perlu meletakkan penyata require bagi setiap fail di dalam projek kita.
Memahami kedua-dua konsep ini mungkin akan mengambil masa, tetapi sepertimana apabila menggunakan kerangka PHP yang ada ( Laravel misalnya ) , susunatur projek kita akan menjadi lebih tersusun dan kemas. Hal ini disebabkan kita mengambil kira amalan pengkodan yang baik, sekaligus memudahkan programmer lain bekerjasama dalam projek tersebut.
Tiga Cara Untuk Autoloading
Dengan menggunakan composer, di dalam fail composer.json, anda hanya perlu nyatakan bagaimana dan fail apa yang anda hendak diautoloadkan ke dalam projek. Terdapat 3 pilihan yang boleh dipilih untuk melakukan autoloading, bergantung dengan keperluan anda. Tiga pilihan tersebut ialah, Autoloading Berasaskan Fail , Autoloading Berasaskan Classmap, dan Autoloading Berasaskan PSR.1.Autoloading Berasaskan Fail
Pertama sekali kita akan membuat satu contoh mudah, untuk memahami bagaimana kita boleh autoload sesuatu fail- Dalam folder www anda, buat satu folder bernama aldemo, singkatan Autoloading Demo.
- Kemudian buat satu folder baru, namakannya sebagai files. Dalam folder tersebut, kita akan letak semua kod yang akan kita tulis.
- Buat satu fail baru, namakannya sebagai helpers.php . Di dalam fail tersebut tulis sebuah function. Anda boleh menggunakan kod dibawah sebagai contoh.
// files\helpers.php
<?php
function jutsu ()
{
return 'Kagebunshin no jutsu.';
}
- Kemudian kita hanya perlu membuat fail composer.json di dalam folder aldemo, di dalam fail tersebut, anda perlu menulis konfigurasi dibawah.
// composer.json
{
"autoload": {
"files": ["files/helpers.php"]
}
}
-
Dengan menggunakan terminal, dan berada di dalam folder aldemo , jalankan arahan
composer dump-autoload
. Sebuah folder dengan nama vendor akan tercipta secara automatik. - Seterusnya di dalam folder aldemo buat satu fail index.php . Di dalam fail tersebut, letak kod dibawah
// index.php
<?php
echo jutsu();
- Sekarang buka browser dan pergi ke http://localhost/aldemo . Anda akan berdepan dengan error dibawah:
Fatal error: Uncaught Error: Call to undefined function jutsu() in G:\Programs\laragon\www\aldemo\index.php:2 Stack trace: #0 {main} thrown in G:\Programs\laragon\www\aldemo\index.php on line 2
- Ini kerana kita perlu nyatakan dalam fail index.php yang kita perlukan fail autoload tersebut. Edit fail index.php dan letakkan kod dibawah.
// index.php
<?php
require 'vendor/autoload.php';
echo jutsu();
- Kemudian refresh semula halaman tersebut, anda akan nampak teknik ninja yang selalu Naruto gunakan. Kagebunshin no jutsu.
2.Autoloading Berasaskan Classmap
Seterusnya kita akan lihat bagaimana caranya kita untuk buat classmap autoloading. Cara ini lebih mudah sebab kita tidak perlu untuk nyatakan setiap fail yang kita hendak masukkan ke dalam autoload, kita cuma perlu meletakkan direktori sahaja.- Buat satu folder dengan nama classmap di dalam folder aldemo .
- Di dalam folder classmap , buat satu fail dengan nama CmAutoload.php . Di dalam fail tersebut kita akan tulis logic mudah. Anda boleh gunakan kod dibawah sebagai rujukan.
// classmap\CmAutoload.php
<?php
class CmAutoload
{
public function classmap () {
return 'Rasengannnnnnnnn! ';
}
}
Anda mesti menggunakan Class! classmap hanya boleh dibuat menggunakan class sahaja, manakala dengan fail, anda boleh menggunakan function sahaja. - Kemaskini fail index.php anda dan buat satu objek berdasarkan class yang kita tulis sebentar tadi.
// index.php
<?php
require 'vendor/autoload.php';
echo jutsu();
echo "<br>";
$cm = new Cmautoload;
echo $cm->classmap();
- Kemaskini fail composer.json anda dengan menambah konfigurasi dibawah
// composer.json
{
"autoload": {
"files": ["files/helpers.php"],
"classmap": ["classmap"]
}
}
penamaan folder tersebut mungkin tidak berapa konvensional, tetapi buat masa rasanya itu sudah mencukupi. - Seterusnya, jalankan semula arahan
composer dump-autoload
- Refresh semula halaman http://localhost/aldemo , anda sepatutnya dapat lihat teknik kedua yang selalu Naruto gunakan.
Tulis Komen