Рубрики
Uncategorized

<код возврата>УСПЕХ возврата>OK Подробное объяснение примеров операций обработки сигналов в PHP PHP Реализация модели утверждения цепочки ответственности на основе состояния возврата>OK Подробное объяснение примеров операций обработки сигналов в PHP PHP Реализация модели утверждения цепочки ответственности на основе состояния

Автор оригинала: David Wong.

Этот документ иллюстрирует реализацию модели утверждения цепочки ответственности на основе государства в PHP. Поделитесь для вашей справки следующим образом:

Мы разрабатываем веб-сайты, в дополнение к передней и задней части, есть закулисье, в дополнение к управлению контентом, часто включающее “одобрение”.

Например, Министерству торговли следует провести специальную рекламную деятельность, в рамках которой некоторые товары должны подлежать преференциальному режиму.

1. Редактор Министерства торговли Пишет Текст Первым 2. Содержание Документов об экспертизе и утверждении Руководителями Министерства торговли 3. Руководителям товарных отделов необходимо изучить и утвердить цену и инвентаризацию товаров (в случае, если их нет на складе). 4. Возможно, еще будет много лидеров, которых нужно одобрить (с расширением)

Модель, которую мы представляем сегодня, – это Модель цепочки ответственности.

В модели цепочки ответственности многие объекты связаны ссылкой каждого объекта на своих подчиненных, образуя цепочку. Запрос передается по цепочке до тех пор, пока объект в цепочке не решит обработать вторичный запрос. Клиент, отправивший запрос, не знал, какой объект в цепочке в конечном итоге обработал запрос.

Для удобства демонстрации мы устанавливаем цену.

1. Предполагая иерархические отношения: Руководитель товарного отдела > Руководитель коммерческого отдела > Редактор 2. Предположим, что разрешено утверждение только на одном уровне (т. Е. без пропусков, просто для удобства демонстрации) 3. Проверка и утверждение здесь пока не могут быть отозваны.

(Изображение выше: Демонстрационное шоу интерфейса. php )

show.php:

 content = content of the text;
      $subject->save();
    }
  }
?>

  
    Chain of Responsibility-Approval 
    
  
  
    
< div > < H2 > process demonstration interface < / H2 > < / div >

Редактор нажимает “Создать текст”, чтобы отправить содержимое, а затем записывает текст в локальный файл JSON (сохранить). Тема текста такова subject.php:

К этому времени копия уже создана и должна быть утверждена.

Менеджер абстрактного класса (лидер). php:

 leader = leader; // The key to forming a chain of responsibility
  }
  public function __construct()
  {
    $str = file_get_contents(__DIR__.'/subject.json');
    $this->subject = json_decode($str);
  }
  public function step($msg)
  {
    // It's very important to stand for approval.
    // Only when the state of the subject is equal to its own mystate will it be processed
    If ($this - > subject - > state == $this - > mystate) {// represents that you are currently dealing with
      // In this implementation of the specific approval passed
      Echo $msg.'The approval system is:'. $this - > myname;
      // Judge whether you have a leader or not, and if you give control to the leader
      if ($this->leader){
        $this - > subject - > state = this - > leader - > mystate; // hand over control
        File_put_contents (_DIR_.'/ subject. json', json_encode ($this - > subject); // save status
      }else{
        Echo'the approval has been completed';
      }
    }else{
      If ($this - > leader) {// leader is the chain that maintains the entire class
        // Let your leaders examine and approve
        $this->leader->step($msg);
      }
    }
  }
}

Руководители Министерства торговли, Министерства товаров и Большого Босса наследуют этот абстрактный класс.

Руководители Министерства торговли, Министерства товаров и Большого Босса наследуют этот абстрактный класс.

ProductLeader.php:

ProductLeader.php:

После того, как редакторы представят свои копии, они перейдут к этапу “Проверки и утверждения руководства”.:

If (isset ($_GET ['step']) {/// has entered the leadership approval stage
  // The key here is
   // 1. Determine who the first leader is.
   // 2. Maintain the direct relationship between leaders.
   require ('manager.php');
   require ('BusinessLeader.php');
   require ('ProductLeader.php');
   require ('LastLeader.php');
   $businessLeader = new BusinessLeader();
   $productLeader = new ProductLeader();
   $lastLeader = new LastLeader();
   // Here's how to maintain relationships
   $businessLeader->setLeader($productLeader);
   $productLeader->setLeader($lastLeader);
   Business Leader - > step ('approved');
}

Больше читателей, интересующихся контентом, связанным с PHP, могут ознакомиться с темами этого сайта: Введение в объектно-ориентированное программирование Php, Введение в навыки работы с массивами PHP, Введение в базовую грамматику PHP, Краткое описание работы PHP и использования операторов, Краткое описание использования строк Php и данных php+mysql. Введение в библиотечные операции и Краткое описание общих навыков работы с базами данных на PHP

Я надеюсь, что эта статья будет полезна для разработки PHP – программ для всех.