Intereting Posts
mysql_fetch_assoc, не может показаться, что проблема Zend Framework Выберите объекты и UNION () Laravel 4 – две кнопки отправки в одной форме и оба отправляются для обработки различными действиями Привилегия ZF2 – Как мы можем проверять коллекции в json-данных Одновременные вставки MySQL в одну и ту же таблицу: как? отправить массив JavaScript через jQuery AJAX POST Как объединить значения из нескольких строк с одним и тем же идентификатором в запятую, разделенные уникальным идентификатором проблема маршрутизации в кодеригнере Добавление ошибки поля от контроллера в symfony2 Правильный способ хранения часового пояса в базе данных? сортировка массива php внутри массива на основе значения Мутации Laravel 5 работают только при создании записи, а не при обновлении записи Преобразовать пронумерованные в акцентированные пиньины? Сообщение об ошибке echo pdo при вводе неверного имени пользователя или пароля Файлы, не загружаемые на удаленный сервер с помощью Net_SFTP

Laravel 4.2: включить PHP-файл (библиотеку) в контроллер

Я делаю проект с использованием Laravel 4.2, где мне нужно включить PHP-файл (библиотеку для преобразования PDF в текст) в контроллер, а затем вернуть переменную с текстом, любую идею, как?

Это мой контроллер :

public function transform() { include ('includes/vendor/autoload.php'); } 

И мой файл /app/start/global.php :

 ClassLoader::addDirectories(array( app_path().'/commands', app_path().'/controllers', app_path().'/models', app_path().'/database/seeds', app_path().'/includes', )); в ClassLoader::addDirectories(array( app_path().'/commands', app_path().'/controllers', app_path().'/models', app_path().'/database/seeds', app_path().'/includes', )); 

И это ошибка :

 include(includes/vendor/autoload.php): failed to open stream: No such file or directory 

Вы можете создать новый каталог где-нибудь в каталоге приложения, например, app/libraries

Затем в вашем файле composer.json вы можете включить app/libraries в свою карту классов автозагрузки:

 { "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "require": { "laravel/framework": "4.2.*", }, "autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/libraries", <------------------ YOUR CUSTOM DIRECTORY "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php" ] }, "scripts": { "post-install-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-update-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-create-project-cmd": [ "php artisan key:generate" ] }, "config": { "preferred-install": "dist" }, "minimum-stability": "stable", } 

Обязательно запустите composer dump-autoload после изменения вашего composer.json.

Предположим, что ваше имя класса называется CustomClass.php и оно находится в каталоге app/libraries (поэтому полный путь – это app/libraries/CustomClass.php ). Если вы правильно разместили свой класс на своем классе, ваше соглашение, скорее всего, будет названо libraries . Для ясности мы будем называть наше пространство имен, чтобы избежать путаницы с каталогом.

 $class = new \custom\CustomClass(); 

Кроме того, вы можете присвоить ему псевдоним в файле app/config/app.php :

 /* |-------------------------------------------------------------------------- | Class Aliases |-------------------------------------------------------------------------- | | This array of class aliases will be registered when this application | is started. However, feel free to register as many as you wish as | the aliases are "lazy" loaded so they don't hinder performance. | */ 'aliases' => array( ... 'CustomClass' => 'custom\CustomClass', ... ) 

И вы можете создать экземпляр класса из любого места приложения, как и с любым другим классом:

 $class = new CustomClass(); 

Надеюсь это поможет!

Я думаю, что вы правы, но я нахожу другой способ, может быть, не правильный путь, но он работает.

Так вот, я создал новую папку под названием Includes и поместил туда мои файлы, затем в /app/start/global.php я добавил эту строку:

 require app_path().'/includes/vendor/autoload.php'; 

И теперь работает: D