Проблема с Symfony2 и композитором: не удалось проанализировать ограничение версии composer.phar

Поэтому у меня возникают проблемы с попыткой снова заставить композитор работать после установки пакета администрирования Sonata на Symfony2. При использовании команды php composer.phar .... я получаю следующее сообщение об ошибке: [UnexpectedValueException] Could not parse version constraint composer.phar: Invalid version string "composer.phar"

Неважно, какое действие я совершаю с композитором, он всегда вызывает эту ошибку. Ну, одно исключение - php composer.phar require --no-update sonata-project/media-bundle говорит, что он обновил composer.json без сообщения об ошибке, но на самом деле ничего не установил.

Пока что я только что удалил и переустановил composer.phar с обновленной версией. Я запускаю Symfony 2.2.1-dev в Mac OS 10.7.5 с MAMP и PHP 5.4.4. Не уверен, связано ли это, но я также больше не могу очистить кеш с помощью php app/console cache:clear. Мне нужно удалить кеш через Finder.

Вот мой файл composer.json на всякий случай:

{
"name": "symfony/framework-standard-edition",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
    "psr-0": { "": "src/" }
},
"require": {
    "php": "composer.phar",
    "symfony/symfony": "2.2.*",
    "doctrine/orm": "2.3.*",
    "doctrine/doctrine-bundle": "1.2.*",
    "twig/extensions": "1.0.*",
    "symfony/assetic-bundle": "2.1.*",
    "symfony/swiftmailer-bundle": "2.2.*",
    "symfony/monolog-bundle": "2.2.*",
    "sensio/distribution-bundle": "2.2.*",
    "sensio/framework-extra-bundle": "2.2.*",
    "sensio/generator-bundle": "2.2.*",
    "jms/security-extra-bundle": "1.4.*",
    "jms/di-extra-bundle": "1.3.*",
    "sonata-project/cache-bundle": "dev-master",
    "sonata-project/block-bundle": "dev-master",
    "sonata-project/jquery-bundle": "1.8.*",
    "knplabs/knp-menu-bundle": "1.1.*-dev",
    "sonata-project/exporter": "1.1.*",
    "sonata-project/admin-bundle": "dev-master",
    "sonata-project/doctrine-orm-admin-bundle": "dev-master",
    "doctrine/common": "2.3.x-dev",
    "sonata-project/media-bundle": "dev-master"
},
"scripts": {
    "post-install-cmd": [
        "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": [
        "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": "dev",
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web",
    "branch-alias": {
        "dev-master": "2.2-dev"
    }
}

Любая помощь / совет были бы замечательными :)


person Chewster    schedule 06.05.2013    source источник
comment
Не могли бы вы добавить сообщение об ошибке, которое вы запускаете cache:clear?   -  person Emii Khaos    schedule 07.05.2013
comment
Никаких сообщений об ошибках и никаких сообщений о том, что он был удален. Проверил папку кеша, ничего не удаляется.   -  person Chewster    schedule 07.05.2013


Ответы (1)


Похоже, в вашем файле композитора есть опечатки.

Замените "php": "composer.phar" на "php": ">=5.3.3" и добавьте недостающую закрывающую скобку в конец файла:

{
    "name": "symfony/framework-standard-edition",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.2.*",
        "doctrine/orm": "2.3.*",
        "doctrine/doctrine-bundle": "1.2.*",
        "twig/extensions": "1.0.*",
        "symfony/assetic-bundle": "2.1.*",
        "symfony/swiftmailer-bundle": "2.2.*",
        "symfony/monolog-bundle": "2.2.*",
        "sensio/distribution-bundle": "2.2.*",
        "sensio/framework-extra-bundle": "2.2.*",
        "sensio/generator-bundle": "2.2.*",
        "jms/security-extra-bundle": "1.4.*",
        "jms/di-extra-bundle": "1.3.*",
        "sonata-project/cache-bundle": "dev-master",
        "sonata-project/block-bundle": "dev-master",
        "sonata-project/jquery-bundle": "1.8.*",
        "knplabs/knp-menu-bundle": "1.1.*-dev",
        "sonata-project/exporter": "1.1.*",
        "sonata-project/admin-bundle": "dev-master",
        "sonata-project/doctrine-orm-admin-bundle": "dev-master",
        "doctrine/common": "2.3.x-dev",
        "sonata-project/media-bundle": "dev-master"
    },
    "scripts": {
        "post-install-cmd": [
            "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": [
            "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": "dev",
    "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web",
        "branch-alias": {
            "dev-master": "2.2-dev"
        }
    }
}
person iamdto    schedule 06.05.2013
comment
Спасибо!! Вау, я чувствую себя действительно глупо из-за того, что не заметил эту часть php: composer.phar (закрывающая скобка фактически была в исходном коде). По-видимому, это изменилось, когда я по глупости просто вырезал и вставил код для установки пакета Sonata Media Bundle через композитор, не осознавая очевидной опечатки: sonata-project.org/bundles/media/master/doc/reference/ ... Еще раз спасибо! - person Chewster; 07.05.2013