В настоящее время я пытаюсь разработать собственный пакет Laravel, но у меня возникают некоторые проблемы с началом работы.
Это моя файловая структура:
-packages
- oliverbusk
-invoiceconverter
-src
-controllers
- InvoiceconverterController.php
-resources
- views
- home.blade.php
-routes
- web.php
- InvoiceConverterServiceProvider.php
Итак, как вы видите, мои файлы находятся в папке src/
.
Прежде всего, это мои composer.json
, внутри папки с моим пакетом :
"extra": {
"laravel": {
"providers": [
"Oliverbusk\\Invoiceconverter\\InvoiceConverterServiceProvider"
]
}
}
Затем я автоматически загрузил это в мои проекты main composer.json
file:
"require": {
//....
"oliverbusk/invoiceconverter": "dev-feature-package"
},
"autoload": {
[...]
"psr-4": {
"App\\": "app/",
"Oliverbusk\\Invoiceconverter\\": "packages/oliverbusk/invoiceconverter"
}
},
Это мой файл поставщика услуг:
namespace Oliverbusk\Invoiceconverter;
use Illuminate\Support\ServiceProvider;
class InvoiceConverterServiceProvider extends ServiceProvider
{
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//Load our routes
$this->loadRoutesFrom(__DIR__ . '/routes/web.php');
//Load our views
$this->loadViewsFrom(__DIR__ . '/resources/views', 'invoiceconverter');
}
/**
* Register services.
*
* @return void
*/
public function register()
{
//
}
}
И мой файл контроллера, расположенный в controllers/
:
namespace Oliverbusk\Invoiceconverter\Controllers;
use App\Http\Controllers\Controller;
class InvoiceconverterController extends Controller
{
public function index()
{
return view('invoiceconverter::home');
}
}
Последнее, мой routes/web.php
файл:
Route::group(['namespace' => 'Oliverbusk\InvoiceConverter\Controllers'], function () {
Route::get('invoiceconverter', 'InvoiceconverterController@index');
});
Ошибка:
Класс Oliverbusk \ InvoiceConverter \ Controllers \ InvoiceconverterController не существует
Информация о бонусе:
Автозагрузка дампа Composer показывает следующее:
Discovered Package: oliverbusk/invoiceconverter
- Я уже пытался очистить кеш с помощью
php artisan:cache:clear
.
- Я тоже пробовал
composer update