Skip to content

Массовое улучшения ряда компонентов

Latest
Compare
Choose a tag to compare
@lexus27 lexus27 released this 08 Nov 09:14
· 114 commits to master since this release

Разработана серия классов поддержки работы с сетью

Был стабилизирован Util\Communication\Connection, и более пригоден для стандартного использования везде где это возможно.

Так-же посредством потоков мы доработали давнюю идею Заранее определяемых "Последовательностей Поточных Команд", В виде Спецификации - которая определяет возможные команды, опознание кодов и реакции на желаемые коды. Так-же есть возможность в Спецификации, определить Описания для каждого отдельного кода, как глобально так и на уровне определенной команды. Команды определяются в виде строки в которую можно заключать плейсхолдеры, значения которых подставляются из аргументирующих параметров команды, которые в свою очередь могут задаваться в управляющей "Последовательности" Sequence(Последовательность) - определяющаяся пользователем комбинация указанных команд, параметры потребуются только в момент выполнения "последовательности"

Компонент построен таким образом что можно составить спецификацию любого API с которым взаимодействие происходит через сокеты.

Корректирование Гипертекстового процессора

Был изменен компонент поддержки Гипертекста, во первых он был переименован с TextTrasfer > Htt > Hypertext, В него интегрирована поддержка потоков, раньше работа была только со строками, теперь вся работа идет через специальные потоки которые можно замещать разными способами реализовав или использовав наследников StreamInterface | StreamInteractionInterface (Которые так-же были сформированы в этом рефакторинге)

Гипертекстовый документ использует Процессоры (Чтение и Запись), с помощью которых он рендериться куда либо или парситься откуда либо, процессоры помимо потока также используют еще и свой внутренний или замещаемый буфер, куда и записывается сырой текст определения документа - буфер можно отключать для экономии. Так-же класс Гипертекстового Документа поддерживает Пул Заголовков, которые были реализованы еще ранее и так-же выполняют работу поведения (encodeContents & decodeContents). Документ реализован дополнительно с возможностью наследования, данная возможность уже используется в HTTP агенте(клиенте) (Util\Communication\HttpClient)

Реализован HTTP-Client (Возможность имитации работы браузера)

Компонент http-клиента, Основанный на интерфейсах Util\Communication\HttpFoundation и спецификации Util\Communication\Hypertext, компонент был задуман с целью достижения максимально удобного и совместимого взаимодействия с удаленными API, по принципу эмулирования работы браузера (Поддержка редиректов, реакция на заголовки и коды ответа, переходы referrer, Cookies и Кеширование страниц)

Устройство этого HTTP-Клиента при работе подразумевает пучок без разрывных соединений(KeepAlive).

Контроль Доступа: ABAC был внедрен в структуру MCA-системы приложения.

Контроль доступа и ответное поведение на запреты можно производить на любом звене MCA системы. По умолчанию контроль доступа производится перед выполнением MCA-Действия

Реализован компонент Верификации личности пользователя через сторонние источники/сервисы.

default

Это позволяет без лишних хлопот верифицировать определенные действия в системе (На уровне MCA-Системы и так далее). Верификацию можно связывать с Объектами ORM и другими

Улучшена работа MCA-системы

Работа Process::forward() и реакция на ошибки теперь происходит предсказуемо

Добавлен компонент EventManager для связывания всех компонентов которые используются на уровне с MCA-Системой, В связи с этим теперь поддерживаются Плагины(Слушатели множества событий) с помощью которых можно внедрить особый функционал в ваше приложение. В данный момент подобный подход ограничивается MCA системой но в будующем будет и на уровне ORM в целях синхронизации с удаленными сервисами через HttpApiInteracting (Компонент взаимодействия с удаленными API)

Работа с ORM Коллекциями на уровне MCA-Системы Декорирована в спец класс Data Distributor

distributor

Который позволяет настраивать Фильтры и Постраничность при работе с MCA-Действиями которые по семантике относят себя к отдаче Коллекции объектов определенной Модели, так-же работа дистрибутора не ограничивается MCA-Действием и может работать в глобальном скопе без привязки к MCA - в глобальных шаблонах View

Также в числе этого обновления расположились множественные изменения стандартов вспомогательных Утилитарных средств