Amir fazel
5 سال پیش توسط Amir fazel مطرح شد
5 پاسخ

autoload در ورژن هفت

سلام و وقت بخیر

من یک کلاسی در ورژن 5.7 ساختم که اتولود می شه در کوپوزر به این صورت هست:

"autoload": {
        "files": [
            "app/Http/Helper.php"
        ],
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },

ولی به تازگی پروژه را آبدیت کردم به ورژن 7 ولی توی ورژن هفت گزینه ای به اسم files نداره:

    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ]
    },

چطوری می تونیم اون قسمت "app/Http/Helper.php" را بیاریم توی ورژن 7
ممنون می شویم کمی توضیح دهید


ثبت پرسش جدید
Amir fazel
@fazel1amir2 5 سال پیش مطرح شد
0

به این صورت گذاشتم و درست شد:

{
    "autoload": {
        "files": ["app/Http/Helper.php"]
    }
}

امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 5 سال پیش مطرح شد
0

با استفاده از provider ها میتونید این کار رو انجام بدید و نیازی به تعریف در کامپوزر هم نداره و خودش اعمال میشه
یه کلاس به نام HelperServiceProvider در پوشه Providers در پوشه app بسازید و کد زیر رو کپی کنید در داخل اون

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\ServiceProvider;

class HelperServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {

    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        foreach (glob(app_path().'/Helpers/*.php') as $filename){
            require_once($filename);
        }
    }
}

بعد یه پوشه در داخل app به نام Helpers بسازید و فایل خودتون رو در اون با هر نامی که دوست دارید کپی کنید چون در کد بالا اگه توجه کنید نوشتیم *.php که یعنی هر فایل php هست رو فراخوانی کن
و بعد از اون هم در پوشه config فایل app.php رو باز کنید و در بخش providers اون HelperServiceProvider رو اضافه کنید و تمام

'providers' => [
App\Providers\HelperServiceProvider::class,
]

Amir fazel
@fazel1amir2 5 سال پیش مطرح شد
0

سلام و وقت بخیر

ممنون روش شما را امتحان کردم نشد. هنوز کلاس شناسایی نمی شه.


Amir fazel
@fazel1amir2 5 سال پیش مطرح شد
0

آخه اون helper من یک فایل پی اچ پی برپایه فانکشن هست کلاس نیست.


Amir fazel
@fazel1amir2 5 سال پیش مطرح شد
0

به این صورت گذاشتم و درست شد:

{
    "autoload": {
        "files": ["app/Http/Helper.php"]
    }
}

امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 5 سال پیش مطرح شد
0

شما در واقع باید فایلی که میگید بر پایه فانکشن ها هست داخل پوشه Helpers در پوشه app آپلود میکردید و دقیقا هم منظور من بر پایه فانکشن بود و دیگه درگیر کامپوزر هم نمیشدید چون خودش در این حالت اتوماتیک composer رو ست میکنه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام