Dengan Magento 1 saya menggunakan alat penyebaran yang menarik di repo GIT, menjalankan perintah seperti modman deploy-all
dan memastikan var
direktori dapat ditulisi. Untuk .gitignore
saya menggunakan yang ini bekerja dengan cukup baik.
Tapi bagaimana dengan Magento 2 ?
Apa yang paling baik digunakan gitignore, bagaimana Anda menggunakan proyek Anda dan perintah apa yang harus dijalankan sebelum dan sesudah penerapan. Berharap untuk mendengar beberapa wawasan dari komunitas.
Pertanyaan akan tetap terbuka untuk beberapa waktu
Jawaban:
Langkah-langkah di bawah ini menjelaskan cara mengatur lingkungan untuk pengembangan modul khusus, bukan untuk produksi.
Inisialisasi proyek
Buat proyek menggunakan perintah berikut:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
Ambil .gitignore ini dan masukkan ke root proyek Anda. Hampir semua file inti / direktori sudah ditambahkan ke root
.gitignore
, tetapi lebih baik menambahkan 2 berikut juga/update
dan/phpserver
(cukup tambahkan 2 baris ini ke .gitignore)app/code/VendorName/ModuleName
), sekarang Anda hanya akan memiliki kode khusus di repositori git AndaInstalasi Magento
Instal Magento menggunakan baris perintah, misalnya:
${project_root}/bin/magento setup:install \ --db-host=localhost \ --db-name=magento \ --db-user=root \ --backend-frontname=admin \ --base-url=http://base.url.goes.here/ \ --language=en_US \ --timezone=America/Chicago \ --currency=USD \ --admin-lastname=Admin \ --admin-firstname=Admin \ [email protected] \ --admin-user=admin \ --admin-password=123123q \ --cleanup-database \ --use-rewrites=1
Aktifkan tugas pengindeks cron, misalnya di Ubuntu:
echo "* * * * * php ${project_root}/bin/magento cron:run &" | crontab -u www-data -
default
mode dan semua konten yang hilang akan dihasilkan secara otomatis atas permintaan pertama. Jadi tidak perlu menjalankan kompiler atau menyebarkan konten statis[opsional] Jika menggunakan PHP Storm, jalankan perintah berikut untuk mengaktifkan dukungan XSD:
bin/magento dev:urn-catalog:generate .idea/misc.xml
sumber
vendor
, termasukmagento2-base
, yang hanya kerangka untuk proyek baru. Tidak yakin mengapa langkah ini tidak dikonfigurasikan untuk dilakukan secara otomatis oleh komposer, akan mencoba mencari tahu. Mengenai.gitignore
menyalin dari repo lain, sudah dibahas, bagaimana menghilangkan / menyederhanakan langkah ini.magento2-base
ke root tidak diperlukan lagi (hanya diverifikasi), tampaknya baru-baru ini diperbaiki. Dihapus langkah ini dari jawabannya.Untuk Inisialisasi dan Instalasi ikuti langkah-langkah dari Alex jawabannya untuk sebagian besar langkah, hanya perbedaan yang saya sarankan:
Konfigurasi git
Hanya simpan file-file berikut di repositori Git Anda:
Untuk kode khusus proyek Anda, gunakan juga modul terpisah yang Anda sertakan melalui komposer. Mengelola ini melalui komposer lebih mudah karena Anda dapat mengunci versi / rilis tertentu yang ingin Anda gunakan. Ini juga memaksa Anda untuk menggunakan pendekatan yang sama untuk modul internal dan eksternal.
Penyebaran
Selama pengembangan Anda memperbarui modul di lingkungan Anda (dev / test) dengan perintah:
Ini akan memperbarui file composer.lock dengan versi yang diinstal pada instalasi itu.
Pada pementasan / pra-produksi / produksi Anda dapat membuat / menginstal pengaturan yang sama dengan perintah:
Ini akan menginstal semua modul yang sama seperti yang digunakan dalam dev / test untuk memastikan bahwa pengujian sebelum penerbitan ke produksi dilakukan dengan versi modul yang sama seperti yang dikembangkan dengan.
Setelah instalasi untuk menjalankan perintah berikut:
Ini akan memperbarui basis data (skema dan peningkatan data), menghasilkan konfigurasi DI dan menyebarkan semua file tampilan statis.
sumber
Re. Gitignore, 2.2 dan seterusnya jawaban resmi Magento adalah "config.php masuk ke git, env.php tidak".
Kami melihat plugin komposer seperti Mediawiki untuk mendapatkan dev internal yang lebih dekat dengan pengembangan ekstensi dan situs pelanggan. Masih menjelajahi, belum final.
Saya cukup suka menggunakan tipe repositori "Path" Komposer dengan jalur
../othergitrepo/app/code/*/*
untuk mengambil modul, tetapi menggunakan symlink yang tidak bekerja dengan baik dengan lingkungan dev menggunakan Unison atau sejenisnya.sumber
kami menjalankan pendekatan berbeda yang tidak melibatkan build-server / proses terpisah , kami mengembangkan secara lokal seolah-olah dalam produksi
kami kemudian melakukan semua file yang diperlukan untuk produksi . kami kemudian cukup menyebarkan perubahan ke server dan menjalankan perintah upgrade.
mendapatkan versi yang cocok untuk pengembangan tetapi juga berjalan dalam mode produksi adalah bagian yang sulit dan masih belum sempurna tetapi sekarang kami mendapat resep yang berfungsi.
alasannya adalah kita ingin memiliki kendali 100% atas kode apa yang digunakan untuk produksi. karena magento2 menghasilkan satu ton kode kita harus menjalankannya secara lokal untuk dapat memahami semua efek dan dapat men-debug seolah-olah dalam produksi.
Saya sadar bahwa ini bukan yang direkomendasikan oleh banyak orang, tetapi bagi kami itu paling berhasil.
langkah-langkah pengaturan-depan
Agar skrip ini berfungsi, atur toko Anda ke mode produksi di env.php Anda dan siapkan tema Anda
dev/tools/grunt/configs/themes.js
. (langkah-langkah berikut dimasukkan ke dalam buku pedoman yang memungkinkan)var/cache
var/view_preprocessed
pub/static/*
(jangan hapus .htaccess)var/composer_home
php bin/magento cache:flush
php bin/magento setup:static-content:deploy %your_languages%
pub/static/frontend
php bin/magento dev:source-theme:deploy --locale="%your_language%" --theme="%your_theme%" css/styles-m css/styles-l css/email css/email-inline
grunt less:your_theme
langkah backend / di-setup
var/cache
var/generation
var/composer_home
var/di
php bin/magento cache:flush
php bin/magento setup:di:compile
sumber
Anda juga harus mengabaikan file-file ini
/app/etc/config.php
/app/etc/env.php
/.idea/workspace.xml // phpstorm
sumber