Подтвердить что ты не робот

Композитор для использования более новой версии php

Как заставить композитора использовать более новую версию php i, которую я установил? Я загрузил и использую php 5.4 на всех моих локальных серверах, но когда я загружаю композитор, он указывает на мою версию по умолчанию #!/Usr/local/bin/env, которая равна 5.3.15. Я попытался отредактировать исполняемый файл композитора и изменить используемый php, но он сломал исполняемый файл.

Я пытаюсь использовать композитор для установки Laravel, и из-за этого он загружает неправильную версию.

Это то, что выглядит поверх моего исполняемого кода композитора, но затем появляется куча странных символов ниже.

#!/usr/bin/env php
<?php
/*
 * This file is part of Composer.
 *
 * (c) Nils Adermann <[email protected]>
 *     Jordi Boggiano <[email protected]>
 *
 * For the full copyright and license information, please view
 * the license that is located at the bottom of this file.
 */

Phar::mapPhar('composer.phar');
define('COMPOSER_DEV_WARNING_TIME', 1366931166);
require 'phar://composer.phar/bin/composer';

composer.json для проекта laravel

{
    "require": {
        "laravel/framework": "4.0.*@dev"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-update-cmd": "php artisan optimize"
    },
    "minimum-stability": "dev"
}
4b9b3361

Ответ 1

Если вам не нужны постоянные настройки, ниже команда работала для меня:

/Applications/MAMP/bin/php/php5.6.27/bin/php /usr/local/bin/composer install

Синтаксис:

{PATH TO YOUR PHP VERSION} {PATH TO COMPOSER EXECUTABLE} {COMPOSER COMMAND}

Знать исполняемый путь: which {EXECUTABLE} может быть очень полезным. Пример: which composer дал ниже вывод, который я использовал в команде выше:

/usr/local/bin/composer

Ответ 2

Я нашел проблему. Я переместил файл composer.phar в каталог /usr/local/bin/, и независимо от того, что я сделал, он всегда использовал 5.3.15. Я удалил исполняемый файл из моего бункера и перезапустил .phar и переместил его в свой проект root и запустил "php composer.phar install", и похоже, что это сработало.

Чтобы очистить вещи, я сделал следующее:

Я оставил composer.phar в корне моего профиля пользователя

/Users/davidadams/composer.phar

Затем я открыл свой .bash_profile и добавил следующий псевдоним

alias composer='/usr/local/php5/bin/php /Users/davidadams/composer.phar'

Таким образом, он доступен мне во всем мире, и я могу определить, какую версию php я хочу использовать. Надеюсь, другие найдут это полезным.

Ответ 3

По умолчанию композитор на системах * nix использует двоичный/исполняемый файл PHP, указанный средой. Вы можете видеть, что в первой строке находится shebang:

#!/usr/bin/env php

Вы можете сказать, что оболочка нападает на более конкретную версию PHP, например:

#!/usr/local/php5/bin/php

В системах Windows, если вы используете настройку композитора, вы можете указать двоичный файл PHP, а затем настройте среду, чтобы соответствовать этим требованиям. Но вы также можете легко переписать пакетный файл -или- настроить операционную систему Windows для выполнения файлов .phar с определенным двоичным кодом PHP.