Size: a a a

2020 August 17

AP

Arman Poghosyan in Yii Framework 3
Алексей R
а кому нужен текстовый формат такой структуры? :)
Ну тогда тебе надо будет уже код посмотреть, так как там в принципе то, что тебе нужно.
источник

А

Алексей R in Yii Framework 3
Arman Poghosyan
Я отчасти согласен. Но очень уж полезно иметь матчер, как отдельный легкий сервис только для матчинга - где нужно. Я как бы сейчас так и сделал, как ты представлял себе в этом issue и получается, что для матчинга нужно Router юзать всегда, и не как нельзя только матчер. А мне мы хотелось, чтоб оба варианта были юзабельны. Может кому наш роутер весь не нужен, а матчер нужен.
значит у нас разное понимание матчера и/или роутера
Для чего тебе юзать матчер?
источник

AP

Arman Poghosyan in Yii Framework 3
Смотри есть библиотеки роутеров, которые из себя представляют только матчер, без какой либо логики, что с матчем делать и без какой либо обратной генерации (они тоже называеются роутерами). Моя реализация, которая в многом также основана на том, что было раньше, представляет следующее:
1, Есть матчер для матчинга.
2, Есть генератор для генерации
3, Есть роутер, который и матчинг делает и генерацию сможет делать (через делегацию все), а также для сматченного маршрута может pipeline execution сделать, через диспетчер под катом (который можно свой по желанию прикрутить). Он также является и RequestHandlerInterface, чтоб проще юзать его вне Yii, как отдальный пакет. Он как бы является одной входной точкой. В самом Yii мы будем юзать RouterMiddleware, который будет делать матчинг через матчер и через диспетчер pipeline execution (в пакете диспетчер по умолчанию). Для yii-web можно подкрутить любой другой диспетчер при надобности, все там под контрактом.

Так вот, я бы все таки хотел иметь отельный матчер, во первых для пакета самого, чтоб если кому надо только матчинг, он бы не брал весь Router объект (который как я сказал одна входная точка, что очень удобно в плане пакета), во вторых матчер хз отдельно еще где понадобиться.
Я пока конечно матчер сделал без всякого стейта и зависимостей, но это не совсем то, как я его представляю. Надо думать еще...
источник

AP

Arman Poghosyan in Yii Framework 3
Мне полюбому еще надо понять, что делать со стейтом, который был в матчере. Не особо хочется весь роутер таскать где нужен этот стейт. И идея добавления MatchingResult в requst не очень нравится.
источник

AP

Arman Poghosyan in Yii Framework 3
Сам Router объект получается очень хорошим и универсальным. особенно вне контекста Yii. Можно просто любые PSR middleware на него именно добавлять, которые будут работать на все маршруты (т.к. CSRF или CookieEncription), можно для конкретных диспетчеров задавать мидлверы, а сам диспетчер уже задавать конкретным маршрутам или группам маршрутов (и если что в этом диспетчере также прописывать логику обработки этих мидлверов), это поможет с абстракцией, чтоб все мидлверы не висели в конфиге маршрутов.
источник

AP

Arman Poghosyan in Yii Framework 3
Учитывая все то, что доступно для PHP разработчиков в данный момент, по мне получилось не плохо и можно будет хороший комъюнити собрать, который будет этот Роутер юзать. Любой фреймворк может очень легко при желании интегрировать его, там куча способов под себя переделать не трогая core код.
источник

AP

Arman Poghosyan in Yii Framework 3
Будет время посмотрю например насколько возможно быстро адаптер сделать под какой-то фреймворк.
источник

AP

Arman Poghosyan in Yii Framework 3
Под тот же yii2 по идее можно будит подкрутить (если я правильно помню весь internal routing в yii2)
источник

DS

Dmitriy S in Yii Framework 3
Arman Poghosyan
вот у нас Route::get(...)->addMiddleware() (точнее уже Route::get(...)->handler(...)). Куда девать их?
Вот прям не факт что handler прозрачнее чем addMiddleware
источник

AP

Arman Poghosyan in Yii Framework 3
Dmitriy S
Вот прям не факт что handler прозрачнее чем addMiddleware
В чем то согласен, но тут одна главная причина на переименование: не факт что это будет мидлвер (в плане логики срабатывания), так как это решает диспетчер, а еще я не хотел юзать слово middleware, так как под этим можно и понять только PSR MiddlewareInterface, а тут он может быть чем угодно, что поддерживается конкретным диспетчером (то есть с чем диспетчер может работать).
источник

AP

Arman Poghosyan in Yii Framework 3
Туда в принципе можно и integer-и добавить, если диспетчер будет знать, что с ними делать)))
источник

А

Алексей R in Yii Framework 3
Arman Poghosyan
Смотри есть библиотеки роутеров, которые из себя представляют только матчер, без какой либо логики, что с матчем делать и без какой либо обратной генерации (они тоже называеются роутерами). Моя реализация, которая в многом также основана на том, что было раньше, представляет следующее:
1, Есть матчер для матчинга.
2, Есть генератор для генерации
3, Есть роутер, который и матчинг делает и генерацию сможет делать (через делегацию все), а также для сматченного маршрута может pipeline execution сделать, через диспетчер под катом (который можно свой по желанию прикрутить). Он также является и RequestHandlerInterface, чтоб проще юзать его вне Yii, как отдальный пакет. Он как бы является одной входной точкой. В самом Yii мы будем юзать RouterMiddleware, который будет делать матчинг через матчер и через диспетчер pipeline execution (в пакете диспетчер по умолчанию). Для yii-web можно подкрутить любой другой диспетчер при надобности, все там под контрактом.

Так вот, я бы все таки хотел иметь отельный матчер, во первых для пакета самого, чтоб если кому надо только матчинг, он бы не брал весь Router объект (который как я сказал одна входная точка, что очень удобно в плане пакета), во вторых матчер хз отдельно еще где понадобиться.
Я пока конечно матчер сделал без всякого стейта и зависимостей, но это не совсем то, как я его представляю. Надо думать еще...
ну у меня немного другой взгляд на то, как это быть должно, поэтому и получается, что в моей теории матчер как отдельный сервис не нужен. В твоём подходе (опираясь на это сообщение), я думаю, роутер сильно перегружен. Да, он настраиваемый, но слишком много на себя берёт
источник

AP

Arman Poghosyan in Yii Framework 3
Алексей R
ну у меня немного другой взгляд на то, как это быть должно, поэтому и получается, что в моей теории матчер как отдельный сервис не нужен. В твоём подходе (опираясь на это сообщение), я думаю, роутер сильно перегружен. Да, он настраиваемый, но слишком много на себя берёт
Если учитывать, что Роутер работает через делегацию, он вообще не перегружен. Он просто является входной точкой, что удобно особенно при использование роутера как отдельный пакет. Можно все это делать без роутера, через все подсервисы отдельно. Я добавлю в тест кейсы примеры как все через роутер, и как по отдельности. По мне в readme будет красивей показывать сперва "удобный" вариант делать это все через роутер.
источник

AP

Arman Poghosyan in Yii Framework 3
источник

AM

Alexander Makarov in Yii Framework 3
Уууххх... сколько всего!
источник

AM

Alexander Makarov in Yii Framework 3
Раскидаю всякое по PHP Russia и начну плотно смотреть.
источник

А

Алексей R in Yii Framework 3
@samdark сделай канал для роутера. И ещё надо переслать туда последние сообщения
источник

T

TradersVE in Yii Framework 3
I do not understand why not use the forum, with so many channels we will go crazy.
источник

Д

Дмитрий in Yii Framework 3
А где ещё каналы?
источник

СП

Сергей Предводителев... in Yii Framework 3
Дмитрий
А где ещё каналы?
Только для конфига вроде делали. В описании ссылка
источник