پیرو سوال قبلی هنوز مشکل حل نشده و پیامی که عکس اون ارسال شده نمایش داده میشه ممنون میشم بررسی کنید بفرمایید مشکل از کجا هست؟
پیام:
App\\Services\\CityService not found
من فکر میکنم مشکل از جایی هست که عکسش رو ارسال کردم ولی متوجه نمیشم باید چکار کنم!!!
امیرحسین سلطانی۲۵ مرداد ۱۴۰۲، ۱۳:۴۱
سلام،
ما بین مسیر دهی در لاین 7 عبارت loader.php رو حذف کنید. احتمالاً دستتون خورده، کپی پیست شده چون در سورسی که در پست قبل فرستادید این عبارت نبوده و همچنین نباید هم باشد چون بودنش اشتباه است، علتش را هم باید بدانید، چنین مسیری اشتباه است، فرضاً:
../loader.php/example.php
دو فایل پشت سرهم در آدرس دهی نمیآید و همچین چیزی در سیستم فایل هم نداریم.
جدای ازینکه راهنمایی میشید جهت فیکس این موارد، اگر این مورد رو درک مناسبی ازش پیدا نکردید نیاز دارید بار دیگر مسائل php را مرور کنید.
چون این موارد بسیار کاربردی و بدیهی است. برای مثال اگر بخواهیم دیباگ کنیم و علت را متوجه بشیم، یکبار $class_file را echo میکنیم تا ببینیم مقدار داخل این متغیر چه چیزی است و چه مسیری وارد if میشود که پیدا جوابش false میشود و فایل را پیدا نمیکند.
در حال حاضر اگر مقدار $class_file را در خروجی چاپ کنیم، چیزی شبیه به این مسیر خواهید داشت:
پ.ن: البته ویندوز با / مشکلی ندارد. در واقع ویندوز هم با / کار میکند و هم با \\ اما استانداردش \\ است.
محسن موحد۲۵ مرداد ۱۴۰۲، ۱۵:۲۳
Fatal error: Uncaught Error: Call to undefined function App\\Services\\getCities() in C:\\xampp\\htdocs\\7learn-wp.local\\iran\\App\\Services\\CityService.php:5 Stack trace: #0 C:\\xampp\\htdocs\\7learn-wp.local\\iran\\api\\v1\\cities\\index.php(7): App\\Services\\CityService->getCities(Object(stdClass)) #1 {main} thrown in C:\\xampp\\htdocs\\7learn-wp.local\\iran\\App\\Services\\CityService.php on line 5
با جایگذاری کد ارسالی به جای خط ۷ خطا بالا رو دریافت کردم
امیرحسین سلطانی۲۶ مرداد ۱۴۰۲، ۱۱:۵۸
کدهارو برای فراخونی و تعریف تابع بررسی کنید.
فایل iran >loader.php :
include_once"App/iran.php";
spl_autoload_register(function ($class) {
$class_path = str_replace('\\\\', DIRECTORY_SEPARATOR, $class);
$class_file = __DIR__ . DIRECTORY_SEPARATOR . $class_path . ".php";
if (!(file_exists($class_file) and is_readable($class_file)))
die("$class not found");
include_once$class_file;
});