سلام و وقت بخیر
من یک کلاسی در ورژن 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
ممنون می شویم کمی توضیح دهید
به این صورت گذاشتم و درست شد:
{
"autoload": {
"files": ["app/Http/Helper.php"]
}
}با استفاده از 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,
]سلام و وقت بخیر
ممنون روش شما را امتحان کردم نشد. هنوز کلاس شناسایی نمی شه.
شاید پاسخ شما همینجا باشد
آخه اون helper من یک فایل پی اچ پی برپایه فانکشن هست کلاس نیست.