Php 在Magento中处理模型常数的正确方法
使用Magento处理模型中常量的正确方法是什么? 例如,我有一个Php 在Magento中处理模型常数的正确方法,php,magento,model-view-controller,constants,Php,Magento,Model View Controller,Constants,使用Magento处理模型中常量的正确方法是什么? 例如,我有一个Export类,它有许多状态,例如 取消 未决 失败 完整的 目前,我在模型顶部定义了如下内容,但我觉得这不是最好的解决方案: define("CANCELLED","Cancelled"); define("INCOMPLETE","Incomplete"); define("PENDING","Pending"); define("COMPLETE", "Complete"); 例如,在一个控
Export
类,它有许多状态,例如
- 取消
- 未决
- 失败
- 完整的
define("CANCELLED","Cancelled");
define("INCOMPLETE","Incomplete");
define("PENDING","Pending");
define("COMPLETE", "Complete");
例如,在一个控制器中,如果我想用PENDING更新销售订单的状态(该订单有我的模型引用的自定义字段),目前,我运行以下命令,以便它包含定义了常量的文件:
Mage::getModel("efinterface/export");
非常感谢您的建议。可以将它们定义为类常量
class SomeClass {
const CANCELLED = 'Canceled';
[...]
}
然后在您的代码中
echo SomeClass::CANCELLED
会给你文本cancelled
可能会把它们定义为类常量
class SomeClass {
const CANCELLED = 'Canceled';
[...]
}
然后在您的代码中
echo SomeClass::CANCELLED
将为您提供文本Cancelled
您为什么不看看现有的Magento代码(Varien知道如何编码…),例如,您所指的一个类管理销售模型订单并查看所有const STATE\u NEW='NEW'代码>为什么不看看现有的Magento代码(Varien知道如何编码…)例如,您所指的一个类管理销售模型订单并查看所有const STATE\u NEW='NEW'代码>谢谢,我一直在考虑这个问题-但是我不需要在代码的各个点包含这个类吗?你的类将按名称自动加载。我应该将这个类放在哪里?作为模型文件夹中的模型?当您说autoloaded by name时,那么Magento将自动加载该类,而无需在任何地方显式指定它?如果Magento使用自动加载程序,则是,它将在第一次调用时加载。是的,模型文件夹应该可以。谢谢。我已经将该类添加到Model文件夹中,但是当我调用它时,它找不到该类:include(ExportStatus.php):无法打开流:在第93行的C:\xampp\htdocs\magento\lib\Varien\Autoload.php中没有这样的文件或目录
谢谢,我正在考虑这个问题-但是我不需要在代码的各个点包含这个类吗?您的类将按名称自动加载。我应该将这个类放在哪里?作为模型文件夹中的模型?当您说autoloaded by name时,那么Magento将自动加载该类,而无需在任何地方显式指定它?如果Magento使用自动加载程序,则是,它将在第一次调用时加载。是的,模型文件夹应该可以。谢谢。我已将该类添加到模型文件夹中,但调用时,它找不到该类:include(ExportStatus.php):无法打开流:在第93行的C:\xampp\htdocs\magento\lib\Varien\Autoload.php中没有这样的文件或目录