如何通过composer安装第三方库到Symfony 3.1


How to install 3rd party library to Symfony 3.1 via composer?

我正在尝试使用Symfony 3.1开发一个web应用程序,我需要使用一些外部库,如Faker和Guzzle。然而,每次我试图安装他们与作曲家像这样:

composer require fzaninotto/Faker

总是抛出这样的错误:

Using version ^1.6 for fzaninotto/Faker
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing fzaninotto/faker (v1.6.0)
    Loading from cache
Writing lock file
Generating autoload files
> Incenteev'ParameterHandler'ScriptHandler::buildParameters
Updating the "app/config/parameters.yml" file
> Sensio'Bundle'DistributionBundle'Composer'ScriptHandler::buildBootstrap
> Sensio'Bundle'DistributionBundle'Composer'ScriptHandler::clearCache

  [Symfony'Component'Config'Exception'FileLoaderLoadException]
  There is no extension able to load the configuration for "service" (in C:'xampp'htdocs'myapp'app/config'config.yml). Looked for namespace "service", found "framework", "securi
  ty", "twig", "monolog", "swiftmailer", "doctrine", "doctrine_migrations", "sensio_framework_extra", "debug", "web_profiler", "sensio_distribution" in C:'xampp'htdocs'myapp'app
  /config'config.yml (which is being imported from "C:'xampp'htdocs'myapp'app/config/config_dev.yml").

  [Symfony'Component'DependencyInjection'Exception'InvalidArgumentException]
  There is no extension able to load the configuration for "service" (in C:'xampp'htdocs'myapp'app/config'config.yml). Looked for namespace "service", found "framework", "securi
  ty", "twig", "monolog", "swiftmailer", "doctrine", "doctrine_migrations", "sensio_framework_extra", "debug", "web_profiler", "sensio_distribution"

Script Sensio'Bundle'DistributionBundle'Composer'ScriptHandler::clearCache handling the symfony-scripts event terminated with an exception
Installation failed, reverting ./composer.json to its original content.

  [RuntimeException]
  An error occurred when executing the ""cache:clear --no-warmup"" command:

    [Symfony'Component'Config'Exception'FileLoaderLoadException]
    There is no extension able to load the configuration for "service" (in C:'xampp'htdocs'myapp'app/config'config.yml). Looked for namespace "service", found "framework
  ", "securi
    ty", "twig", "monolog", "swiftmailer", "doctrine", "doctrine_migrations", "sensio_framework_extra", "debug", "web_profiler", "sensio_distribution" in C:'xampp'htdocs'res
  epkita'app
    /config'config.yml (which is being imported from "C:'xampp'htdocs'myapp'app/config/config_dev.yml").


    [Symfony'Component'DependencyInjection'Exception'InvalidArgumentException]
    There is no extension able to load the configuration for "service" (in C:'xampp'htdocs'myapp'app/config'config.yml). Looked for namespace "service", found "framework
  ", "securi
    ty", "twig", "monolog", "swiftmailer", "doctrine", "doctrine_migrations", "sensio_framework_extra", "debug", "web_profiler", "sensio_distribution"

  .

require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...

我真的需要使用第三方symfony bundle吗?或者我如何使用"原样"的库?

似乎你已经把一个"服务"块在你的config_dev。它的意思是,没有安装与该配置相关联的bundle。

只要删除"service"块,你应该没事,因为干净安装symfony并运行

composer require fzaninotto/Faker

您的config.yml文件中出现了简单的打字错误,您将service:写成了services:

你可以像这样用composer自动加载第三方库

// composer.json
{
    // ...
    "autoload": {
        "psr-4": {
            "Custom''Namespace''": "relative/path/to/library"
        }
    }
}

路径必须是相对于包根目录的。

您可以在编写器文档中找到更多信息