اذهب إلى المحتوى
  • 0

مشكلة Call to undefined function Illuminate\Filesystem\join_paths

السؤال

نشر

السلام عليكم

هل المشكلة في الصياغة أم هنالك ملف ناقص، لأن جميع الملفات تبدو مكتملة في ال directory

Fatal error: Uncaught Error: Call to undefined function Illuminate\Filesystem\join_paths() in /home/vol17_1/infinityfree.com/if0_38415802/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:595 Stack trace: #0 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(393): Illuminate\Foundation\Application->joinPaths('$basePath', 'app') #1 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(367): Illuminate\Foundation\Application->basePath('app') #2 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(338): Illuminate\Foundation\Application->path() #3 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(326): Illuminate\Foundation\Application->bindPathsInContainer() #4 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(201): Illuminate\Foundation\Application->setBasePath('$basePath') #5 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/bootstrap/app.php(14): Illuminate\Foundation\Application->__construct('/home/vol17_1/i...') #6 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/public/index.php(38): require_once('/home/vol17_1/i...') #7 {main} thrown in /home/vol17_1/infinityfree.com/if0_38415802/htdocs/vendor/laravel/framework/src/Illuminate/Foundation/Application.php on line 595

Recommended Posts

  • 0
نشر

لا يتم التعرف على الدالة join_paths غالبًا تلك مشكلة بسبب إصدار لارافل ربما قديم لديك أو لم يتم تثبيت الحزم بشكل صحيح، حاول تنفيذ الأمر:

composer update

لو استمرت المشكلة توجه إلى المسار التالي في المشروع:

vendor/laravel/framework/src/Illuminate/Filesystem
/functions.php

واستبدل الكود الذي به بالتالي:

<?php

namespace Illuminate\Filesystem;

if (! function_exists('Illuminate\Filesystem\join_paths')) {
    /**
     * Join the given paths together.
     *
     * @param  string|null  $basePath
     * @param  string  ...$paths
     * @return string
     */
    function join_paths($basePath, ...$paths)
    {
        foreach ($paths as $index => $path) {
            if (empty($path) && $path !== '0') {
                unset($paths[$index]);
            } else {
                $paths[$index] = DIRECTORY_SEPARATOR.ltrim($path, DIRECTORY_SEPARATOR);
            }
        }

        return $basePath.implode('', $paths);
    }
}

 

  • 0
نشر

يمكنك حل المشكلة بطريقة مختلفة تجنب تعديل ملفات ال vendor مباشرة، وذلك عبر إنشاء ملف مساعد (helper) خاص بك يحتوي على تعريف الدالة ثم تضمينه ضمن autoload الخاص بالمشروع وبهذه الطريقة تعرف الدالة قبل أن يحتاج إليها كود Laravel دون تعديل أي ملف من ملفات الvendor.

أولا أنشئ ملفا تحت مجلد المشروع مثلا داخل app/Helpers/ وليكن اسمه helpers.php وفي هذا الملف عرف دالة join_paths في النطاق (namespace) المناسب بحيث تحاكي تعريفها المطلوب.

ثم قم بتحرير ملف composer.json وأضف مسار الملف ضمن القسم "autoload" تحت المفتاح "files" وهذا يضمن تحميل الملف تلقائيا عند بدء تشغيل التطبيق وبعد حفظ التغييرات، نفّذ الأمر:

composer dump-autoload

وهذا حتى يتم تحديث نظام autoload وتطبيق التعريف الجديد.

ثم أعد تشغيل التطبيق وتأكد من أن الخطأ لم يعد يظهر، مما يعني أن الدالة أصبحت معرفة بشكل صحيح قبل استخدامها في كود Laravel.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

هل الاستضافة الخاصة بك مجانية ؟ إذا كانت كذلك فإن الاستضافة المجانية لها عدد من الملفات والمجلدات المسموح بها وستجد انها باسم Inodes وإذا تخطيت الحد المسموح به فلن يتم انشاء ملفات او مجلدات اخرى.

لذلك تاكد من انه يوجد لديك Inodes متاحة لديك في الاستضافة ومن ثم تنفيذ الأمر التالي :

composer update 

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...