Pemuatan Automatik Kelas dalam OOP dalam PHP
Anda sudah tahu bahawa untuk menggunakan
sesuatu kelas, kita mesti menyambungkannya
melalui require. Apabila projek mempunyai
banyak kelas, hasilnya adalah banyak
sambungan yang sangat tidak selesa untuk ditulis
dan sukar untuk dikawal.
Untuk menyelesaikan masalah sedemikian dalam PHP, telah ditambahkan pemuatan automatik kelas. Pemuatan automatik membolehkan PHP memuatkan fail dengan kelas secara automatik apabila cuba mengakses kelas tersebut dalam kod. Walau bagaimanapun, kelas tidak akan dimuatkan begitu sahaja - mereka mesti diletakkan di dalam folder tapak web dengan cara yang khusus, mengikut beberapa persetujuan tentang nama fail dan folder kelas. Anda boleh menggunakan persetujuan terbina dalam PHP, atau mencipta sendiri dan menggunakannya.
Mari kita mula-mula menganalisis persetujuan standard PHP. Persetujuan ini terletak pada fakta bahawa jika kita mempunyai beberapa fail dengan kelas, maka laluan melalui folder tapak web ke fail ini harus tepat dengan ruang nama fail, dan nama fail mesti sepadan dengan nama kelas yang disimpan di dalamnya. Pada masa yang sama, nama folder dan fail hendaklah dalam huruf kecil.
Mari lihat contoh. Katakan kita mempunyai kelas berikut:
<?php
namespace Core\Admin;
class PageController
{
}
?>
Menurut persetujuan, kelas ini mesti terletak
dalam folder /core/admin/ dalam fail
pagecontroller.php.
Sekarang mari dalam fail index.php kita gunakan
kelas kami, tanpa menyambungkannya melalui require,
tetapi menggunakan pemuatan automatik. Untuk ini, pada permulaan
fail di mana kelas dipanggil, hendaklah
dipanggil fungsi spl_autoload_register.
Mari lakukan ini:
<?php
spl_autoload_register(); // hidupkan pemuatan automatik
$obj = new Core\Admin\PageController; // tenang buat objek
?>
Dalam fail index.php hidupkan pemuatan automatik
kelas. Mengikut persetujuan tentang nama
folder dan fail buat kelas Core\User,
kelas Core\Admin\Controller dan kelas
Project\User\Data. Dalam fail index.php
buat objek kelas-kelas ini.