Php 在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"); 例如,在一个控

使用Magento处理模型中常量的正确方法是什么? 例如,我有一个
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中没有这样的文件或目录