шаблоны проектирования — архитектура Flux в php из Backend Perspective

Строго говоря, с точки зрения серверной части, как мне реализовать Flux Architecture? Чтобы было ясно, шаблон проектирования MVC на самом деле понятен в том, как файлы должны быть расположены, у фреймворков есть собственная реализация, но все еще ясно, как проект должен быть организован и организован. Что я должен структурировать мой код проекта в соответствии с архитектурой Flux? Также Есть ли какая-либо инфраструктура с открытым исходным кодом для архитектуры Flux, как codeignighter для MVC?

Из всех статей, которые я прочитал, и руководств, которые я видел по архитектуре Flux в Facebook, все они демонстрируются с использованием Nodejs Backend, а front-end — это обычно responseJS (я тоже читал одну с angularJS). Но все они ориентированы на перспективу Front-End.

Я никогда не был фанатом MVC, и с тех пор, как я открыл Micro-frameworks, я использовал свою собственную версию шаблона проектирования Modal-View (удивительно похожую на упрощенный шаблон Flux). Но я всегда сомневался в том, как мне это структурировать.

Пост Facebook о шаблоне Flux многое объясняет о скорости и безопасности. Но все учебники сосредоточены только на ReactJS. Учебники от Pluralsight, egghead и всего остального, с чем я столкнулся в прошлом году, используют серверную часть NodeJS. 99% из них на самом деле не демонстрируют потоковую архитектуру, но показывают работу с ReactJS. Так что после почти года поисков мне все еще неясно, что такое поток.

3

Решение

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

https://facebook.github.io/flux/img/flux-simple-f8-diagram-explained-1300w.png

2

Другие решения

Для PHP нет шаблонов потоков. Однако есть основанное на libevent ядро ​​php-сервера под названием React.php.

Вы задаете неправильный вопрос, думая в mvc и шаблонах, и поэтому я попытаюсь объяснить другое представление и даже почему они используют примеры nodejs. Итак, первый nodejs — это не mvc и не фреймворк, а простой серверный процесс для вызова рабочих потоков — сервер apache / nginx в обычном php или также называемый «диспетчер». Обработчики действий — это простые классы с методом для запуска на событиях или функциях (представьте себе простой путь php при вызове сценариев для шаблонов или кода с использованием веб-сервера в качестве маршрутизатора и без использования маршрутизатора в среде php). Так что это похоже на возврат к сырому бессрочному php с некоторыми отличиями:

  • Обработчики действий — это спящие рабочие. Они не выполняются без события и могут быть тысячами. Если бы они были, мы могли бы, скажем, 10, прежде чем сервер умрет.

  • дескрипторы действий содержат очень мало специализированного кода, использующего как можно меньше ресурсов и выполняющегося за 0,000x секунд, если это возможно. Как простой

Эхо «Привет, мир»;

Вместо рамок. Для запуска Symfony 2 вам нужно взять, скажем, 8 МБ на поток, а не 300 МБ.

  • у вас есть приложение php, работающее и заменяющее apache. Соединения с веб-сокетами в синхронном неблокирующем режиме (способ libevent)

Таким образом, nodejs построен как расширяемый диспетчер, а js по-прежнему не раздувается с шаблонами проектирования и структурами. Вот почему они используют его в качестве примеров — он ломает фразу «это неправильно, поскольку это не шаблон проектирования и код структуры».

Для потока вам нужно вернуться к необработанному образу мышления php, веря в слова Расмуса Лердорфа «Они все отстой!» На вопрос, что он думает о фреймворках, а затем расширяет идею с помощью многопоточного сырого php очень простого и ресурсосберегающего кода.

Вот почему Facebook запустил первую демонстрацию потока с «MVC — плохая парадигма для крупномасштабных проектов и не может быть поддержана или расширена. Мы создали архитектуру, чтобы сломать ее». Шаблоны проектирования глубоко основаны на MVC. Поток возвращается к функциональному, как код в простом представлении для удобства чтения ООП. Но меньшее количество классов и наследований и простой код без моделей / сущностей для каждой записи таблицы являются обязательными.

Итак, есть пакет на основе Symphony Reaction, который делает приложение из проекта Symfony. Но вы используете sumfony для загрузки диспетчера, и после этого вы должны сойти с ума, чтобы использовать доктрину, веточку и так далее. Запросы Apache + symfony и http будут работать лучше, когда скрипты умирают, и вам не нужно хранить 100 МБ для каждого из 5000 потоков, но 300 МБ x 5 за раз. Если вы используете флюс, вы забудете MVC. Скажем так: FLUX — это способ забыть о MVC, шаблонах и структурах, начать думать о бизнес-проблемах и потребностях и снова написать ясный и простой код.

1

По вопросам рекламы [email protected]