Хобрук: Ваш путь к мастерству в программировании

Использование компонентов Symfony 2 в Magento

Насколько легко было бы интегрировать некоторые компоненты/связки Symfony 2 в платформу Magento?

Я имею в виду, в частности, механизм шаблонов веток, хотя вопрос обычно относится к любым компонентам?

17.06.2012

  • Это будет иметь сложность 8,7. 17.06.2012
  • Хорошо - поймите свою точку зрения :) Я полагаю, я действительно спрашиваю, платно ли это. 17.06.2012
  • Magento использует Zend Framework, поэтому я думаю, вам придется переписать большую часть кода. 18.06.2012

Ответы:


1

использовать механизм шаблонов twig в любом php-проекте очень просто, потому что это автономный компонент, не привязанный к symfony.

Чтобы расширить возможности ваших проектов с помощью twig, необходимо выполнить следующие три простых шага:

сначала вам нужно получить код, как описано здесь, затем вам нужно инициализируем автозагрузку и механизм шаблонов:

// setup autoloader
require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

// initialize template engine
$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array(
    'cache' => '/path/to/compilation_cache',
));

затем вы можете использовать его в любом месте вашего проекта для рендеринга шаблонов:

// load a template
$template = $twig->loadTemplate('index.html');

// render the template
echo $template->render(array('the' => 'variables', 'go' => 'here'));

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

использование пакетов немного сложнее, потому что они привязаны к ядру symfony и требуют полностью загруженного экземпляра symfony, что немного накладно, но тоже не проблема. взгляните на мой ответ в этот вопрос о доступе к функциям Symfony из устаревшего приложения.

19.06.2012

2

Использование twig в целом очень просто. Вам нужно создать собственный блок, который перезаписывает некоторые методы блока, определенные в Mage_Core_Block_Template. Или вы идете на уровень глубже и напрямую расширяете Mage_Core_Block_Abstract, чтобы написать собственный метод _toHtml().

Я не знаю, какие функции twig предлагает по умолчанию, но некоторые из функций Symfony реализовать немного сложнее.

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

Конечно, не более 50-60 строк кода, но вам нужно немного знать о magento, чтобы правильно его реализовать.

05.12.2012
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..