Magento'da neden 3 kod havuzu var?


26

Magento'da üç kod havuzu vardır:

  1. topluluk
  2. çekirdek
  3. yerel

Çekirdek: Tüm Magento varsayılan modüllerini içerir

Topluluk ve yerel: Bu kod havuzlarını özel modül geliştirmemiz için kullanıyoruz.

Şimdi bunun hakkında şüphem var:

  • Magento neden kişiselleştirme için iki kod havuzu kullanıyor?
  • Magento neden kişiselleştirme için tek bir kod havuzu kullanmıyor?

Birisi bunu açıklayabilir mi?

Yanıtlar:


34

app / code / core - Magento tabanı ile birlikte dağıtılan ve çekirdek işlevselliğini oluşturan modülleri tutar.

app / code / community - Üçüncü taraflarca geliştirilen modülleri tutar

app / code / local - Mage kodu geçersiz kılma dahil, geliştirdiğiniz özel modülleri tutar.

Magento neden özelleştirmemiz için iki kod havuzu kullanıyor?

Magento aslında üç kod havuzu kullanıyor. Önce yerel , topluluk ikinci ve çekirdek üçüncü yükleyecektir . Kuruluş amaçları için üç kullanır ve iki + 3. parti uzantıları aynı şeyi yeniden yazmaya çalışırken sorunları çözmeye yardımcı olur. Bir örnekte, aynı modeli yeniden yazmaya çalışırken app / code / toplulukta iki uzantınız vardı, uygulama / kod / yerelde bir uzantı oluşturabilir ve iki uzantı mantığını birleştirebilirsiniz.

Magento neden kişiselleştirme için tek kod havuzu kullanmıyor?

Bazı kod organizasyonlarına sahip olmak için bu şekilde yapıldı. Ayrıca, üçüncü taraf çatışmalarınız olduğunda, yerel bu sorunların çözülmesine yardımcı olmakta harikadır. Yerel ayrıca, yalnızca bu sitenin sahip olacağı uzantılara sahip olması için harikadır.


1
Tek kod havuzu soruya güzel cevap. Birkaç üçüncü parti modül kurduktan sonra karşılaşacağınız tüm ihtilaflar göz önüne alındığında, tüm localkilitlenmeleri gidermek için bu üçüncü kod havuzuna sahip olmak çok önemlidir .
Fiasco Labs

11

görüntü tanımını buraya girin

core :Bu kod havuzu Magento çekirdek geliştirme ekibine aittir. Bu yüzden bu kod havuzunda herhangi bir değişiklik yapmamalısınız.

community :Bu, Magento topluluğu geliştiricilerine aittir (üçüncü taraf uzantıları geliştiren geliştiriciler dahil). Üçüncü taraf uzantıları oluşturuyorsanız, bu kod havuzunu bunun için kullanabilirsiniz.

local :Bu, özellikle Magento mağazanız için herhangi bir değişiklik yapmak (yeni işlevsellik / uzatma geçersiz kılma / çekirdek işlevsellik değişiklikleri vb.) Yapmak ve bunu toplulukla paylaşmak istemiyorsanız kullanılabilir. Aynı zamanda çekirdek ve topluluk kodu havuzlarındaki işlevselliği geçersiz kılabilirsiniz.


5

Magento Codepools tanımlayın

Çekirdek havuzu

Her şeyden önce, bu klasör Magento'yu çok güçlü, esnek ve hoş yapan tüm kodu saklar. Magento gelişiminin ana kuralı, hiçbir zaman değişiklik yapmamanız gerektiğidir. Başka bir deyişle, bu klasör yalnızca Magento çekirdek geliştiricilerine aittir ve bu havuzdaki herhangi bir şeyi düzenleyecekseniz, kötü ruhları sizi ekran boyunca bile cezalandırır.

Topluluk havuzu

Bu klasör tamamen topluluk geliştiricilerine aittir. Bu, MagentoConnect'te bulunan veya eklenti geliştirme mağazasında bulabileceğiniz hem ücretsiz hem de ücretli yüzlerce 3. parti eklenti için doğru yerdir. Bu nedenle, temel olarak, herhangi bir eklenti kurduysanız, bunun app / code / community / only konumunda olması gerekir.

Yerel havuz

Kendi Magento tabanlı mağazanız varsa ve her şeyi kendi başınıza yapmak istiyorsanız veya bir Magento geliştiricisiyseniz ve mantığı bir şekilde değiştirmek amacındaysanız, yerel havuz her şeyin yapılması gereken yerdir. Magento uzantılarını, bloklarını veya yöntemlerini geçersiz kılmak istiyorsanız, gerekli klasörleri Çekirdek havuzundan kopyalayın ve ne yapmak istediğinizi yapın. Web sitesi için özel olarak oluşturulan özel uzantılar için aynı kuralı uygulayın - tüm kodların yerel havuzda olması gerekir.


4

Yukarıdakilerin hepsini basit bir şekilde eklemek, önceliklerini yapmak ve modülerliği sağlamak içindir. Aynı Mage.php de kontrol edebilirsiniz.

Kod havuzlarını yükleme

 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local';
 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community';
 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core';
 $paths[] = BP . DS . 'lib';

SO önce Yerel sonra topluluk sonra çağrılan çekirdek ve magento herhangi bir çekirdek dosya bulamaz, sonra Zend-Framework Çekirdek dosyalarını içeren lib klasöründe arama yapar.


1

En iyi açıklama, eğer uzantılarınızı daha geniş bir kitleye dağıtmayı hedefliyorsanız, örneğin Magento Connect aracılığıyla topluluğa yerleştirebilirsiniz.

Bu, başka bir geliştiricinin bir sınıfı yerel klasöre yerleştirerek davranışı geçersiz kılmasını sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.