Cara mengelola config.php di Magento 2

15

Pertama-tama itu mungkin pertanyaan yang sudah dijawab tetapi saya tidak menemukan apa pun tentang subjek itu.

Ini bukan masalah tetapi pertanyaan tentang cara terbaik untuk mengelola file config.phpdi Magento 2.
Sebenarnya kita config.phptidak diversi (secara default dalam .gitignorefile M2 ) sehingga tidak ada dalam repositori kami. Masalahnya adalah ketika seseorang menginstal proyek dia tidak memiliki file ini tetapi dia sudah memiliki database sehingga dia tidak dapat menjalankan bin/magento setup:install ...untuk menghasilkan file.
Kami menyadari bahwa bin/magento setup:upgradepenambahan modul yang tidak dideklarasikan ke config.phptetapi hanya jika file ada dan bin/magento module:enabledapat menambahkan modul tetapi kami ingin menghindari untuk meluncurkan setiap kali kami menggunakan atau menginstal proyek.

Pertanyaan saya (s):
- Apakah kita harus menghapus config.phpdari .gitignoredan versi itu?
- Apakah kita harus menambahkannya pertama kali di repositori dan membiarkannya .gitignoresetelahnya?
- Apa cara terbaik untuk mengelola file ini?

Matthéo Geoffray
sumber
1
Sejak 2.2, disarankan untuk menambahkan ke VCS
weynhamz
Hai @ TechliveZheng terima kasih atas informasinya! Apakah Anda memiliki sumber / penjelasan untuk itu?
Matthéo Geoffray

Jawaban:

15

Pertama-tama, pertanyaan yang sangat bagus.
Tapi ... saya tidak setuju dengan ini:

Masalahnya adalah ketika seseorang menginstal proyek dia tidak memiliki file ini tetapi dia sudah memiliki database sehingga dia tidak dapat menjalankan bin/magento setup:install...

Saya akan mengatakan bahwa ketika Anda menginstal proyek, jika Anda sudah memiliki database, Anda harus mengambil config.phpfile juga dari tempat yang sama dengan Anda mendapatkan database.
Dengan cara ini Anda tidak harus berlari setup:installdan Anda memiliki segalanya sebagaimana mestinya.

Saya tidak akan merekomendasikan memversi file ini karena skenario berikut.

  • Anda menambahkan modul baru di dev env.
  • Anda menjalankan setup:upgradesehingga modul tidak muncul diconfig.php
  • Anda mengkomit kode Anda dan menyebarkannya di env lain.
  • Contoh env Anda yang lain menganggap modul baru Anda sudah terpasang dan Anda mendapatkan kesalahan.

Jadi saya kira solusi terbaik (IMO) adalah tidak versi dan melakukan ini tergantung pada kasus Anda:

  • Anda mengkloning proyek dan database di tempat lain, Anda juga harus mengkloning config.phpfile tersebut (bersama dengan orang lain seperti pub/media) sehingga Anda tidak akan memiliki data yang ketinggalan zaman.
  • Anda hanya mengkloning file dalam repo dan mulai dengan bersih, jangan menyalin config.php, jalankan saja installer yang akan menciptakannya untuk Anda.
Marius
sumber
Saya belum memikirkan solusi ini, tampaknya bukan yang paling praktis, tetapi Anda benar sebenarnya itu adalah salah satu yang tampaknya paling logis. Kami akan menguji dengan cara ini. Jika itu tidak mengganggu Anda, saya akan menunggu akhir hari untuk menerima jawaban Anda, mungkin saran lain mungkin diberikan. Bagaimanapun, terima kasih!
Matthéo Geoffray
Saya mencoba menghapus config.php dari repo dan menambahkannya ke .gitignore. Lingkungan lain gagal menghasilkan file config.php baru ketika tidak ada (dalam mode pengembang).
dchayka
apa yang kamu maksud dengan "gagal"? apakah Anda mencoba menginstalnya pada env yang berbeda?
Marius