🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ صمد انتظامی
اجرا نشدن Autoloader در مک - شناسایی نشدن مسیر دارای \\ و خطای دیباگر
جامعه پی اچ پی ایجاد شده در ۱۱ دی ۱۴۰۰

سلام. من تا دقیقه ۳۲ این ویدیو پیش اومدم. تا به این جای کار در فایل autoloader.php کد‌های زیر رو نوشتم:

include_once 'App/iran.php';
spl_autoload_register(function($class){
    $class_file = __DIR__ . '/' . $class . '.php';
    echo $class_file . "
";
    include_once $class_file;
});
use \\App\\Services\\CityService;
use \\App\\Utilities\\Response;
// new CityService;
Response::respond([23,34,45,56,67],200);

وقتی کد رو اجرا میکنم این ارور رو میده:

/Users/seyedrezabazyar/Sites/api/Iran/App\\Utilities\\Response.php
Warning: include_once(/Users/seyedrezabazyar/Sites/api/Iran/App\\Utilities\\Response.php): Failed to open stream: No such file or directory in /Users/seyedrezabazyar/Sites/api/Iran/loader.php on line 8
Warning: include_once(): Failed opening '/Users/seyedrezabazyar/Sites/api/Iran/App\\Utilities\\Response.php' for inclusion (include_path='.:/usr/local/Cellar/php/8.1.0/share/php/pear') in /Users/seyedrezabazyar/Sites/api/Iran/loader.php on line 8
Fatal error: Uncaught Error: Class "App\\Utilities\\Response" not found in /Users/seyedrezabazyar/Sites/api/Iran/loader.php:16 Stack trace: #0 {main} thrown in /Users/seyedrezabazyar/Sites/api/Iran/loader.php on line 16

فکر کنم مسیر دیباگر رو چون بجای / از \\ استفاده شده، نمیتونه اون رو پیدا کنه... راه حل استاندارد واسه حل این مشکل چیه؟

کد زیر رو جایگزین کد خط چهارم کردم و ارور برطرف شد:

$class_file = __DIR__ . '/' . str_replace('\\\\', '/', $class) . '.php';

این روش غیر استاندارد نیست؟ بعدا مشکل ساز نمیشه؟

صمد انتظامی ۱۳ دی ۱۴۰۰، ۰۶:۲۰

سلام.

دستوری که استفاده کردید درسته و راهش همینه.

بهترین پاسخ
هیلا عبادی ۱۳ دی ۱۴۰۰، ۱۰:۳۴