【问题标题】:Symfony2 using third party vendors inside a bundleSymfony2 在捆绑包中使用第三方供应商
【发布时间】:2012-12-19 17:09:22
【问题描述】:

我正在创建一个 CpanelBundle,它将 Cpanel xmlapi 集成到 Symfony 中。 我将在这里使用 CpanelInc 提供的类:https://github.com/CpanelInc/xmlapi-php

我想让这个捆绑包可以跨项目使用,也可以开源。

Symfony 文档说您不应该将第三方库放入您的包中。 Cpanel 类也没有命名空间,也不在 composer 上。

我可以并且应该将 Cpanel 类放在供应商文件夹中,但是我如何将它添加到自动加载和我的包 composer.json 以便当我发布我的包时用户也会得到它?

【问题讨论】:

    标签: symfony composer-php bundle cpanel


    【解决方案1】:

    您好,您可以使用 Composer 加载此文件。请看composer autoload documentation

    您的 composer.json 可能如下所示:

    {
        "name": "my/bundle",
        "autoload": {
           "psr-0": {"": "src"}
        },
        "require": {
             "php": ">=5.3.2",
             "symfony/framework-bundle": ">=2.1,<2.3-dev",
             "CpanelInc/xmlapi-php": "*"
        },
        "repositories": [
            {
                "type": "package",
                "package": {
                    "name": "CpanelInc/xmlapi-php",
                    "version": "master-dev",
                    "dist": {
                        "url": "http://github.com/CpanelInc/xmlapi-php/zipball/master",
                        "type": "zip"
                    },
                    "source": {
                        "url": "git://github.com/CpanelInc/xmlapi-php.git",
                        "type": "git",
                        "reference": "master"
                    },
                    "autoload": {
                        "files" : ['xmlapi.php']
                    }
                }
            }
        ]
    }
    

    当你创建 composer.json 并将它添加到 CpanelInc/xmlapi-php 并做 PR 时会更好:)

    【讨论】:

    • 我认为autoload 部分可以更好。即使没有使用 Cpanellnc/xmlapi-php,它现在也会在每个请求上自动加载。你应该使用a classmap
    • 在这篇文章之后我今天正在研究作曲家文档,并且也找到了类图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2017-08-12
    相关资源
    最近更新 更多