Laravel: как включить файл из папки Vendor в Laravel

Я пытаюсь включить службу YouTube Analytics от Google, но не могу получить к ней доступ через папку Vendor.

include(app_path.'path/to/analytics/Google_YoutubeAnalyticsService.php')

Это не работает, потому что по умолчанию это папка приложения.

Как я могу выйти из папки App в папку Vendor (где находится файл YouTube Analytics)?

Ошибка {

include(C:\xampp\htdocs\mysite\app/path/to/analytics/Google_YoutubeAnalyticsService.php): не удалось открыть поток: нет такого файла или каталога


person rnldpbln    schedule 10.02.2014    source источник
comment
судя по всему, использование ../ тоже не работает   -  person rnldpbln    schedule 10.02.2014


Ответы (3)


Откуда вы хотите включить этот файл?

Поместите ссылку на свой файл в объект автозагрузки composer.json:

"autoload": {
    "files":["your_file_path"]
}

Запустите composer dumpautoload, и вы получите свой файл :)

person Miroslav Trninic    schedule 10.02.2014
comment
Спасибо! Я включаю его из C:\xampp\htdocs\mysite\app\controllers\User\DashboardController.php, тогда выдается ошибка include(C:\xampp\htdocs\mysite\app/include/config.php): failed to open stream: No such file or directory где мне начать помещать ссылку в файлы автозагрузки? - person rnldpbln; 10.02.2014
comment
Так что включите этот файл с помощью композитора и не используйте include. В Laravel все ссылки на классы, файлы и пространства имен выполняются в основном через composer. - person Miroslav Trninic; 10.02.2014
comment
Например, вы можете включить HTTP-библиотеку Requests (github.com/rmccue/Requests) следующим образом: : { classmap: [], файлы: [vendor/Requests/library/Requests.php] } - person shasi kanth; 03.08.2015
comment
Я включил файл в составной блок автозагрузки. Как мне теперь использовать классы или методы файлов внутри контроллера? - person Sapnesh Naik; 09.05.2017
comment
получение сценария Illuminate\Foundation\ComposerScripts::postAutoloadDump, обрабатывающего событие post -autoload-dump, завершено с исключением [ErrorException] Неопределенный индекс: ошибка HTTP_HOST. что делать - person romal tandel; 06.09.2018

На самом деле у вас есть вспомогательная функция пути, поэтому в основном функция base_path дает направление к корню вашего проекта, поэтому

echo base_path() . '/vendor';

Должен быть маршрут к папке вашего поставщика.

Вы можете увидеть всю документацию в Вспомогательные функции Laravel

Убедитесь, что вы видите документацию используемой версии laravel (я ставлю ссылку на версию 4.2).

person rebduvid    schedule 24.03.2017
comment
Лучше base_path('vendor') - person dtbarne; 27.09.2018

Этот вопрос был задан давно, и ответы отражают это. В большинстве случаев все, что вам нужно сделать, это импортировать его с помощью оператора «use», если вы установили его с помощью composer. Composer уже будет ссылаться на все важные каталоги.

Это должно быть что-то вроде этого, но это будет варьироваться в зависимости от проекта.

use FolderNameUsuallyGitHubUserName\ClassNameorGitHubProjectName\Class;

Это может включать базовый класс, а также некоторые классы исключений.

use FolderNameUsuallyGitHubUserName\ClassNameorGitHubProjectName\ClassException;

Обычно большинство пакетов, совместимых с современными стандартами композитора и php, работают таким образом.

person Goddard    schedule 07.11.2019