如何将第三方类库与 Laravel 集成以使其自动加载?

eCo*_*Evo 2 php sdk laravel laravel-4

我正在尝试将 Temboo SDK 与 Laravel 框架集成,以便它像其他供应商一样自动加载。

SDK的结构如下:

temboo
    src
        library
            temboo._23andme.php
            temboo._37signals.php
            etc...
        temboo.php
Run Code Online (Sandbox Code Playgroud)

在主 Temboo 文件中,它们有多个类声明,每个类声明都使用诸如 的命名,class Temboo_Session并且目录中的类library具有以下形式class _23andMe_Names extends Temboo_Choreography.

temboo.php文件还包括自动加载器类Temboo_Loader和声明spl_autoload_register(array('Temboo_Loader', 'autoload'));

这是我第一次尝试集成非 PSR-0 库,所以我对此有点迷失。

任何帮助,将不胜感激。

Ant*_*iro 5

您可以通过将基本文件夹添加到以下位置来告诉 Composer 自动加载任何(非 PSR)类:

"autoload": {
    "classmap": [
        "app/commands",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ],
    ....
Run Code Online (Sandbox Code Playgroud)

您还可以通过将自动加载器添加到文件部分来自动加载自动加载器:

"autoload": {
    "files": [
        "temboo/src/Temboo_Loader.php"
    ],
...
Run Code Online (Sandbox Code Playgroud)

添加这些条目后,执行

composer dumpautoload
Run Code Online (Sandbox Code Playgroud)

并检查该文件vendor/composer/autoload_classmap.php,可用的类必须全部列出在其中,如果一个文件不存在,则不会自动加载。