Dalam PHP, bisakah saya memasukkan direktori skrip?
yaitu Alih-alih:
include('classes/Class1.php');
include('classes/Class2.php');
apakah ada sesuatu seperti:
include('classes/*');
Tampaknya tidak dapat menemukan cara yang baik untuk memasukkan koleksi sekitar 10 sub-kelas untuk kelas tertentu.
get_include_path()
masih tidak dapat secara otomatis menentukan urutan pemuatan (kelas dasar dapat dimuat SETELAH kelas diperluas, menghasilkan kesalahan)Inilah cara saya memasukkan banyak kelas dari beberapa folder di PHP 5. Ini hanya akan berfungsi jika Anda memiliki kelas.
sumber
Saya menyadari ini adalah posting yang lebih lama TETAPI ... JANGAN TERMASUK KELAS ANDA ... alih-alih gunakan __autoload
Maka setiap kali Anda memanggil kelas baru yang belum dimasukkan, php akan otomatis mem-boot __autol dan memasukkannya untuk Anda
sumber
Jika Anda menggunakan php 5, Anda mungkin ingin menggunakan autoload .
sumber
ini hanya modifikasi dari kode Karsten
sumber
Cara melakukan ini di 2017:
Direkomendasikan oleh dokumentasi PHP di sini: Kelas autoloading
sumber
autoload
akan ikut bermain hanya ketika seseorang mencoba yaitu untuk membuat objek dari kelas yang belum dimuat.Anda dapat menggunakan set_include_path :
http://php.net/manual/en/function.set-include-path.php
sumber
classes/
ketika menggunakaninclude
/require
Jika Anda ingin memasukkan semua dalam direktori DAN subdirektori-nya:
Jangan lupa bahwa itu akan menggunakan urutan alfabet untuk memasukkan file Anda.
sumber
The entries are returned in the order in which they are stored by the filesystem.
- php.net/manual/en/function.readdir.phpJika Anda ingin memasukkan banyak kelas tanpa harus mendefinisikan masing-masing kelas sekaligus, Anda dapat menggunakan:
Dengan cara ini Anda bisa mendefinisikan kelas pada file php yang berisi kelas dan bukan seluruh daftar
$thisclass = new thisclass();
Adapun seberapa baik ia menangani semua file? Saya tidak yakin mungkin ada sedikit penurunan kecepatan dengan ini.
sumber
Jika TIDAK ada ketergantungan antar file ... berikut adalah fungsi rekursif untuk memasukkan SEMUA file php di SEMUA subdirektori:
sumber
sumber
Saya sarankan Anda menggunakan fungsi readdir () dan kemudian loop dan sertakan file (lihat contoh 1 pada halaman itu).
sumber
Jangan menulis fungsi () untuk memasukkan file dalam direktori. Anda mungkin kehilangan lingkup variabel, dan mungkin harus menggunakan "global". Hanya loop pada file.
Selain itu, Anda mungkin mengalami kesulitan ketika file yang disertakan memiliki nama kelas yang akan diperluas ke kelas lain yang ditentukan dalam file lain - yang belum termasuk. Jadi, berhati-hatilah.
sumber