Класс Command

Опубликовал read-php в 17.02.2011 Категория: Шаблоны корпоративных приложений PHP

Наверное, вы заметили, что в классе AppController используются предыдущие команды, сохраненные в объекте Request. Это делается с помощью базового класса Command.

abstract class woo_command_Command {

private static $STATUS_STRINGS = array  ( ‘CMD_DEFAULT’ ‘   => 0,

‘CMD_OK’    => 1,

‘CMD_ERROR’    => 2,

‘CMD_INSUFFICIENT_DATA’ =>3

);

private $status = О;

final function _construct() { }

function execute( woo_controller_Request $request ) {

$this->status = $this->dofixecute( $request );

$request->setCommand( $this );

}

function getStatusO {

return $this->status;

}

static function statuses( $str=’CMD_DEFAULT» ) {

if ( empty( $str ) ) { $str = ‘CMD_DEFAULT’; }

// Преобразуем строку в код состояния

return self::$STATUS STRINGS[$Str] ;

}

abstract function doExecute( woo_controller_Request $request );

}

Scr07 Класс CommandВ классе Command определяется массив строк состояния (ради краткости и понятности код существенно сокращен). В нем предусмотрен метод statuses (), предназначенный для преобразования строки состояния {«CMDOK») в ее эквивалентное число, и метод getStatus () — для возврата текущего кода состояния объекта Command. Если быть до конца строгим, то метод statuses О должен генерировать исключения при возникновении нештатной ситуации. В данном случае метод по умолчанию возвращает значение null, ecrfn нужный элемент не определен. В методе execute () возвращенное из абстрактного метода doExecute () значение сохраняется в виде кода состояния, а также сохраняется ссылка на себя в объекте Request.

Комментариев нет

Добавить комментарий