Laravel4.2:在控制器中包含一个PHP文件(库)

Laravel4.2:在控制器中包含一个PHP文件(库),php,laravel,laravel-4,Php,Laravel,Laravel 4,我正在使用Laravel4.2做一个项目,我需要在控制器中包含一个PHP文件(一个将PDF转换为文本的库),然后返回一个带有文本的变量,知道怎么做吗 这是我的控制器: public function transform() { include ('includes/vendor/autoload.php'); } include(includes/vendor/autoload.php): failed to open stream: No such file or directory

我正在使用Laravel4.2做一个项目,我需要在控制器中包含一个PHP文件(一个将PDF转换为文本的库),然后返回一个带有文本的变量,知道怎么做吗

这是我的控制器

public function transform() {
    include ('includes/vendor/autoload.php');
}
include(includes/vendor/autoload.php): failed to open stream: No such file or directory
和我的/app/start/global.php文件:

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

));
这就是错误

public function transform() {
    include ('includes/vendor/autoload.php');
}
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",
}
或者,您可以在
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

我已经在composer.json autoload->classmap部分添加了
“app/libraries”
。然后我在app/config/app.php别名中添加了
TextCleaner=>'libraries\TextCleaner
。我试图实例化我的类,比如
$imageCleaner=new\libraries\TextCleaner()
$imageCleaner=newtextcleaner()
和这两个错误都告诉我该类不存在。是的,我已成功运行composer dump autload。@BillGarrison请确保您已将类命名为命名空间。假设类的名称空间称为“helpers”(
名称空间helpers;
位于类的顶部)。在config/app.php文件中,可以将其作为
'TextCleaner'=>'helpers\TextCleaner'
包含。我编辑了原始答案以帮助澄清。今天帮助我:)+1