Mage::init 是做什么的?

What does Mage::init do?

我试图了解在请求 Magento 商店后 Magento 流程究竟是如何工作的。

因此我陷入了这个问题:Mage::init() 做什么以及 Mage::init()Mage::run() 之间的主要区别是什么。

希望有人能帮帮我。

Mage::init() :: 使用访问 Magento 所需的所有变量和对象初始化应用程序对象。 在不处理请求的情况下初始化应用程序。

Mage::运行() :: 是前端入口点,这意味着它加载配置文件、模块配置、加载数据库和处理请求处理。 运行 申请。 运行 负责请求处理和发送响应的进程。

正如我在源代码中发现的,有三个选项可以初始化 Magento 引擎:

Mage::运行(); 正如 Veerendra 所写,这将处理和呈现具有大量错误处理的 Magento 前端站点。这调用了前端控制器的调度方法。使用此方法 $this->_initModules(); 在必要时调用资源设置和 运行 数据库升级脚本。 Mage_Core_Model_Resource_Setup::applyAllUpdates(); 将被调用。

Mage::app(); 如我所见,检查应用程序是否已经初始化,如果没有初始化应用程序和加载区域。此方法 return 应用程序对象。此方法不处理数据库更新脚本,也不调用渲染方法,因此它不会像 run() 那样使用大量 CPU 和 RAM。我认为此方法对于处理 AJAX 或任何其他 API 请求的快速脚本很有用。

Mage::init(); 正如我在源代码中看到的那样,此方法介于前两种方法之间。此方法有一些错误处理(重定向和 404 页面)但安静类似于 app() 方法,因为不呈现任何输出,如 run() 方法。此方法有一个额外的 $module 参数,可以启用在管理站点禁用的模块。使用此参数,数据库升级脚本将由 $this->_initModules(); 调用,就像 run() 方法一样。因为我认为这个初始化对 API 开发很有用。