Menonaktifkan modul - peningkatan kinerja?

27

Pertanyaan ini memiliki 2 bagian:

  1. Apakah menonaktifkan modul inti meningkatkan kinerja keseluruhan toko dan jika demikian, apakah mereka perlu dinonaktifkan di admin (yaitu menonaktifkan output frontend) atau dinonaktifkan melalui config.xml agar peningkatan kinerja ini dapat dilihat.

  2. Jika ada peningkatan kinerja yang diperoleh, modul mana pada stok, CE 1.7.0.2 build dapat dinonaktifkan dengan aman, melalui metode yang dijawab di bagian 1.

Marty Wallace
sumber

Jawaban:

27
  1. Ya itu. Pertama-tama, lebih sedikit modul berarti lebih sedikit kode untuk memuat (berpotensi) memuat dan memproses. Selain itu, banyak modul, seperti misalnya modul Mage_Rss menjalankan banyak kode di latar belakang seperti memaksa pengindeksan ulang pada peristiwa tertentu.

    Pada metode terbaik untuk digunakan: menonaktifkan modul menggunakan System > Configuration > Advancedhanya menekan output modul sambil tetap memasukkan kode Modul itu di toko. Ini berguna ketika Anda tidak ingin fungsionalitas modul tetapi Anda membutuhkan Model atau Blok misalnya karena ekstensi (pihak ketiga) bergantung padanya. Menonaktifkan penggunaannya app/etc/modules/*.xmlsepenuhnya akan menghapusnya dari instalasi sehingga kinerja bijaksana adalah pilihan terbaik.

  2. Saya biasanya menonaktifkan ekstensi berikut melalui XMl

    • Mage_Rss
    • Mage_PayPalUk
    • Mage_Tag (saat tidak digunakan dalam proyek)
    • Mage_Poll (toh yang menggunakan jajak pendapat)
    • Phoenix_Moneybookers
    • Mage_Sendfriend
    • Mage_Rating (bila tidak digunakan dalam proyek)
    • Mage_Bundle (sekali lagi, jika tidak diminta oleh klien)
    • Mage_Downloadable (lihat di atas)

    dan melalui System > Congiguration > Advancedyang Mage_Adminnotificationyang menekan popup yang mengganggu di backend.

    Anda mungkin dapat menonaktifkan beberapa ekstensi inti tergantung pada apa yang Anda gunakan atau tidak. Pastikan Anda tidak membahayakan stabilitas Magento. Saya kira ini akan membutuhkan beberapa trial and error.

Sander Mangel
sumber
1
Apakah ada cara untuk menonaktifkannya tanpa mengubah file inti xml?
Marty Wallace
1
Jika belum memiliki file XML sendiri, Anda dapat melanjutkan dan membuatnya, cukup buat app/etc/module/Mage_Rss.xmlmisalnya dan pastikan Anda menambahkan kode codePool (core) dan active (false)
Sander Mangel
Saya mungkin bingung saat itu :). Maksud saya mengatakan bahwa saya dapat menonaktifkan Mage_Centinel misalnya, tanpa mengubah Mage_Centinel.xml yaitu menggunakan file xml saya sendiri untuk menonaktifkannya. Dengan begitu saya tidak akan mengubah kode inti
Marty Wallace
Ahhh oke, saya salah paham. Yah, Anda mungkin dapat menonaktifkannya karena semua file XML digabungkan menjadi satu jadi jika Anda menambahkannya di tag config.xml ekstensi Anda harus mendapatkan pickup tetapi menurut saya itu 'bersih' untuk melakukannya dari app/etc/modulesdirektori. Tapi itu hanya saya :)
Sander Mangel
2
Sebelum menonaktifkan jajak pendapat ingatlah untuk menghapus sampel jajak pendapat "Pilih warna"; Saya telah menemukan modul pihak ketiga yang dapat menampilkan konten jajak pendapat meskipun modul dinonaktifkan.
lrkwz
14

Meskipun terlambat dengan jawaban, saya ingin menjawab pertanyaan itu

  1. Anda mendapatkan lebih banyak kinerja jika Anda menghapus file secara fisik.
  2. Cukup semuanya, kecuali Mage_Core;-)

Tetapi untuk menonaktifkan modul pasangan ketat, Anda perlu memasang modul lain yang berhati-hati agar tidak ada yang rusak. Karena itu saya telah mengembangkan: https://github.com/Zookal/magento-mock

Zookal Mock: Mendeteksi otomatis modul inti dan ekstensi yang dinonaktifkan dan menyediakan objek tiruan agar tidak melanggar Magento. Tidak ada yang dikonfigurasi. Tidak ada penulisan ulang kelas. Hanya satu pengamat. Bekerja di luar kotak. Anda bahkan dapat menghapus file secara fisik!

Misalnya ketika Anda menonaktifkan Mage_Wishlistatau BackendMage_Newsletter Anda -> Pelanggan -> Edit pelanggan akan menimbulkan kesalahan aneh. Karena itu gunakan ekstensi Mock!

Anda bahkan dapat menghapus modul Pembayaran lama yang memiliki entri dalam sales_flat_order_paymenttabel dan biasanya merusak Backend Anda -> Penjualan -> Tampilan Pesanan tetapi ekstensi Mock memiliki pekerjaan yang transparan untuk Anda.

Satu hal yang perlu dipertimbangkan: Tidak berfungsi pada command line

Cyrill
sumber
10

Lihat jawaban Marius tentang cara menonaktifkan modul XML yang sederhana dan cepat. Buat satu file zzz_Disabled_Modules.xmldengan konten

<?xml version="1.0"?> 
<config>
    <modules>
        <Mage_Rss>
            <active>false</active>
        </Mage_Rss>
        <Mage_PaypalUk>
           <active>false</active>
        </Mage_PaypalUk>
        <Phoenix_Moneybookers>
            <active>false</active>
        </Phoenix_Moneybookers>
        <!-- all other modules here -->
    </modules>
</config>

Membayangkan! .Gitignore untuk modul Magento!

Dengan ini, Anda dapat dengan mudah melihat modul mana yang telah Anda aktifkan / nonaktifkan sekilas.

tzvi
sumber
2

Seperti yang dikatakan @Sander Mangel, menonaktifkan modul secara menantang dapat memiliki peningkatan kinerja yang besar, meskipun apa yang Anda nonaktifkan sebenarnya adalah hal dari toko ke toko. Biasanya ada banyak yang tidak Anda butuhkan. Jika Anda tidak menggunakan menonaktifkan whishlist Mage_Wishlistmembuat perbedaan.

Keuntungan lainnya adalah menonaktifkan Mage_Log. Ini mungkin lebih baik dilakukan melalui local.xml.

pengguna3412
sumber