1000 миллисекунд из жизни Magento

3,895 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,895
On SlideShare
0
From Embeds
0
Number of Embeds
2,056
Actions
Shares
0
Downloads
30
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

1000 миллисекунд из жизни Magento

  1. 1.
  2. 2. 1000 миллисекунд из жизни Magento<br />Евгений Ивашин,<br />разработчик Magento Core<br />
  3. 3. Представьте себя на месте Magento<br />Представьте себе что вас зовут Magento, вы весите около 60 мегабайт и состоите из более чем 320 тысяч строк кода. <br />
  4. 4. Представьте себя на месте Magento<br />Представьте, что одни ваши знакомые хотят, чтобы вы весили меньше, другие – чтобы вы бегали как спринтер, третьи – чтобы вы были способны сделать сальто и встать на мостик без усилий.<br />
  5. 5. Представьте себя на месте Magento<br />Представьте, что окружающие никогда не довольны вашими успехами, нагружают вас дополнительными упражнениями и в то же время не прекращают требовать от вас быть еще гибче и еще быстрее.<br />
  6. 6. Представьте себя на месте Magento<br />Представили? А теперь представьте, что вы должны быть готовы:<br />обслуживать тысячи клиентов в час<br />никому не отказывать в помощи<br />никого не заставлять ждать<br />
  7. 7. Тук-тук (0.000 ms)<br />Пользователь набрал в браузере<br />http://my.magento.installation.com/customer/account/login<br />Веб-сервер все запросы переадресовывает <br />на index.php<br />
  8. 8. Запуск основного цикла Magento (0.005 ms)<br />Пользователь набрал в браузере<br />http://my.magento.installation.com/customer/account/login<br />Веб-сервер все запросы переадресовывает <br />на index.php<br />Mage::run()<br />
  9. 9. Экскурсия по фабрике<br />::getModel()<br />::app()<br />::getConfig()<br />::register()<br />::getBaseUrl()<br />::getSingleton()<br />::getStoreConfig()<br />::getBaseDir()<br />::registry()<br />::helper()<br />::getUrl()<br />::getResourceModel()<br />
  10. 10. Инициализация приложения (0.020 ms)<br />Пользователь набрал в браузере<br />http://my.magento.installation.com/customer/account/login<br />Веб-сервер все запросы переадресовывает <br />на index.php<br />Mage::run()<br />Инициализация класса приложения Mage_Core_Model_App<br />
  11. 11. Запуск основного цикла приложения (0.038 ms)<br />...<br />Mage::run()<br />Инициализация класса приложения Mage_Core_Model_App<br />Запускается основной цикл приложения Mage::app()->run()<br />
  12. 12. Загрузка базовой конфигурации (0.123 ms)<br />...<br />Mage::run()<br />Инициализация класса приложения Mage_Core_Model_App<br />Запускается основной цикл приложения Mage::app()->run()<br />Загрузка базовой конфигурации из app/etc<br />
  13. 13. Загрузка базовой конфигурации<br />1<br />app/etc/*.xml<br />System Configuration<br />
  14. 14. Инициализация модулей (0.175 ms)<br />...<br />Инициализация класса приложения Mage_Core_Model_App<br />Запускается основной цикл приложения Mage::app()->run()<br />Загрузка базовой конфигурации из app/etc<br />Инициализация каждого модуля из app/etc/modules<br />...<br />Module 1<br />Module 2<br />Module 3<br />Module N<br />
  15. 15. Инициализация модулей<br />1<br />2<br />app/etc/*.xml<br />app/etc/modules/*.xml<br />app/<Module 1 path>/etc/*.xml<br />app/<Module 2 path>/etc/*.xml<br />app/<Module N path>/etc/*.xml<br />app/etc/local.xml<br />System Configuration<br />3<br />…<br />N+1<br />4<br />N<br />
  16. 16. Запуск цикла диспетчеризации (0.591 ms)<br />...<br />Запускается основной цикл приложения Mage::app()->run()<br />Загрузка базовой конфигурации из app/etc<br />Инициализация каждого модуля из app/etc/modules<br />...<br />Module 1<br />Module 2<br />Module 3<br />Module N<br />Инциализация Front Controller <br />и запуск его цикла диспетчеризации<br />
  17. 17. Попытка сопоставить роутер с URL (0.613 ms)<br />...<br />Инициализация каждого модуля из app/etc/modules<br />...<br />Module 1<br />Module 2<br />Module 3<br />Module N<br />Инциализация Front Controller <br />и запуск его цикла диспетчеризации<br />Перебор всех сконфигурированных роутеров<br />...<br />Router 1<br />Router 2<br />Router 3<br />Router N<br />
  18. 18. Вычисление и запуск action (0.620 ms)<br />...<br />Инциализация Front Controller <br />и запуск его цикла диспетчеризации<br />Перебор всех сконфигурированных роутеров<br />...<br />Router 1<br />Router 2<br />Router 3<br />Router N<br />Вычисление Action Controllerи Action,<br />запуск $actionController->actionAction()<br />
  19. 19. Анатомия контроллера<br />Обработка входных параметров из Request<br />Загрузка Layout<br />$this->loadLayout();<br />Работа с отдельными блоками в Layout<br />Отрисовка Layout<br />$this->renderLayout();<br />
  20. 20. Обновления Layout<br />
  21. 21. Генерация блоков<br />
  22. 22. Рендеринг (~1.000 ms)<br />
  23. 23. The End<br />

×