ব্যবহারের একটি গটচা রয়েছে, যদিও এটি এখন পর্যন্ত দ্রুততম পদ্ধতি, এটি আপনার সমস্ত ফাইলের নামও ছোট হাতের হতে পারে বলে আশা করে।
spl_autoload_extensions(".php");
spl_autoload_register();
উদাহরণ স্বরূপ:
সামসুপারক্লাস ক্লাসযুক্ত একটি ফাইলের নাম স্যামস্পেরক্লাস.পিপি রাখা দরকার, লিনাক্সের মতো কেস সংবেদনশীল ফাইল সিস্টেম ব্যবহার করার সময় এটি একটি গোটচা, যদি আপনার ফাইলটির নাম সোমাস্পারক্লাস.ফ্প হয় তবে উইন্ডোজটির অধীনে কোনও সমস্যা নয়।
আপনার কোডে __autoload ব্যবহার করা এখনও পিএইচপি-র বর্তমান সংস্করণগুলির সাথে কাজ করতে পারে তবে ভবিষ্যতে এই বৈশিষ্ট্যটি অবচয় এবং অবশেষে অপসারণের প্রত্যাশা করে।
সুতরাং বিকল্পগুলি কি বাকি আছে:
এই সংস্করণটি পিএইচপি 5.3 এবং তারপরের উপরে কাজ করবে এবং সামসুপারক্লাস.ফ্প এবং সামসুপারক্লাস.পিপি ফাইলের জন্য অনুমতি দেয়। যদি আপনি 5.3.2 বা তার বেশি ব্যবহার করে থাকেন তবে এই অটোলোডার আরও দ্রুত কাজ করবে।
<?php
if ( function_exists ( 'stream_resolve_include_path' ) == false ) {
function stream_resolve_include_path ( $filename ) {
$paths = explode ( PATH_SEPARATOR, get_include_path () );
foreach ( $paths as $path ) {
$path = realpath ( $path . PATH_SEPARATOR . $filename );
if ( $path ) {
return $path;
}
}
return false;
}
}
spl_autoload_register ( function ( $className, $fileExtensions = null ) {
$className = str_replace ( '_', '/', $className );
$className = str_replace ( '\\', '/', $className );
$file = stream_resolve_include_path ( $className . '.php' );
if ( $file === false ) {
$file = stream_resolve_include_path ( strtolower ( $className . '.php' ) );
}
if ( $file !== false ) {
include $file;
return true;
}
return false;
});
AS
। এই সমাধান কাজ করে না কেন। আপনি ঠিক তেমন সহজেই করতে পারেন:use Person\Barnes\David\Class1;
(যা সমানuse Person\Barnes\David\Class1 as Class1;
)।