2016-04-21 2 views
0

Я беспокоюсь о Laravel и концепциях долгосрочной поддержки, связанных с моим приложением.Как избежать модификации проектов проекта (например, laravel из 5.1 LTS)?

Теперь я разработал свое приложение на lrvl 5.2, но версия LTS - это 5.1. Поскольку я хотел бы иметь долгосрочную поддерживаемую инфраструктуру в качестве подкласса приложения, интересно, стоит ли переходить на 5.1. Никаких проблем с функциями не должно возникать для моего конкретного приложения. Но это еще одна история ... не тема этого вопроса.

Во-вторых, я не вижу, как сказать композитору придерживаться laravel 5.1, тогда i.e, когда я запустил обновление для композитора, не обновляйте версию larvel 5.1.

Должен ли я также беспокоиться о настройке композитора при обновлении пакетов зависимостей?

ответ

1

В вашем composer.json, найти и изменить эту строку:

"laravel/framework": "5.1.*",

То есть, как вы заставляете Composer палку с указанной версией. Надеюсь, это поможет.

Для получения дополнительной информации: https://getcomposer.org/doc/articles/versions.md

composer.json для Laravel 5,1 LTS

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "type": "project", 
    "require": { 
     "php": ">=5.5.9", 
     "laravel/framework": "5.1.*" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "mockery/mockery": "0.9.*", 
     "phpunit/phpunit": "~4.0", 
     "phpspec/phpspec": "~2.1" 
    }, 
    "autoload": { 
     "classmap": [ 
      "database" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 
    "autoload-dev": { 
     "classmap": [ 
      "tests/TestCase.php" 
     ] 
    }, 
    "scripts": { 
     "post-root-package-install": [ 
      "php -r \"copy('.env.example', '.env');\"" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ], 
     "post-install-cmd": [ 
      "Illuminate\\Foundation\\ComposerScripts::postInstall", 
      "php artisan optimize" 
     ], 
     "post-update-cmd": [ 
      "Illuminate\\Foundation\\ComposerScripts::postUpdate", 
      "php artisan optimize" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist" 
    } 
} 
+0

так как теперь есть "Laravel/рамки": "5.2. *", И я думаю, что другие перечисленные пакеты/зависимости версия записаны в файле композитора в качестве зависимостей версии 5.2, а не 5.1, разве он не сломается? (Я верю, что после внесения изменений мне нужно будет выполнить команду для создания композитора?) Спасибо – koalaok

+0

Теоретически, ответ: ** Нет **, Composer попытается найти совместимую версию других зависимостей для вас автоматически. Проверьте мой ответ, чтобы просмотреть полный композитор.json для 5.1 LTS. –

+0

Важно знать, что Laravel НЕ следует семантическим версированием, поэтому различия между двумя младшими версиями могут сломать материал. По этой причине вы должны либо иметь достаточно тестов, либо ограничивать Composer только обновлением в диапазоне патчей, например '5.1. ​​*' Или '5.2. *'. Избегайте операторов тильды или каретки: '~ 5.1' или'^5.1.4' будут пытаться обновиться до 5.2 и выше. – Sven

Смежные вопросы