当供应商没有在Symfony 2.1中使用composer进行管理时,在哪里注册自动加载



我使用的是symfony 2.1,我想为供应商添加一个库。该库在包装学家中不存在。我不能和作曲家一起演奏。当我通过composer安装捆绑包或其他供应商时,它会为我管理自动加载。但当供应商不使用composer管理时,在哪里注册自动加载?

您可以向composer添加不在packagist中的库。您必须将它们添加到composer.json文件的repositories数组中。

以下是如何加载一个包含composer.json文件的github存储库,即使它不在packagegist上(例如,修复存储库的fork):http://getcomposer.org/doc/02-libraries.md#publishing-对空

以下是如何加载git/svn存储库或zip文件上的库:http://getcomposer.org/doc/05-repositories.md#types

使用各种可能性的示例:

{
  "repositories": [
    {
      "type": "vcs",
      "url": "http://github.com/igorw/monolog"
    },
    {
      "type": "package",
      "package": {
        "name": "smarty/smarty",
        "version": "3.1.7",
        "dist": {
          "url": "http://www.smarty.net/files/Smarty-3.1.7.zip",
          "type": "zip"
        },
        "source": {
          "url": "http://smarty-php.googlecode.com/svn/",
          "type": "svn",
          "reference": "tags/Smarty_3_1_7/distribution/"
        },
        "autoload": {
          "classmap": [
            "libs/"
          ]
        }
      }
    }
  ],
  "require": {
    "monolog/monolog": "dev-bugfix",
    "smarty/smarty": "3.1.*"
  }
}

您应该能够使用Composer来注册不能通过packagist获得的供应商库。我不完全确定,但这应该很好:

{
    "autoload": {
        "psr-0": {
            "Acme": "src/",
            "MyVendorLib": "vendor/my-vendor/src",
            "AnotherLib": "vendor/another-vendor/lib"
        }
    }
}

您只需要为自动加载值修改composer.json文件:

http://getcomposer.org/doc/04-schema.md#autoload

//symfony 2.1项目中的composer.json"自动加载":{"psr-0":{":"src/","YourLibrary":"src/location/of/lib"}},

然后在你的控制器中,例如:

命名空间Acme\UserBundle\Controller;使用Symfony\Bundle\FrameworkBundle\Controller\Controller;使用Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;使用YourLibrary\FolderName\ClassName;类DefaultController扩展控制器{/***@路线("/")*@Template()*/公共函数indexAction(){$lib=新类名();$lib->getName();return数组('name'=>$name);}}

最新更新