gpt4 book ai didi

magento - Magento 中 Mage::app 和 Mage::的区别

转载 作者:行者123 更新时间:2023-12-03 18:10:10 26 4
gpt4 key购买 nike

任何机构都可以说两者之间有什么区别
法师:应用程序和法师::

例如:

Mage::getModel('catalog/product');

Mage::app->getLayout->createBlock('catalog/product_view');

如果我像这样尝试
Mage::app->getModel('catalog/product');

它抛出一个致命的错误

基本的区别是什么?

最佳答案

作为更一般的解释并进一步对艾伦的回答 Mage::app()Mage::getModel()都是 Mage 类 ( app/Mage.php ) 的静态方法。
Mage::app()函数用于引导您的 Magento 应用程序(设置配置、自动加载等),例如,当想要在您自己的自定义脚本中访问 Magento 模型时非常有用。

它是一个静态方法,因此也可以在您的应用程序中的任何时候调用它以返回当前的 Mage_Core_Model_App 对象,您可以使用它来获取当前的配置值,例如Mage::app()->getStore()将返回当前 Mage_Core_Model_Store存储对象。
Mage::app()类似于 Mage::run()在您的 index.php 中找到文件。不同的是Mage::run()除其他外,还将默认调用应用程序的 MVC、路由等部分,并控制将您定向到页面并实例化块和布局模板渲染的请求/响应。
Mage::getModel()只是一个工厂方法,它将根据您提供的类别名返回一个类的新实例。例如 Mage::getModel('customer/customer')将返回一个新的 Mage_Customer_Model_Customer目的。如果您希望在整个请求过程中每次都返回相同的对象,您可以使用 Mage::getSingleton()反而。

关于magento - Magento 中 Mage::app 和 Mage::的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14291072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com