public static function init() { self::$FINISHED = new OrderStatus("FINISHED"); self::$PENDING = new OrderStatus("PENDING"); self::$CANCELLED = new OrderStatus("CANCELLED"); self::$NEW = new OrderStatus("NEW"); self::$CONFIRMED = new OrderStatus("CONFIRMED"); // self::$HOLD = new OrderStatus("HOLD"); self::$TRASH = new OrderStatus("TRASH"); self::$REBOOK = new OrderStatus("REBOOK"); //static map to get object by name - example Enum::get("INIT") - returns Enum::$INIT object; self::$all = array(self::$PENDING, self::$CONFIRMED, self::$CANCELLED, self::$TRASH, self::$REBOOK); self::$map = array(self::$PENDING, self::$CONFIRMED, self::$CANCELLED); }