Класс «App\Http\Controllers\getID3» не найден при попытке включить файл PHP в Laravel 5

Я использую библиотеку getid3 с проектом Laravel. Я создал папку с именем «includes» в каталоге app/, а внутри нее папку с именем getid3, содержащую набор php-файлов, я включил файл getid3.php, который находится в этом каталоге. Вот содержимое файла вместе с библиотекой на Github:- https://github.com/JamesHeinrich/getID3/blob/master/getid3/getid3.php

В контроллере, когда я пытаюсь создать экземпляр класса getID3, который определен в этом файле, я получаю следующую ошибку: -

FatalErrorException in ApiV1.php line 217:
Class 'App\Http\Controllers\getID3' not found

Вот блок кода в контроллере, в котором я пытаюсь создать экземпляр класса

ob_start();
if ($fp_output = fopen($FilenameOut, 'wb')) {

    ob_end_clean();
    // Initialize getID3 engine
    $getID3 = new  \getID3;
    foreach ($FilenamesIn as $nextinputfilename) {

        $CurrentFileInfo = $getID3->analyze($nextinputfilename);
        if ($CurrentFileInfo['fileformat'] == 'mp3') {

Как решить эту ошибку?


person Hazem Taha    schedule 22.07.2015    source источник
comment
Где находится строка 107 в вашем блоке кода?   -  person Jerodev    schedule 22.07.2015
comment
Очевидно, строка, в которой инициализируется класс getID3 :). $getID3 = новый \getID3;   -  person Hazem Taha    schedule 22.07.2015
comment
@Jerodev Извините, строка 107 — это строка \App::make('url')-›to(/audiofiles/$enAudioTitle.mp3); Когда я добавил обратную косую черту, проблема была решена. Обратная косая черта также решила основную ошибку. Отмечен как правильный ответ. Спасибо :)   -  person Hazem Taha    schedule 22.07.2015


Ответы (1)


Ваш класс был определен в корневом пространстве имен, вам нужно добавить \ перед именем класса. В противном случае php будет думать, что он находится в том же пространстве имен, что и текущий класс, в настоящее время App\Http\Controllers.

Вы должны сделать что-то вроде этого:

$id3 = new \getID3;
person Jerodev    schedule 22.07.2015
comment
Когда я добавил эту обратную косую черту, ошибка стала такой: FatalErrorException в строке 107 ApiV1.php: класс «App\Http\Controllers\App» не найден - person Hazem Taha; 22.07.2015
comment
Можете ли вы показать код из этой строки? Если вы вызываете App, вам также нужно добавить перед ним обратную косую черту. \App - person Jerodev; 22.07.2015
comment
................... ob_start(); если ($fp_output = fopen($FilenameOut, 'wb')) { ob_end_clean(); // Инициализировать механизм getID3 $getID3 = new \getID3; ...... foreach ($FilenamesIn as $nextinputfilename) { $CurrentFileInfo = $getID3-›analyze($nextinputfilename); if ($CurrentFileInfo['fileformat'] == 'mp3') { ...... ..................... - person Hazem Taha; 22.07.2015
comment
Можете ли вы добавить код из ApiV1.php в свой вопрос, потому что это очень трудно читать. Или создайте еще один большой двоичный объект github. - person Jerodev; 22.07.2015
comment
Сделанный. Кстати, проблема решилась сама собой, потом я почистил кеш проекта Laravel, проблема снова вернулась. Как вы думаете, почему это произошло? - person Hazem Taha; 22.07.2015