Технологии

Технологии

Технология - это модель или процесс в вашем приложении. Это может быть процесс того, как запись блога проходить путь от черновика, через анализ и до публикации. Еще одним пример, это когда пользователь отправляет серию разных форм для завершения задачи. Такие процесс лучше всего держать подальше от ваших моделей, и их лучше определять в конфигурации.

Определение технологии состоит из мест и действий, чтобы добраться из одного места в другое. Действия называются переходами. Технология также должна знать положение каждого объекта в технологии. Это хранилище маркировок записывает в свойства объекта, чтобы он запомнил текущее место.

Note

Терминологи выше часто используеся при обсуждении технологий и Petri nets.

Компонент Workflow также поддерживает конечные автоматы. Конечный автомат - это подмножество технологии и его целю - содержать состояние вашей модели. Читайте больше о различиях и особенных функциях конечного автомата в Workflows as State Machines.

Примеры

Простейшая технология выглядит так. Она содержит два места и один переход.

_images/simple.png

Технологии могут быть более сложными, когда они описывают реальный бизнес-кейс. Технология ниже описывает професс заполнения заявления о приеме на работу.

_images/job_application.png

Когда вы заполняете заявление о приеме на работу в этом примере, будет использовано 4 или 7 шагов, в зависимости от того, на какую работу вы устраиваетесь. Некоторые виды работы требуют тест на личностные характеристики, логические тесты и/или формальные требования, на которые надо ответить пользователю. Некоторые виды работы этого не требуют. GuardEvent используется для того, чтобы решить, какие следующие шаги допускаются для конкретного заявления.

Определяя технологию таким образом, можно получить обзор того, как выглядит процесс. Логика процесса не смешивается с контроллерами, моделями или видом. Порядок шагов может быть изменён путем изменения только конфигурации.

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.