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

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

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

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

#!/usr/bin/env php <?php /* * This file is part of Composer. * * (c) Nils Adermann <naderman@naderman.de> * Jordi Boggiano <j.boggiano@seld.be> * * 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'; 

композитор.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" } 

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

 /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 

Я нашел проблему. Я переместил файл 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 я хочу использовать. Надеюсь, другие найдут это полезным.

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

 #!/usr/bin/env php 

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

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

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