Я создаю модуль, который требует нескольких действий (только один раз), когда модуль установлен. Может быть несколько вещей, которые нужно сделать, но самое основное, что мне нужно сделать, это сделать API-вызов к серверу, чтобы сообщить внешнему серверу, что модуль был установлен, и получить несколько обновленных настроек товар.
Я прочитал этот этот вопрос по stackoverflow , однако в моей ситуации я действительно заинтересован в выполнении кода, который не имеет ничего общего с базой данных, фиксаторами, обновлением таблиц и т. Д. Кроме того, просто чтобы прояснить это модуль не влияет (влияет?) на передний конец. К вашему сведению, я также прочитал эту впечатляющую статью Алана Шторма, но на самом деле это лишь наводит на мысль о том, что сценарии установки / обновления не предназначены для выполнения случайного PHP.
На мой взгляд, у меня есть несколько возможных способов сделать это:
- Я делаю то, что боюсь, что это не лучшая практика, и добавляю немного PHP в мой скрипт установки / установки, чтобы выполнить этот php
- Я создаю своего рода cronjob, который будет выполнять нужную мне задачу только один раз (не уверен, как это будет работать, но кажется, что это может быть "креативным" решением - конечно, если cron не настроен должным образом, тогда это будет провал, что не хорошо
- Я создаю флаг core_config_data ('mynamespace / mymodule / initialized'), который я устанавливаю после запуска моего скрипта, и проверяю каждую область adminhtml, к которой касается мой модуль (CMS / Pages и мой собственный настраиваемый контроллер adminhtml) , Это кажется хорошим решением, за исключением всех дополнительных издержек каждый раз, когда нажимается CMS / Pages или мой контроллер, проверяя этот параметр core_config_data. ХОРОШО в этом решении будет то, что если что-то не получится с моим вызовом API, я могу установить для этого флага значение false, и он будет запущен снова, отобразит соответствующее сообщение и продолжит работу, пока не выполнится успешно (или не будет иметь дополнительной логики, которая остановит код инициализации после XX количества попыток)
Является ли какой-либо из этих вариантов "лучшим" способом, и есть ли какой-нибудь прецедент для этого где-нибудь, например, уважаемое расширение или от самих Magento?
Заранее спасибо за ваше время!