无法使用作曲家设置奏鸣曲

Posted

技术标签:

【中文标题】无法使用作曲家设置奏鸣曲【英文标题】:Cannot setup sonata using composer 【发布时间】:2013-06-19 22:59:59 【问题描述】:

我已经使用 composer 设置了 symfony。

我在我的 composer .json 文件中添加了一些依赖项,如下所示:


"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": 
    "psr-0":  "": "src/" 
,
"require": 
    "php": ">=5.3.3",
    "symfony/symfony": "2.3.*",
    "doctrine/orm": ">=2.2.3,<2.4-dev",
    "doctrine/doctrine-bundle": "1.2.*",
    "twig/extensions": "1.0.*",
    "symfony/assetic-bundle": "2.3.*",
    "symfony/swiftmailer-bundle": "2.3.*",
    "symfony/monolog-bundle": "2.3.*",
    "sensio/distribution-bundle": "2.3.*",
    "sensio/framework-extra-bundle": "2.3.*",
    "sensio/generator-bundle": "2.3.*",
    "incenteev/composer-parameter-handler": "2.0",
    "sonata-project/admin-bundle": "dev-master",
    "sonata-project/doctrine-orm-admin-bundle": "dev-master",
    "sonata-project/intl-bundle": "dev-master",
    "sonata-project/user-bundle": "dev-master"
,
"scripts": 
    "post-install-cmd": [
        "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ],
    "post-update-cmd": [
        "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ]
,
"config": 
    "bin-dir": "bin"
,
"minimum-stability": "stable",
"extra": 
    "symfony-app-dir": "app",
    "symfony-web-dir": "web",
    "incenteev-parameters": 
        "file": "app/config/parameters.yml"
    ,
    "branch-alias": 
        "dev-master": "2.3-dev"
    


当我运行 composer.phar update 时,我收到以下消息:

使用包信息加载作曲家存储库 更新依赖项(包括 require-dev) 您的需求无法解析为一组可安装的软件包。

问题 1 - sonata-project/intl-bundle dev-master 的安装请求 -> 可由 sonata-project/intl-bundle [dev-master] 满足。 - sonata-project/intl-bundle dev-master 需要 ext-intl * -> 您的系统中缺少请求的 PHP 扩展 intl。 问题 2 - sonata-project/intl-bundle dev-master 需要 ext-intl * -> 您的系统中缺少请求的 PHP 扩展 intl。 - symfony/framework-standard-edition 2.3.x-dev 需要 sonata-project/intl-bundle dev-master -> 可以满足 sonata-project/intl-bundle[dev-master]。 - symfony/framework-standard-edition 2.3.x-dev 的安装请求 -> symfony/framework-standard-edition[2.3.x-dev] 可满足。

所以不知道更好,我想我可能需要运行 composr.phar install 这给了我这个:

使用包信息加载作曲家存储库 从锁定文件安装依赖项(包括 require-dev) 警告:锁定文件不是最新的 composer.json 中的最新更改。您可能会得到过时的依赖项。运行 update 来更新它们。 您的需求无法解析为一组可安装的软件包。

问题 1 - symfony/framework-standard-edition 2.3.x-dev 的安装请求 -> symfony/framework-standard-edition[2.3.x-dev] 可以满足。 - symfony/framework-standard-edition 2.3.x-dev 需要 sonata-project/admin-bundle dev-master -> 找不到匹配的包。

潜在原因: - 包名中的拼写错误 - 根据您的最低稳定性设置,该软件包在足够稳定的版本中不可用 有关详细信息,请参阅https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion。

阅读http://getcomposer.org/doc/articles/troubleshooting.md了解更多常见问题。

我已按照 sonata-project.org 的说明进行操作,但没有取得任何进展。

我是否犯了某种非常明显的错误?

【问题讨论】:

【参考方案1】:

这是一个有效的 composer.json,用于使用 symfony 2.3.* 设置奏鸣曲管理员。*

"require": 
    "php": ">=5.3.3",
    "symfony/symfony": "2.3.*",
    "doctrine/orm": ">=2.2.3,<2.4-dev",
    "doctrine/doctrine-bundle": "1.2.*",
    "twig/extensions": "1.0.*",
    "symfony/assetic-bundle": "2.3.*",
    "symfony/swiftmailer-bundle": "2.3.*",
    "symfony/monolog-bundle": "2.3.*",
    "sensio/distribution-bundle": "2.3.*",
    "sensio/framework-extra-bundle": "2.3.*",
    "sensio/generator-bundle": "2.3.*",
    "incenteev/composer-parameter-handler": "~2.0",
    "twig/twig": "1.*",
    "knplabs/knp-menu-bundle" : "1.1.*",
    "sonata-project/block-bundle" : "dev-master",
    "sonata-project/exporter" : "1.1.0",
    "sonata-project/jquery-bundle" : "1.8.*",
    "sonata-project/cache-bundle" : "dev-master",
    "sonata-project/intl-bundle" : "dev-master",
    "sonata-project/admin-bundle" : "dev-master",
    "sonata-project/doctrine-orm-admin-bundle" : "dev-master",
,

你也安装INTL扩展:http://php.net/manual/en/intl.setup.php

【讨论】:

感谢您的回复哈斯特。我把它放在 composer.json 文件中并得到了同样的错误。也许我做错了什么? 我可以安全地将 zip 文件中的代码粘贴到正确的位置并包含 composer.json 要求部分吗? 不,甚至不要将压缩代码传递到供应商目录。您的问题还在于您必须安装 intl 扩展:php.net/manual/en/intl.setup.php @jaget 我已将有关国际安装的链接添加到答案中。对你有帮助吗? 只是想在 mac/MAMP 上进行设置。我会在安装和测试后通知您。

以上是关于无法使用作曲家设置奏鸣曲的主要内容,如果未能解决你的问题,请参考以下文章

安装奏鸣曲新闻捆绑作曲家错误

奏鸣曲包的作曲家原型

依赖问题作曲家[奏鸣曲管理员; SonataDoctrineORMAdminBundle]

Sonata Bundle 之间的依赖关系

使用更多表单字段扩展奏鸣曲用户包,获取无法加载类型“Application\Sonata\UserBundle\Form\RegistrationType”

奏鸣曲媒体包,无法预览图像