Tidak, Anda tidak dapat mengimpor kelas dengan use
kata kunci. Anda harus menggunakan include
/ require
statement. Bahkan jika Anda menggunakan pemuat otomatis PHP, pemuat otomatis masih harus menggunakan baik include
atau secara require
internal.
Tujuan penggunaan kata kunci:
Pertimbangkan kasus di mana Anda memiliki dua kelas dengan nama yang sama; Anda akan merasa aneh, tetapi ketika Anda bekerja dengan struktur MVC yang besar, hal itu terjadi. Jadi jika Anda memiliki dua kelas dengan nama yang sama, letakkan di ruang nama yang berbeda. Sekarang pertimbangkan kapan auto loader Anda memuat kedua kelas (dilakukan oleh require
), dan Anda akan menggunakan objek kelas. Dalam kasus ini, kompilator akan bingung memilih objek kelas mana yang akan dimuat di antara dua objek kelas. Untuk membantu compiler membuat keputusan, Anda dapat menggunakan use
pernyataan tersebut sehingga dapat membuat keputusan mana yang akan digunakan.
Saat ini kerangka kerja utama memang menggunakan include
atau require
via composer
danpsr
1) komposer
2) Pemuat otomatis PSR-4
Menelaahnya dapat membantu Anda lebih jauh. Anda juga dapat menggunakan alias untuk menangani kelas yang tepat. Misalkan Anda memiliki dua kelas dengan nama yang sama, katakanlah Mailer
dengan dua ruang nama yang berbeda:
namespace SMTP;
class Mailer{}
dan
namespace Mailgun;
class Mailer{}
Dan jika Anda ingin menggunakan kedua kelas Mailer secara bersamaan, Anda dapat menggunakan alias.
use SMTP\Mailer as SMTPMailer;
use Mailgun\Mailer as MailgunMailer;
Nanti di kode Anda jika Anda ingin mengakses objek kelas tersebut maka Anda dapat melakukan hal berikut:
$smtp_mailer = new SMTPMailer;
$mailgun_mailer = new MailgunMailer;
Ini akan mereferensikan kelas aslinya.
Beberapa mungkin bingung bahwa jika tidak ada nama kelas yang mirip maka tidak ada penggunaan use
kata kunci. Nah, Anda dapat menggunakan __autoload($class)
fungsi yang akan dipanggil secara otomatis ketika use
pernyataan dieksekusi dengan kelas untuk digunakan sebagai argumen dan ini dapat membantu Anda memuat kelas pada saat run-time dengan cepat jika diperlukan.
Lihat jawaban ini untuk mengetahui lebih lanjut tentang pemuat otomatis kelas.