🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۶ محسن محمدخانی
مشکل Fatal error: Uncaught با فایل ConfigFileNotFoundException
جامعه پی اچ پی ایجاد شده در ۰۱ خرداد ۱۴۰۰

سلام

من   مشکل Fatal error: Uncaught  با  فایل ConfigFileNotFoundException  برخورد کردم

در فایل ConfigFileNotFoundException فایل Exception برابر با Exception\ گذاشتم اما مشکل حل نشد

چند ساعت روش وقت گذاشتم اما باز مشکل حل نشد 

من فایل به حالت زیر تغییر دادم

 

<?php
namespace App\Helpers;
class Configs  {
  public static function getFileContent (string $fileName)  {
    $filePath = realpath( __DIR__."../Configs/$fileName.php");
    if (!$filePath){
       throw new \Exception();
    }
  }
}

 

ارور زیر داد

 

Fatal error: Uncaught Exception in /var/www/expret-php/tdd/orm/src/Helpers/Configs.php:۱۰ Stack trace: #۰ /var/www/expret-php/tdd/orm/index.php(۷): App\Helpers\Configs::getFileContent() #۱ {main} thrown in /var/www/expret-php/tdd/orm/src/Helpers/Configs.php on line ۱۰

وقتکیه throw برمیدارم مقدار NULL نمایش داده میشه

مشکل از هسته php در سیستم من نیست؟

محسن محمدخانی ۰۱ خرداد ۱۴۰۰، ۱۵:۲۵

سلام و احترام

لطفا فایل پروژتون رو قرار بدید

امیر صالحی ۰۱ خرداد ۱۴۰۰، ۱۶:۵۹

سلام

محسن محمدخانی ۰۱ خرداد ۱۴۰۰، ۱۷:۰۳

سلام

بعد از ساعت‌ها بررسی , مشکل حل شد.

<?php
namespace App\Helpers;
use \Exception;
class Configs
{
    public static function getFileContent(string $fileName)
    {
        /** error */
        // $filePath = realpath(__DIR__."../Configs/$fileName.php");
        /** correct */
        $filePath = realpath(__DIR__ . "/../Configs/" . $fileName . ".php");
        if (!$filePath) {
            throw   new Exception();
        }
        echo "okey";
    }
}

کد زیر باعث ارور هستش

$filePath = realpath(__DIR__."../Configs/$fileName.php");

متن ارور

Fatal error: Uncaught Exception in /var/www/expret-php/tdd/orm/src/Helpers/Configs.php:15 Stack trace: #0 /var/www/expret-php/tdd/orm/index.php(7): App\Helpers\Configs::getFileContent() #1 {main} thrown in /var/www/expret-php/tdd/orm/src/Helpers/Configs.php on line 15

 

اما کد زیر ارور نمایش نمیده

$filePath = realpath(__DIR__ . "/../Configs/" . $fileName . ".php");

مشکل اینجاست که چرا php  به Uncaught Exception ارور میده و درصورتیکه اون مشکلی نداره و ارور مربوط به دستور    realpath هستش

این ارور باعث شد که من فکر کنم Exception در هسته php من وجود نداره و php در لینوکس ابونتو من به درستی نصب نشده ولی وقتیکه در ویندوز چک کردم بازهم این مشکل دیدم تا این کد استاد کپی کردم و دیدم که ارور نمیده متوجه شدم که مشکل از دستور    realpath هستش 

ایا این یک باگ در هسته php نیست؟؟

محسن محمدخانی ۰۲ خرداد ۱۴۰۰، ۱۷:۴۳

سلام .. 

خیر مشکل از PHP نیست .. روشی که شما Variable رو با String کانکت کردید روش درستی نیست و به همین خاطر چنین اروری داده میشه.

مهرداد سامی ۰۹ خرداد ۱۴۰۰، ۱۷:۵۲

سلام 

من اینو میدونم

مشکل من  اینجاست که اروری که php به من داده ارور زیر هستش

Fatal error: Uncaught Exception in /var/www/expret-php/tdd/orm/src/Helpers/Configs.php:15 Stack trace: #0 /var/www/expret-php/tdd/orm/index.php(7): App\Helpers\Configs::getFileContent() #1 {main} thrown in /var/www/expret-php/tdd/orm/src/Helpers/Configs.php on line 15

این ارور اصلا نمیگه که مشکل از Variable رو با String کانکت کردن هستش , میگه   Uncaught Exception  یعنی مشکل از Exception هستش که Exception جز هسته php هست که امکان نداره مشکل داشته باشه یا احتمالا بد نصب شده که من میخواستم php داخل لینوکس پاک کنم و دوباره نصب کنم 

درصورتیکه مشکل از  Variable رو با String کانکت کردن هستش و php نتونسته مشکل پیدا کنه 

منظور من از باگ در هسته php این هستش

این مشکل سه شب منو درگیر کرد

 

 

 

محسن محمدخانی ۰۹ خرداد ۱۴۰۰، ۱۸:۱۳