通过Composer的自动加载器自动加载第三方库?

莫洛夫

我有一个Laravel4小项目,我需要在其中合并一个第三方库。该库无法通过GIT或Packagist(仅从供应商处)获得,因此我将其下载到了vendor目录中(必须添加一些定制供应商和软件包目录)。

而不是仅仅include()-ing它通过供应商的文档的建议,我希望只使用现有的作曲家自动加载,并且可以用一只手搞清楚什么我做错了。

我的目录树是这样的

path/to/project
 |__ app
 |__ vendor
 |   |__ merchantcompany
 |       |__ client
 |           |__ src
 |               |__ client.php
 |__ blah
 |__ blah

我更新了我的内容compser.json,包括:

"autoload": {
    "psr-4": {
         "MerchantCompany\\": "vendor/merchantcompany/client/src"
     },
     ...

我也尝试过"MerchantCompany\\": "src",但无济于事。

我想念什么?

注意:来自供应商的类没有命名空间。
我是根据正确的假设认为这很好,还是应该在类脚本中添加名称空间?

斯文

您目前做错了。您可以将软件包手动注入到由Composer管理的文件夹中(如果合适的话,可以擦除该目录),然后将自动加载类合并到自己的代码中。

Composer提供了一种将所需的元数据添加到不包含元数据的项目中的方法。这是https://getcomposer.org/doc/04-schema.md#repositories中描述的存储库的“包”类型

如果看那里给Smarty的示例,您会发现基本上需要添加一个值为“ package”的键“ type”和一个composer.json包含要查看文件内容的键“ package”。项目。

在这种情况下,添加了一个版本标签(与使用的Smarty版本同步,以防某些更高版本使用Composer和Packagist,Smarty从3.1.x版本开始使用),以允许Composer引用此版本。 ,该软件包的名称(如果您怀疑自己是否会在Composer支持下获得该软件,则可以任意组合两个值),以及用于从中下载代码的URL(您不必同时提供ZIP下载和如果您不了解它们,则可以添加一个存储库)。

缺少的是自动加载的定义,可以像其他地方一样添加自动加载。如果没有其他效果,请使用“ classmap”。然后,Composer将扫描所有文件以查找类,接口和特征的出现,并将生成一个包含随附文件名的数组。但是,如果代码符合该标准,则也可以使用PSR-0或PSR-4。

请注意,PSR-4仅可用于使用名称空间的类!如果没有名称空间,则必须使用PSR-0或类映射。从简短的目录清单中,我怀疑代码是否与PSR-0兼容,因此只需使用classmap即可获得快速结果。

作为建议:

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "merchantvendor/client",
            "version": "1.0.0",
            "dist": {
                "url": "http://example.com/zip-download-url.zip",
                "type": "zip"
            },
            "autoload": {
                "classmap": ""
            }
        }
    }
],
"require": {
    "otherstuff": "...",
    "merchantvendor/client": "1.0.0"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

安装 composer 后,hybridauth 第三方 Facebook 自动加载无法打开 Laravel

来自分类Dev

如何自动从第三方网站对网站进行数据库搜索?

来自分类Dev

在Spring托管组件中自动连接第三方库

来自分类Dev

如何让python的第三方库twisted在sublime中自动完成?

来自分类Dev

CodeIgniter第三方类未加载

来自分类Dev

从VBA运行第三方Excel加载项

来自分类Dev

加载第三方脚本的正确方法?

来自分类Dev

未加载第三方框架库:“未找到图片”

来自分类Dev

如何加载UI5中包含的第三方库?

来自分类Dev

使用RequireJS加载jQuery:第三方库中的不同名称约定

来自分类Dev

无法将Aurelia中的第三方库PapaParse加载为依赖项

来自分类Dev

使用 Angular-cli 加载第三方库

来自分类Dev

如何在加载 AngularJS 之前初始化第三方 JavaScript 异步库

来自分类Dev

从MS Office加载项向第三方服务器发出AJAX请求

来自分类Dev

Singleton与第三方库

来自分类Dev

第三方库的使用

来自分类Dev

通过第三方应用程序在iOS中的Instagram自动发布或一键式共享

来自分类Dev

Composer:使用您自己的第三方库分支的特定提交

来自分类Dev

加密用户数据以自动登录第三方系统

来自分类Dev

如何使用第三方程序自动检查单选按钮

来自分类Dev

如何将第三方bean自动连接到我的@Controller bean

来自分类Dev

加密用户数据以自动登录第三方系统

来自分类Dev

如何自动更新Windows中的所有第三方软件?

来自分类Dev

自动在第三方网站中填写详细信息

来自分类Dev

如何安装第三方模块,以便在启动时加载?

来自分类Dev

在局部视图ui-router中按角度加载特定的第三方脚本

来自分类Dev

加载了特定的第三方脚本后,是否可以触发功能?

来自分类Dev

如何阻止第三方Javascript加载清理功能?

来自分类Dev

如何在客户端blazor中动态加载第三方javascript?

Related 相关文章

  1. 1

    安装 composer 后,hybridauth 第三方 Facebook 自动加载无法打开 Laravel

  2. 2

    如何自动从第三方网站对网站进行数据库搜索?

  3. 3

    在Spring托管组件中自动连接第三方库

  4. 4

    如何让python的第三方库twisted在sublime中自动完成?

  5. 5

    CodeIgniter第三方类未加载

  6. 6

    从VBA运行第三方Excel加载项

  7. 7

    加载第三方脚本的正确方法?

  8. 8

    未加载第三方框架库:“未找到图片”

  9. 9

    如何加载UI5中包含的第三方库?

  10. 10

    使用RequireJS加载jQuery:第三方库中的不同名称约定

  11. 11

    无法将Aurelia中的第三方库PapaParse加载为依赖项

  12. 12

    使用 Angular-cli 加载第三方库

  13. 13

    如何在加载 AngularJS 之前初始化第三方 JavaScript 异步库

  14. 14

    从MS Office加载项向第三方服务器发出AJAX请求

  15. 15

    Singleton与第三方库

  16. 16

    第三方库的使用

  17. 17

    通过第三方应用程序在iOS中的Instagram自动发布或一键式共享

  18. 18

    Composer:使用您自己的第三方库分支的特定提交

  19. 19

    加密用户数据以自动登录第三方系统

  20. 20

    如何使用第三方程序自动检查单选按钮

  21. 21

    如何将第三方bean自动连接到我的@Controller bean

  22. 22

    加密用户数据以自动登录第三方系统

  23. 23

    如何自动更新Windows中的所有第三方软件?

  24. 24

    自动在第三方网站中填写详细信息

  25. 25

    如何安装第三方模块,以便在启动时加载?

  26. 26

    在局部视图ui-router中按角度加载特定的第三方脚本

  27. 27

    加载了特定的第三方脚本后,是否可以触发功能?

  28. 28

    如何阻止第三方Javascript加载清理功能?

  29. 29

    如何在客户端blazor中动态加载第三方javascript?

热门标签

归档