Memperkirakan peningkatan Magento adalah proses mengumpulkan informasi tentang modifikasi yang diterapkan pada instalasi yang akan Anda perbarui, memeriksa apakah modifikasi itu dapat menyebabkan masalah dan kemudian mengevaluasi berapa banyak waktu yang diperlukan untuk mengatasinya.
Semua modifikasi dapat secara harfiah dibagi menjadi off-core dan in-core .
Modifikasi off-core adalah yang tidak akan ditimpa dengan peningkatan. Itu adalah ekstensi pihak ke-3 , file inti yang dimasukkan ke dalam cakupan lokal (app / code / local / Mage) dan tema khusus .
Modifikasi dalam-inti diterapkan langsung pada file inti Magento (app / code / core), file pelokalan (app / locale / en_US), templat inti dan beberapa hal seperti javascripts , perpustakaan eksternal yang jarang dikustomisasi namun harus dipertimbangkan. .
Modifikasi Off-Core
Ekstensi Pihak Ketiga
Selama peningkatan, ekstensi pihak ketiga adalah sumber utama masalah. Yang berarti lebih banyak ekstensi, Anda memiliki lebih banyak waktu, Anda perlu menganalisisnya.
Hal pertama yang harus diperiksa adalah apakah fungsionalitas yang disediakan oleh ekstensi belum diimplementasikan dalam versi Magento yang sedang Anda tingkatkan. Misalnya beberapa ekstensi suka Yoast_CanonicalUrl
, Mxperts_CustomerAddress
atau Fontis_Wysiwyg
banyak digunakan di Magento 1.3.xx dan lebih lama tetapi sekarang merupakan bagian dari fungsi inti Magento dan tidak lagi diperlukan.
Maka itu ide yang baik untuk memeriksa (meminta pelanggan Anda) jika Anda benar-benar membutuhkan semua ekstensi yang Anda miliki. Mungkin ada beberapa ekstensi yang Anda instal tetapi tidak pernah benar-benar digunakan. Jadi pada titik ini ada baiknya melakukan semacam pembersihan.
Maka hal yang penting untuk diperiksa adalah kompatibilitas masing-masing ekstensi yang tersisa dengan versi Magento yang sedang Anda tingkatkan. Jika beberapa ekstensi tidak kompatibel dan tidak ada ekstensi serupa yang tersedia, Anda akan memiliki pilihan yang sulit baik kehilangan beberapa fungsi atau memodifikasi ekstensi yang ada untuk membuatnya kompatibel.
Catatan: Jangan memodifikasi ekstensi pihak ke-3 secara langsung tetapi buat ekstensi baru yang akan memperpanjang yang sudah usang dan kemudian atur ketergantungan pada bootstrap XML dari ekstensi baru.
Setelah semua yang dilakukan analisis sebenarnya dari masing-masing ekstensi yang tersisa dapat disediakan. Itu akan selalu dimulai dengan pemeriksaan etc/config.xml
file. Ada 3 hal yang harus dicari:
- Penulisan ulang kelas bukanlah teknik yang bersih dengan sendirinya tetapi dalam beberapa kasus tidak ada jalan lain. Jadi, jika kelas yang ditulis ulang diubah dalam versi baru Magento, ini bisa menjadi masalah potensial.
- Pembaruan tata letak kemungkinan besar tidak akan menyebabkan masalah dengan peningkatan Anda tetapi masih jika ekstensi mereferensikan blok yang sudah usang dalam versi Magento yang lebih baru, Anda harus menyelesaikannya.
- Pembaruan SQL adalah sumber masalah yang sangat diremehkan selama peningkatan. Masalah terjadi ketika ekstensi pihak ketiga membuat kunci asing referensi ke beberapa bidang di tabel Magento default. Akibatnya bidang ini dikunci dari modifikasi. Dan kemudian jika skrip instal asli akan mencoba memperbarui bidang ini, maka akan gagal secara diam-diam. Setelah itu, setiap skrip pemasangan berikutnya yang merujuk ke bidang ini akan merusak pemutakhiran Anda.
app / code / local / Mage
Setelah Anda selesai dengan ekstensi, inilah saatnya untuk melihat app/code/local/Mage
direktori Anda . Di sini Anda akan menemukan file inti yang dimodifikasi dipindahkan ke local
lingkup. Masing-masing dari mereka pasti akan dikenakan biaya beberapa uban karena Anda tidak pernah tahu (jika bukan Anda yang meletakkannya di sana) apa yang dimodifikasi di sana dan untuk alasan apa. Jadi, Anda harus membandingkan masing-masing dengan sumber dan memigrasikan fungsionalitas yang ditambahkan ke file koresponden versi baru.
Tema Khusus
Modifikasi banyak off-core terakhir adalah tema khusus. Ini mungkin tampaknya bukan masalah besar tetapi sebenarnya ini adalah wilayah abu-abu. Tema dasar Magento sedang dimodifikasi dari versi ke versi dan setiap tema khusus harus meniru beberapa modifikasi tersebut. Sayangnya tidak ada peluru perak untuk menentukan apa yang harus dicari dan apa yang harus dimigrasi. Jadi bersiaplah untuk beberapa kejutan besar dan nitpicking kecil setelah peningkatan Anda.
Modifikasi In-Core
Di dunia yang sempurna tidak ada. Tetapi ketika Anda mendapatkan instalasi Magento setelah disalahgunakan oleh pengembang pihak ketiga, yang menawarkan banyak untuk murah Anda bisa mengharapkan apa saja. Jadi modifikasi in-core adalah mereka yang akan ditimpa selama proses peningkatan. Dalam kebanyakan kasus itu tidak akan menghasilkan kesalahan tetapi sebagai akibatnya Anda akan kehilangan fungsionalitas yang ditambahkan dengan cara yang brutal.
Satu-satunya cara untuk mendeteksi modifikasi dalam inti adalah membandingkan semua file instalasi Magento Anda dengan file bersih dari versi yang sama. Saya sarankan melakukannya dengan git. Mengapa? Hanya karena itu akan menangani semua baris baru dan spasi putih dengan baik.
Walaupun instalasi Magento Anda tidak di bawah git, Anda masih dapat menyalin file ke direktori terpisah dan kemudian menjalankan git init. Kemudian buat komit awal, salin file Magento "bersih" dan jalankan git status
. Anda akan mendapatkan sesuatu seperti ini:
Sekarang tergantung pada jumlah file yang dimodifikasi, Anda dapat menjalankan git diff
pada setiap file atau pada keseluruhan batch sekaligus. Ini akan memberi Anda referensi komprehensif dari semua modifikasi in-core yang dibuat. Jika Anda memiliki visualisasi git seperti phpStorm, hidup ini jauh lebih mudah bagi Anda:
Saya menyarankan git diff > changes.txt
agar Anda selalu memiliki daftar modifikasi dengan tangan.
Dengan memiliki daftar modifikasi inti, Anda dapat memperkirakan apa yang harus ditransfer ke versi baru dan berapa banyak waktu yang diperlukan untuk melakukannya.
Sekarang saya ingin memberikan beberapa saran untuk peningkatan yang sebenarnya. Proses ini didokumentasikan dengan baik sehingga saya tidak akan menulis perintah apa yang harus dijalankan dan ke mana harus mengklik. Namun saya ingin memberi aksen pada beberapa hal penting:
- Kami mengasumsikan bahwa Anda meningkatkan di lingkungan pengembangan Anda. Menjalankan peningkatan di server produksi Anda adalah bunuh diri.
- Jangan biarkan mereka mengubah apa pun dalam produksi saat Anda meningkatkan. Letakkan Magento Anda di bawah kontrol versi atau bahkan file kunci sementara dari penulisan.
- Nonaktifkan semua ekstensi pihak ketiga tetapi perhatikan mana yang awalnya dinonaktifkan sehingga Anda tidak akan mengaktifkannya setelah itu.
- Periksa apakah ada skrip pembersihan Magento yang berjalan di server. Jika tidak memotong semua tabel dimulai dengan
dataflow_*
, log_*
, report_*
.
- Kembalikan ke tema default pada waktu peningkatan.
Setelah skrip pemutakhiran selesai:
- Merujuk
changes.txt
Anda yang dibuat sebelum memigrasi semua modifikasi inti yang benar-benar layak dimigrasi.
- Migrasikan
app/code/local/Mage
modifikasi yang ditemukan sebelum meningkatkan.
- Satu per satu mengaktifkan ekstensi pihak ke-3.
- Pasang kembali tema Anda dan bandingkan hasilnya dengan server produksi secara komprehensif.
- Sebarkan ke produksi setelah Anda puas dengan hasilnya.
Kesimpulan
Saya tahu ini semua terdengar menakutkan tetapi jika Anda meningkatkan secara teratur, menjaga inti Anda tetap bersih dan menginstal ekstensi hanya dari vendor yang benar-benar Anda percayai dan hanya jika Anda benar-benar membutuhkannya, Anda tidak akan menghadapi sebagian besar kesulitan yang dijelaskan dalam artikel ini. Jadikan Magento EcoSystem Anda sehat dan Anda akan diberi hadiah.
Skrip Posting
Dalam kasus yang sangat rumit, masuk akal untuk memulai dari awal dengan pemasangan baru Magento terbaru dan memigrasikan tema dan fungsi toko Anda langkah demi langkah. Ini pasti akan memakan waktu tetapi pada akhirnya Anda akan memiliki sistem Magento yang sehat dengan kesadaran penuh Anda tentang apa yang sedang terjadi.