<rmcreative>

RSS

Все заметки с тегом «yii3»

  1. Yii3 Validator 1.0.0

    22 февраля

    Команда Yii только что выпустила первую стабильную версию валидатора. Это был один из самых сложных релизов из-за огромного количества ситуаций, которые нужно было учесть.

    Как и со многими пакетами Yii3, всё получилось не быстро, но результат радует.

    Комментировать
  2. Новости Yii 2022, выпуск 2

    20 ноября 2022

    Написал свежий выпуск новостей Yii. Долго их не было, но прогресс, в общем, радует.

    Читаем на хабре

    Комментировать
  3. Yii3 Overview

    14 ноября 2022

    Дмитрий Дерепко из команды Yii выпустил две части Yii overview — серии постов про Yii3.

    Комментировать
  4. Yii 3 и PSR

    21 августа 2021

    На хабре задали интересный вопрос: «зачем пилить свои имплементации шаблонных вещей когда вокруг куча готовых, протестированных, оптимизированных? Не является ли это бутылочным горлышком в процессе реализации фреймворка?»

    Распишу по каждому PSR-у:

    • 1 - Basic Conding Standard. Исплользуем, не переделывали.
    • 3 - Logger Interface. Можно было взять Monolog, но нам нравился концепт логгера из Yii 2 больше, поэтому портировали и почистили. Но можно использовать в своих приложениях и Monolog.
    • 4 - Autoloading Standard. Исплользуем, не переделывали.
    • 6 - Caching Interface. Не используем, см. 16.
    • 7 - HTTP Message Interface. Своё сразу решили не делать. Сначала сравнили всё и выбрали самую лёгкую реализацию Tobias Nyholm. Но потом пришёл Евгений, у которого была ещё более оптимальная реализация. Впоследствии он влился в команду фреймворка.
    • 11 - Container Interface. Контейнер свой потому как стандарт регламентирует только получение зависимостей, а конфигурирование — нет. Сделать удобное конфигруирование как раз задача для фреймворка и то, что его отличает от других. И да, вот эта реализация кушает много времени.
    • 12 - Extended Coding Style Guide. Этот стандарт я координировал в PHP-FIG. Конечно же, используем.
    • 13 - Hypermedia Links. Не используем.
    • 14 - Event Dispatcher. Написали свой, ничего достойного готового на момент выхода стандарта не было, а события уже были нужны.
    • 15 - HTTP Handlers. Тоже центральная часть фреймворка так как определяет, какие Middleware поддерживаются, как задаются и, главное, как вызываются. Поэтому написали свой.
    • 16 - Simple Cache. Написали не PSR-ный yiisoft/cache, который использует любые PSR-16 адаптеры кеша и добавляет сверху всякие классные штуки. Ну а так как с Yii 2 уже был рабочий код адаптеров, портировали в PSR-16.
    • 17 - HTTP Factories. См. 7.
    • 18 - HTTP Client. Не будем реализовывать, будем использовать.

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

    5 комментариев
  5. Новости Yii 2021, выпуск 3

    20 августа 2021

    Написал свежий выпуск новостей и выложил на хабр. Дело движется. До релиза дожмём.

    Читаем

    Комментировать
  6. Yii 3: пред-релизная поддержка компаний

    29 июля 2021

    Несмотря на то, что Yii 3 релизнут далеко не полностью, уже есть компании, которые его используют в продакшне. Чтобы получить  больше обратной связи и одновременно поддержать уже использующие Yii 3 компании, мы запускаем пред-релизную бесплатную поддержку в форме чатов между компаниями и командой фреймворка. Будем отвечать на любые вопросы по фреймворку, собирать пожелания и критику.

    Если хотите для своей компании такой чат — пишите в Telegram @samdark, добавим.

    2 комментария
  7. Границы применимости статического анализа в публичных пакетах

    16 июня 2021

    В замечательном чате Валентина Удальцова «Пыхтелка» заметили релиз одной из библиотек Yii 3, Rate limiter и предложили вполне справедливые улучшения. kafkiansky сделал pull request, в который кроме, собственно, улучшений попало одно очень интересное изменение: вместо геттеров-сеттеров сделать свойства класса CounterState публичными и добавить на класс аннотацию @psalm-immutable:

    /**
     * @psalm-immutable
     */
    final class CounterState
    {
        public int $limit;
        public int $remaining;
        public int $resetTime;
        public bool $isLimitReached;

    Почему так:

    1. Используется статический анализ через Psalm.
    2. @psalm-immutable не даст присваивать что-либо этим свойствам, если его добавить в continuous integration.
    3. В будущем легче будет мигрировать на read only properties.
    4. Никакой логики здесь нет, это plain object. С аннотациями меньше кода.

    Неплохо. Я бы согласился, если бы речь шла исключительно про код внутри коммерческого проекта, который я контролирую полностью. В случае же публичного пакета:

    1. Мы не контролируем то, как пакет используется.
    2. Мы не можем гарантировать, что будет использоваться именно Psalm, что он будет запускаться в процессе CI, что вообще будет использоваться хоть какой-то статический анализ.

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

    2 комментария
  8. Новости Yii 2021, выпуск 1

    5 марта 2021

    Первый выпуск новостей за год. Релизы пакетов, интересное из разработки и немного про финансы.

    Читаем на хабре

    Комментировать
  9. Новости Yii 2020, выпуск 8

    30 декабря 2020

    Успел составить предновогодний выпуск. Тройку полностью не выпустили, но начали. В января будут ещё пакеты.

    Чиатем

    Комментировать
  10. Новости Yii 2020, выпуск 7

    12 ноября 2020

    Вышел очередной выпуск новостей про Yii и новая порция релизов. Опубликовал на хабре.

    Приятного чтения

    Комментировать