Я читал несколько уроков по созданию пользовательских классов для Laravel. Я следовал инструкциям и сделал именно то, что говорят учебники:
Создана новая папка laravel / app / library / graphics /
Отредактировал laravel / app / start / global.php, где я добавил:
app_path().'/libraries/graphics',
Создан новый файл в laravel / app / library / graphics / с именем Image.php с этим кодом:
<?php namespace graphics/Image;
class Image {
public static function hello() {
return 'Hello';
}
}
Используемый composer dump-autload
команда
Route::get('/' , function() { return Graphics\Image::hello(); } );
возвращает ошибку:
Использование неопределенной постоянной графики — предполагается «графика»
Я также добавил "app/libraries/graphics/Image.php"
строка в раздел автозагрузки composer.json, который не должен быть обязательным. Почему я получаю эту ошибку? Каждый урок показывает одну и ту же процедуру для этого, но почему это не работает?
Разве ваше пространство имен не должно быть graphics
? Текущий файл создает graphics\Image\Image
, Попробуйте удалить Image
из вашего пространства имен.
<?php namespace graphics;
class Image {
public static function hello() {
return 'Hello';
}
}
Вы пытались использовать artisan dump-autoload
вместо?
Это очистит весь скомпилированный код Laravel.
Посмотреть здесь: Каковы различия между "php artisan dump-autoload" а также "композитор дамп-автозагрузка"
Вам не нужно путать для себя. Я решил проблему в Laravel 5. Вам не нужно добавлять строку «app / library / graphics / Image.php» в раздел автозагрузки composer.json, потому что По умолчанию каталог приложения находится в пространстве имен под приложением и автоматически загружается Composer с использованием стандарта автозагрузки PSR-4.
<?php
namespace App\libraries\graphics;
class Image {
public static function hello() {
return 'Hello';
}
}
и теперь используйте ваш класс изображения из вашего маршрута.
Route::get('graphics',function(){
echo \App\libraries\graphics\Image::hello();
});