Bagaimana cara menghindari ketergantungan proyek pemutakhiran formulir komposer (mis. laravel dari 5.1 LTS)?

Saya mengkhawatirkan Laravel dan konsep dukungan jangka panjang, terkait dengan aplikasi saya.

Sekarang saya telah mengembangkan aplikasi saya di lrvl 5.2, tetapi versi LTS adalah 5.1. Karena saya ingin memiliki kerangka kerja yang didukung jangka panjang sebagai landasan aplikasi saya, saya bertanya-tanya apakah mungkin untuk menurunkan versi ke 5.1. Tidak ada masalah fitur yang muncul untuk aplikasi spesifik saya. Tapi ini cerita lain... bukan topik pertanyaan ini.

Kedua, saya tidak mengerti bagaimana cara memberitahu komposer untuk tetap menggunakan laravel 5.1, yaitu ketika saya akan menjalankan pembaruan komposer, hindari memperbarui versi laravel 5.1.

Haruskah saya juga khawatir tentang mengubah komposer agar tidak memperbarui paket ketergantungan?


person koalaok    schedule 21.04.2016    source sumber


Jawaban (1)


Di composer.json Anda, temukan dan edit baris ini:

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

Begitulah cara Anda memaksa Komposer tetap menggunakan versi tertentu. Semoga ini bisa membantu.

Untuk informasi lebih lanjut: https://getcomposer.org/doc/articles/versions.md

composer.json untuk 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"
    }
}
person Toan Nguyen    schedule 21.04.2016
comment
karena sekarang ada laravel/framework: 5.2.* dan menurut saya paket/dependensi versi lain yang terdaftar ditulis dalam file komposer sebagai dependensi versi 5.2 dan bukan 5.1, bukankah itu akan rusak? (Saya yakin setelah melakukan perubahan, saya harus menjalankan perintah pembaruan komposer?) Terima kasih - person koalaok; 21.04.2016
comment
Secara teori, jawabannya adalah Tidak, Komposer akan mencoba menemukan versi dependensi lain yang kompatibel untuk Anda, secara otomatis. Periksa jawaban saya untuk melihat composer.json selengkapnya untuk 5.1 LTS. - person Toan Nguyen; 21.04.2016
comment
Penting untuk diketahui bahwa Laravel TIDAK mengikuti pembuatan versi semantik, sehingga perbedaan antara dua versi minor dapat merusak banyak hal. Inilah alasan Anda harus melakukan pengujian yang cukup, atau membatasi Komposer agar hanya memperbarui dalam rentang patch, seperti 5.1.* atau 5.2.*. Hindari operator tilde atau tanda sisipan: ~5.1 atau ^5.1.4 semuanya akan mencoba memperbarui ke 5.2 dan seterusnya. - person Sven; 21.04.2016