"Küresel" içindeki olası etiketleri nelerdir

4 Cevap php

Bazı profesyonel deneyimli Magento geliştirici nasıl Magento aşağıdaki gerçekleştirmek için bana söyleyebilir misiniz?

I want to know what are the possible tags that can fit in the "global" tag of the "config.xml" page of every module's etc folder?

Ben internette ama boşuna pek çok yerde bu cevap arıyor denedim.

Ben yerine başlarını çizilmemesi, yeterince yararlı buluyorum bu web sitesine erişim azından kullanıcıları istiyorum çünkü, Magento version >= 1.4.0.0 için onunla birlikte detaylarını yazınız.

Benim gibi her acemi tamamen bu noktada karışır çünkü gerçekten detaylı bir açıklama istiyorum. Ben şimdiye kadar bildiklerini, bu sayfada, siz yönlendiriciler, yeniden yazar, cron işleri, yönetici html, ön-uç html ve daha birçok ayarlayabilirsiniz olmasıdır. Ama herhangi bir güçlü kavramları olmadan, hiçbiri onun kod% 100 doğru wrt olduğu inancı ile devam edebilirsiniz Magento MVC mimarisi.

Yani hiç kimse tekrar bu tuzak içine alır, böylece güçlü temel kavramı, bu konuda ayrıntılı bir açıklama ile, burada altını getting istiyorum lütfen.

Ben bir şey anlayabiliyorum - birçok için Magento geçerli küresel etiketleri tam bir referans bir yanlış isim olacağını görünüyor, ama ben küresel etiketi altında gider etiketleri bu geçerli sınırlı sayıda bir dizi olması gerektiğini açıklığa kavuşturmak istiyorum .

Örneğin, ben sadece bir "yığın" veya "taşması" ya da geçerli bir biri olarak Magento alınmayacaktır oldukça eminim "joseph" etiketi, yazamıyor. (Böylece "modeller", "kaynaklar", "kaynak" ve benzeri) geçerli etiketleri çalıştıkları ki, bir yerde Magento yapılandırmada tanımlanan çünkü öyle.

Bu benim vurgulamak istiyorum ki, aslında benim noktasıdır.

Sadece açıkça toplam kavramını bilerek üzerine cevap olanlar için çok çok teşekkürler.

4 Cevap

Hızlı cevap bu etiketlerin hiç tam listesi olmasıdır. Onlar herhangi bir sorun olmadan uzatılabilir çünkü magento XML dosyaları için sıkı bir dilbilgisi kullanmak değildir. 1.4 kod tabanı baktığımızda, ben bir terminalden aşağıdaki komutu gerçekleştirilir:

cd /path/to/magento
grep -r global/ . 2>/dev/null | grep -v pearlib | grep php | sort

Ve geri küresel geneli yol özellikle çağrılan yaklaşık 75 çizgileri var. Bunlardan bazıları basit:

global/page/layouts
global/pdf/totals
global/template/email
global/payment/cc/types

Ve diğerleri çok daha karanlık vardır:

global/catalog/product/type/configurable/allow_product_types
global/helpers/core/encryption_model
global/widget/related_cache_types

Bunun üstüne, örneğin belirtildiği yönlendiriciler gibi, dinamik olarak çağrılan, hangi birkaç yazılarak, vb vardır:

global/models/'.$model.'/resourceMode
global/'.$groupType.'s

Aslında, ben bile küresel alana eklenen kendi uzantısı kod 4. başvuruları bulundu. Tüm bilerek, geçerli küresel etiketleri tam bir referans bir yanlış isim olacağını ve muhtemelen küçük güncellemeler sırasında bile değişecek. Son nokta, size Magento'nın yapılandırma modeli / w uygun olacaktır tam güvencesi ile ileri gidemez. Kütüphanesi ile sağlanan nesneleri, olası app kalanından örnekleri kullanmaz, ve hiçbir yardım verildiğinde cesaretle ilerlemek için elinizden geleni yapın. :)

Umarım ki olur!

Thanks, Joe

Aslında, Magento için Gelişen zaman akılda tutulması gereken önemli bir şey, tüm config.xml dosyalar concatenated içeren one unique XML dosyasının bir çıkış vermek olduğunu all nodes her config.xml dosyaların alınan all modules.

The fact is, as Joseph said, that Magento does not use any strict grammar. We could say that the grammar is created by developpers themselves.

Sizin modülünde Örneğin, config.xml tanımlar:

<config>
   <mynode>
     <myconfigvar>Foo</myconfigvar>
   <mynode>
</config>

Aynı düğüm (<mynode></mynode>), bir alt düğüm eklemek ve bu düğümü olabilir ve modül tanımlayan diğer herhangi bir modül de bu yeni düğüm erişmek mümkün olacak.

The better to understand what are the nodes used for, is to read the Core code. A good way to start understanding the way config.xml are parsed by magento is reading app/code/Core/Mage/Core/Config.php.

Fonksiyon Mage::getStoreConfig() çalışır biçimini anlamak, çok iyi bir yoldur.

Hugues.

Bunun yerine açıkça mevcut etiketlerin listesini dökümü bireysel konumları belirtmek dizeleri arıyor. Diğerleri işaret ettiği için bu sadece size bir fikir verir değişen bir liste bulunuyor. Keşfetmek zaman ben sık sık bu gibi bir komut dosyası kullanabilirsiniz ...

<pre><?php

require 'app/Mage.php';
Mage::app();

$global = Mage::getConfig()->getNode('global');

foreach ($global->children() as $node) {
    echo $node->getName(), PHP_EOL;
}

?></pre>

Joseph dediği gibi, olasılıklar kesin bir liste vardır. Size önerim sadece Magento'nın config.xml dosyaları geçiyor başlamaktır. Sadece yukarı / app / kod / çekirdek / Mage / açın ve daha sonra her klasör içinde bir çekirdek modülü var. Yani, örneğin Satış. Satış / etc / config.xml açın ve ne yaptıklarını görmek.

Sadece Magento zaten yerleşik ne bakarak bir ton öğrenebilirsiniz. Herkesin sorular sormaya çalışıyoruz durdu ve teftiş ve orada zaten kodundan öğrenmeye başladığımda ben gerçekten her şeyin nasıl çalıştığını benim anlayış ilerlemeye başladığında, o.