SORU
23 EKİM 2010, CUMARTESİ


Profesyonel bir denetleyici ve bir blok arasında Geçen veriler

Gerçekten hızlı ve basit bir soru ama Profesyonel bir blok için bir kumanda veri aktarmak için en iyi yolu Nedir bu doğru dürüst bir cevap bulamıyorum.

Fark eder örtmek, aşağıdaki gibi düzen yükleme duyuyorum

 $this->loadLayout(array('default', 'myModule_default'));

    $this->_initLayoutMessages('customer/session')
         ->_initLayoutMessages('catalog/session')
         ->renderLayout();

Aşağıdaki gibi kayıt defteri kullanıyorum şunu eklemem gerekir

İçinde kumanda sistemi:

Mage::register('data', $data);

Blok:

$data = Mage::registry('data');

Eğer bu yapmak için en iyi yol olup olmadığından emin değil.

CEVAP
24 EKİM 2010, Pazar


Değilsin.

Profesyonel ... ... MVC yaklaşımı, görünümü (Profesyonel davasında, görünüm Düzeni ve blok) için değişkenleri ayarlamak için denetleyici sorumluluğu değil. Denetleyicileri Modellerde değerlerini ayarlayın ve sonra da Blokları aynı modellerden oku. Dünyanın Profesyonel görüşüne göre, bir Blok denetleyicisi özel bir şey yapıyor güvenmek zorunda sıkı kavrama ve kaçınılmalıdır.

Senin kumanda işi Modelleri için bazı şeyleri yapmak, ve bu sistem düzen oluşturma süresini söyle. İşte bu kadar. Belirli bir yol sistemi Modellerinin durumuna bağlı olarak bir HTML sayfası görüntülemek için Düzen/Blok işini.

Eğer geleneksel bir PHP MVC davranışları taklit etmek isteseydim, yapardım

  1. Basit bir Model sınıfı Varien_Object miras oluşturun

  2. Denetleyici olarak, o nesne Mage::getSingleton('foo/bar') kullanarak başlatılamadı

  3. Model sihirli alıcı/belirleyiciler kullanarak (Varien_Object devralan nesneleri bu olsun) ayarlanmış değerler, veya setData, vb.

  4. Blok, Modeli tekrar Mage::getSingleton('foo/bar') ile oluşturmak ve değerlerini okuyabilir.

Mage::getSingleton(...) ile bir Model örneğini Profesyonel nesnesi başlatılamadıbir singleton olarak. Bu yüzden, eğer yeniden oluşturmak bir nesne (tekrar Mage::getSingleton('foo/bar') ile) aynı nesneyi geri almak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kourtneyannmakeup

    kourtneyannm

    19 ŞUBAT 2012
  • SegaAmerica

    SegaAmerica

    5 Mart 2008
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009