2012-06-18 2 views
0

Все еще изучает пурпурное кодирование. Интересно, есть ли способ распечатать все значения в коллекциях на любой странице, которую я загружаю на magento? Это предполагает, что я не знаю имена используемых коллекций.Magento var_dump все коллекции, используемые на странице

Это было бы очень полезно, если это возможно.

ответ

6

Во-первых, слово предупреждения - если вы являетесь коллекциями var_dump'ing, не говоря уже о каждой коллекции, загруженной для данного запроса, то вы, скорее всего, столкнетесь с проблемами - коллекции содержат огромное количество данных.

Что именно вы требуете от каждой коллекции, которая вам понадобится для этого?

Во всяком случае, единственный способ, чтобы получить эти данные, что приходит на ум, будет использовать наблюдатель подписался:

core_collection_abstract_load_after 

Так как фору ...

Ваш config.xml будет выглядеть примерно так ...

<?xml version="1.0"?> 
<config> 
    <modules> 
     <YourCompany_YourModule> 
      <version>1.0.0</version> 
     </YourCompany_YourModule> 
    </modules> 
    <frontend> 
     <events> 
      <core_collection_abstract_load_after> 
       <observers> 
        <yourmodule> 
         <class>YourCompany_YourModule_Model_Observer</class> 
         <method>core_collection_abstract_load_after</method> 
        </yourmodule> 
       </observers> 
      </core_collection_abstract_load_after> 
     </events> 
    </frontend> 
    <global> 
     <models> 
      <yourmodule> 
       <class>YourCompany_YourModule_Model</class> 
      </yourmodule> 
     </models> 
    </global> 
</config> 

Ваш наблюдатель будет выглядеть следующим образом ...

<?php 

class YourCompany_YourModule_Model_Observer 
{ 
    public function core_collection_abstract_load_after(Varien_Event_Observer $observer) 
    { 
     $collection = $observer->getEvent()->getCollection(); 
     //Do what you want with each collection here 
    } 
} 
+0

Еще раз спасибо, вы, кажется, отвечает на многие мои вопросы в последнее время. Сегодня я расскажу об этом позже. –

+0

Привет, Дрю, так что все это я получу все значения. Но какой лучший способ «увидеть их», если я попытаюсь «var_dump()» в браузере, часто я просто получаю «заголовки, уже отправленные ошибки». Есть ли альтернативный способ? Я думал, может быть, написать значения, которые я хочу для файла на сервере, но это означает, что мне придется постоянно перезагружать этот файл, есть ли более удобный способ? –

+0

Я нашел хорошее решение 'Mage :: log();' всем, кому это нужно, вы можете прочитать об этом здесь http://www.classyllama.com/development/magent-development/magento-initial- setup –

1

Гораздо более простой подход, и будь это ваш новый для Magento я предлагаю использовать это:

Как будет предлагать другие понимание внутренней работы, а также сбор и SQL информация о фактической коллекции.

Вид в действии:

+0

Привет, мое мнение об этом было бы оперативно узнать больше от создания собственного модуля и изучения событий/наблюдателей и т. д., чем установки стороннего модуля. Кажется, это культура среди некоторых разработчиков magento, чтобы просто найти расширение для всего –

Смежные вопросы