Русский
Русский
English
Статистика
Реклама

Yii3

Новости Yii 2020, выпуск 8

29.12.2020 20:14:34 | Автор: admin

Всем привет! Это последний выпуск новостей в "весёлом" 2020 году. Я едва успел его приготовить потому как скорость разработки Yii 3 сильно подросла. Все пакеты в этом месяце мы тегнуть не успели, но многие почти готовы, поэтому стоит ожидать релизов в Январе.


С наступающим Новым Годом! Пусть будет менее сумасшедшим, чем 2020. Александр Макаров


// Не забывайте ставить звёздочки любимым пакетам на GitHub.


Фонд и команда


  • Евгений Зюбин присоединился к команде на фуллтайм для работы над Yii 3. Пока всё идёт замечательно! ы
  • Валерий Горбачев также присоединился к команде. Его вы можете знать по его работе над i18n и MSSQL.
  • Мы применили весь бюджет фонда, чтобы увеличить доступное для работы над Yii время команды. Это вылилось в сильное ускорение темпов разработки.

Год показал что мы можем тратить средства на разработку эффективно, так что помогать нам финансово отличный вариант!


Yii 1


Был выпущен Yii 1.1.23.
Он добавляет поддержку PHP 8 и улучшает совместимость с PHP 7. Также добавлена поддержка PostgreSQL 12.


Это первый релиз, который сделал новый член команды, Marco van 't Wout, под руководством Carsten Brandt.


Yii 2


Вышел Yii 2.0.40. Фокус релиза, в основном, на исправлении ошибок.


Были выпущены следующие расширения:



Также:



Yii 3


Инфраструктура


  • Ко всем репозиториям. Применён новый набор правил StyleCI. Стиль кода стал ещё более консистентным.
  • Покрытие тестами, MSI были улучшены практически в каждом пакете.
  • Порезана история Git у некоторых пакетов, которые были получены саб-сплитом Yii 2 и таскали с собой всю его историю.
  • Включены GitHub discussions в yiisoft/app. Посмотрим, что из этого выйдет. Мы не хотим пока заменять форум, но может получиться полезно.

Релизы


  • Cookies 1.0.0. Пакет, вероятно, будет использован в форумном движке Flarum.
  • Strings 1.0.0. Кроме общей зачистки добавился метод StringHelper::split().
  • Test support 1.0.0. С последнего выпуска новостей появилась документация и набор для тестирования кеша.
  • Aliases 1.1.2.
  • Composer config plugin 0.5.0.
  • i18n 1.0.0.
  • Session 1.0.0. С последнего выпуска новостей сессия перестала запускаться когда можно обойтись без этого.
  • HTTP 1.1.0. Добавлен ContentDispositionHeader. Оно помогает сформировать кросс-браузерный заголовок, соответствующий RFC.

Новые пакеты



Мы не только добавляем пакеты, но и удаляем некоторые пакеты, такие как yii-api, были удалены.


Arrays



Хелпер Files и файловая система


В хелпере Files произошли следующие изменения:


  • Добавлен FileHelper::isEmptyDirectory().
  • Добавлен FileHelper::openFile().
  • Добавлен FileHelper::lastModifiedTime(), позволяющий получить время последней модификации содержимого директории.
  • Добавлены FileHelper::findDirectories() и FileHelper::findFiles().
  • FileHelper::unlink() поддерживает больше особенных ситуаций, в том числе под Windows.
  • FileHelper::filterPath() был заменён отдельным PathMatcher.

Пакет File system теперь использует стабильную версию Flysystem.


Консоль


Команда yii serve теперь по умолчанию использует в качестве роутера public/index.php.
Это сделано чтобы нормально поддерживались точки в URL.


БД и Active Record


Зачистка порта базы данных и AR из Yii 2 идёт полным ходом. До завершения ещё далеко, но движение в этом направлении
верное. Интересные изменения:



Миграции



Cycle



Обработчик ошибок


Применён новый дизайн к страницам ошибок. За него спасибо Аркадию Зимину и Фёдору Достоевскому.




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




Отладчик


  • Серверные части были зачищены. Коллекторы были улучшены. Исправлены некоторые ошибки.
  • Почти не требуется ручной конфигурации для включения отладчика. Достаточно изменения одного флага в конфиге.
  • Поправлен сбор данных о потреблении памяти.
  • Всё чтение и запись данных теперь делаются через нормальные абстракции.

Фронт-часть отладчика всё ещё разработке.


Профайлер


  • Общая зачистка и рефакторинг.
  • Добавленная конфигурация по-умолчанию.

Инструментарий разработки фреймворка


Были сделаны следующие улучшения инструмента yii-dev:


  • Команда test, которая по-тихому запускает тесты пакета и выводит только ошибки.
  • Команда git/pr/create, которая может делать GitHub pull request.
  • Команда github/settings, которая помогает менять настройки репозиториев.
  • Ошибки стали более полезными.
  • Команда replicate/copy-file, которая позволяет скопировать любой файл в любой пакет.
  • Инструмент теперь нормально работает с симлинками в контейнере Docker.
  • Команда exec теперь выводит всё в консоль сразу.
  • В команду release/make добавлены дополнительные проверки и опции. Именно она использовалась для последних релизов.
  • Рефакторинг.

Перевод сообщений


  • Отрефакторены драйверы для gettext и базы данных.
  • В README добавлена документация.

Пакет почти готов к релизу.


Демо-приложение


Мы обновляем демо вслед за пакетами:



Шаблон веб-приложения



Также обновлена начальная страница:




Шаблон API



Сейчас в шаблоне достаточно много примеров. Со временем они переедут в демо.


Кеш


Кеш серьёзно отрефакторен. Главные класс кеша теперь не реализует PSR, но использует PSR-16 как хендлеры.
Есть возможность выставить TTL и префикс по-умолчанию, есть защита от cache stampede, поддерживается инвалидация через
зависимости.


Почищены и отрефакторены большинство хендлеров. Очень вероятно что в начале года сделаем релиз.


Лог


Лог также серьёзно почищен и порефакторен. Для конечного пользователя это всё ещё PSR-совместимый логгер, но с точки
зрения конфигурации и возможностей стало интересней:


  • Можно настроить формат лога.
  • Добавлен StreamTarget для вывода в стрим.
  • Уменьшено потребление ресурсов.
  • Можно добавить свой контекст в лог.

Var dumper


  • Улучшена обработка особых случаев.
  • Больше тестов и рефакторинга.
  • Экспорт замыканий выделен в отдельный класс ClosureExporter.

Bootstrap


Изменения есть как для Bootstrap 4, так и для Bootstrap 5.



Bulma



Роутер



Serializer



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


HTML


  • Зачистка, удалены устаревшие части.
  • Добавлены Html::div(), Html::span() и Html::p().

Assets



Виджеты


Публичное API было прилично изменено для поддержки иммутабельности в виджетах.
Я думаю что и синтаксис стал лучше:


<?= MyWidget::widget()->options(['class' => 'testMe'])->begin() ?>    Content<?= MyWidget::end() ?>

CSRF


CSRF серьёзно отрефакторен:


  • Структура стала более логичной.
  • Больше безопасности.
  • Интерфейсы, чтобы реализовать свой алгоритм защиты.
  • Реализован алгоритм, не требующий состояния.
  • Конфиги по-умолчанию.

Первые сторонние пакеты


Несмотря на то, что Yii 3 ещё не релизнут, для него начали появляться первые пакеты. В этот раз обратим внимание на пакет
для работы с SVG:



Новая и обновлённая документация



В общем сейчас документация в несколько устаревшем состоянии. Концептуально ничего не поменялось, а вот синтаксис много
где не соответствует. Будет обновлять в следующем году.


Почитать



Спасибо!


Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.


Отдельное спасибо тем, кто помог Yii 3 кодом:


Подробнее..
Категории: Php , Yii , Фреймворк , Yii3 , Yii frameowork

Новости Yii 2021, выпуск 1

05.03.2021 02:11:27 | Автор: admin

Привет, сообщество!

Это первый выпуск новостей в 2021. Начало года вышло продуктивным. Мы начали активно релизить пакеты Yii 3, есть значительный прогресс с пока не релизнутыми пакетами. Улучшили инструментарий разработки, много всего исправили, убили лишние пакеты. И всё это параллельно с поддержкой Yii 2 и решением проблем с финансированием.

Команда и фонд

Несмотря на то, что 2020 был через край долбанутым, для Yii всё вышло неплохо. Удалось договориться о продлении поддержки Yii 1.1 и других вещах в обмен на единовременное или постоянное пополнение фонда.

Эти соглашения и, конечно же,наши любимые спонсоры, позволили команде меньше работать над коммерческими проектами и больше над фреймворком. Фонд удалось использовать полностью.

Я был чрезвычайно воодушевлён возросшей скоростью разработки, окунулся в неё с головой и немного подзабыл о финансовой части. В январе меня ждал неприятный сюрприз. Оказывается, что забыл я про очень важный факт. А именно, что немаленькая часть средств фонда поступила не рекуррентными платежами. Соответственно, бюджета на всё не хватило. Чтобы не случилось полной катастрофы, я перестал забирать деньги фонда с OpenCollective и начал активно искать партнёров среди компаний, которые используют Yii и PHP. Результаты пока спорные, но, надеюсь, всё наладится.

Если хотите пообщаться на тему партнёрства, пишите вsam@rmcreative.ru.

Yii 2

Вышел Yii 2.0.41. Сильно помогли с релизомPawe Brzozowski, недавно присоединившийся к команде Yii 2, иRobert Korulczykс его тщательными ревью всего вливаемого в master кода. Много часов было потрачено на безопасность фреймворка. Удалось перебрать текущие сообщения о предполагаемых уязвимостях иулучшить безопасность.

Yii 3

Прежде всего, релизы:

В каждом пакете есть документация, отличное покрытие тестами, код вычищен и, конечно же, публичное API достаточно стабилен.

Ну а теперь время рассмотреть интересные изменения с предыдущего выпуска новостей. Для удобства изменения сгруппируем по пакетам.

Arrays

  • ДобавленArrayHelper::pathExists().

  • ДобавленArrayHelper::group(). Это алиасArrayHelper::index().

  • Удалены модификаторы.

Data

Auth

Config plugin

После большого количества попыток улучшитьComposer config pluginстало очевидно что он стал слишком сложным: AST, мёрж конфигов и всё что там творилось под капотом. Мы приняли решение сделать его менее зависимым от пакетов yiisoft и сделатьновый, более простой и производительный, пакет.

Все шаблоны приложений уже были переведены на новые конфиги. Скорее всего нужно будет исправлять баги и повышать удобство использования пакета.

Error handler

  • Рефакторинг, ридми.

  • Поддержка Xdebug 3 для получения более подробных стектрейсов.

  • ExceptionResponder, при помощи которого можно формировать HTTP-ответ в зависимости от пойманной ошибки. Это может быть полезно для исключений вродеNotFoundException. Будут ли такие исключения из коробки пока обсуждаем.

  • Renderer-ы теперь могут отдавать HTTP-заголовки, добавлен renderer, который выводит ошибку в заголовках. Полезно если показывать ошибки текстом неудобно. Например, для некоторых API или при генерации картинок.

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

Обработка ошибок в общем

  • В пакетyiisoft/yii-eventдобавленрежим отладки. В нём проверяются все обработчики событий сразу.

  • Улучшены ошибки DI контейнера.

Strings

  • ДобавленNumericHelper::isInteger().

  • Добавлена поддержкаboolвNumericHelper::normalize().

  • Был переработан матчинг по wildcard. Вместо довольно большого количества опций добавили**, совпадающий, в том числе, с сепараторами.

Var dumper

Html

Пакет был значительно переработан. Главных изменений два:

  1. Вывод по умолчанию экранируется.

  2. Теги реализованы как отдельные объекты, создаваемые через статические методы-фабрики из Html. Для пользователя это значит, что конфигурация теперь производится через вызов методов. То есть теперь IDE это дополняют и проверяют.

Валидатор

Много рефакторинга. Самое интересное:

Формы

Перевод сообщений

Почти готов к релизу. Можете почитатьего readme.

Mailer

Mailerиадаптер для SwiftMailerбыли вычищены и отрефакторены. Добавлена документация. Релизнем как только будут готовы зависимости.

DB и ActiveRecord

В обоих пакетах были исправления, оба ещё больше покрыли тестами. Wilmer, член команды, который занимался этими пакетами, уже проверил из в бою на Telegram боте с 120 тысячами запросов в сутки.

Оба пакета изначально были портированы из Yii 2 почти как есть. Была убрана магия, добавлены типы, покрытие тестами доведено почти до 100%. Но, несмотря на то что пакеты стали даже лучше, чем Yii 2, дизайн сохранился примерно в том же виде. Нам предстоит трудный выбор, релизить ли первую версию как есть или же сначала затеять гигантский рефакторинг.

Скорее всего выберем первое.

yii-web

User

Значительно переделали пакет:

Всё ещё не до конца довольны. Скорее всего будем переделывать ещё.

Bootstrap и Bulma

Консоль

Появиласьвозможность добавлять команды со своим именем.

Debugger

Есть прогресс как в API, так и на фронтенде.

Docker

Добавлена поддержка PHP 8.

Инструментарий разработки фреймворка

Улучшилиинструментарийчтобы можно было удобно работать даже не поставив все пакеты. Улучшили точность фиксера зависимостей. Добавили новую командыrelease/what. Она подсказываем какой пакет релизить следующим. Приоритет отдаётся пакетам без нестабильных зависимостей и, при этом, блокирующих как можно больше релизов других пакетов.

Шаблоны приложений

Новая и обновлённая документация

Почитать-посмотреть

Спасибо!

Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.

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

  • CraftCMS- Отличная OpenSource CMS на Yii2.

  • Onetwist Software- Услуги качественной разработки приложений.

  • SkillShare- Обучение новым навыкам.

  • Betteridge- Ювелирные изделия.

  • dmstr- Облачные решения на основе Docker.

  • HumHub- OpenSource решения для общения команды.

  • JetBrains- Отличные инструменты для разработки.

  • Skin.Club- Рынок скинов для CS:GO.

  • ЭФКО- фудтех, производство продуктов питания, и венчурные инвестиции. С недавнего времени ещё и ЭФКО-тех, отдельная растущая сервисная IT-компания, которая планирует заниматься не только внутренними проектами ЭФКО.

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

Отдельное спасибо тем, кто помог Yii 3 кодом:

Подробнее..
Категории: Php , Yii , Фреймворк , Yii2 , Yii3 , Opensource , Yii framework

Новости Yii 2021, выпуск 2

07.05.2021 22:14:21 | Автор: admin

Привет, сообщество!


С вами Александр Макаров, samdark и этой второй выпуск в этом году. Я попросил членов команды написать что-то для вступления, но, похоже, они предпочитают писать код :)


Есть новости по важным обновлениям Yii 3 и набор релизов Yii 2. Также упомянем некоторые интересные проекты, не связанные напрямую с кодом.


Статусная страница


Так как вопрос "Как вообще дела с Yii3?" задают слишком часто, мы сделали страницу с прогрессом по пакетам Yii3. Считается просто: пакет со стабильным релизом считается готовым, пакет без стабильного релиза нет. Фреймворк не требует релиза абсолютно всех пакетов, так что бета выйдет раньше, чем будет 100%. Чуть позже мы добавим ссылку на эту страницу с главной страницы официального сайта.


Улучшения дизайна


Создатель awesomic пригласил нас использовать сервис бесплатно в качестве благодарности за Yii 2. Сейчас мы не хотим делать полный редизайн сайта так как это существенно отвлечёт нас от Yii3. Поэтому, сделаем следующее:


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


Сообщество


Сообщество Yii всегда мигрировало с платформы на платформу. Во времена Yii 1 главной площадкой был форум. Он и сейчас является лучшим местом для сложных вопросов потому как отлично индексируется поисковиками. В качестве чата мы использовали IRC. Позже сообщества сформировались в Facebook и StackOverflow. IRC для многих был неудобен, поэтому мы попробовали Gitter и Slack.


Сейчас Yii3 мы больше всего обсуждаем в Telegram и, похоже, он стал более популярен, чем Slack.


Yii 2


Готов большой набор обновлений:



Yii 3


Разработка Yii3 идёт немного медленней, чем хотелось бы. Тем не менее, прогресс мне очень нравится. Мы выпускаем всё больше стабильных независимых пакетов и постоянно улучшаем основы, такие как конфигурацию и контейнер.


Релизы пакетов:



Следующий набор пакетов уже готовится. А теперь время рассмотреть интересные изменения с предыдущего выпуска новостей. Для удобства изменения сгруппируем.


Шаблоны приложений и демо



Роутинг и диспетчер middleware



Asset-ы


Пакет assets близок к релизу: решены все известные проблемы, написана документация, достигнуто отличное покрытие тестами.


DI и Factory


Мы опять поломали синтаксис. __class теперь class, свойства префиксируются $. namespace-ы тоже немного поменяли. Скорее всего это последнее такое изменение в декларативном синтаксисе контейнера.


Эти изменения позволили нам добавить метаданные без какого-либо шанса на конфликт со свойствами:



Конфиги


Новый плагин был отличной идеей. После следующих изменений пользоваться им стало удобно:




Старый плагин был обновлён для совместимости с изменениями в пакетах Yii 3.


На этом мы не останавливаемся. Будут ещё улучшения.


Data response



Translator


Набор пакетов для перевода почти готов к релизу. Кроме общей зачистки мы добавили инструмент для обновления перевода на основе кода и консольную команду для него. По удобству получилось, как минимум так же, как переводы в Yii 2.


Консоль


Начали группировать команды по namespace при выводе их списка.


Docker


Исправил образы Docker, включая образы под Nginx. Теперь они автоматически собираются через GitHub actions и достпны на Docker hub.


Новая и обновлённая документация


  • Middleware дополнительные диаграммы для лучшего понимания концепта.
  • Cookies подписывание и шифрование кук.

Почитать



Спасибо!


Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится!


  • CraftCMS Отличная OpenSource CMS на Yii2.
  • Onetwist Software Услуги качественной разработки приложений.
  • SkillShare Обучение новым навыкам.
  • Betteridge Ювелирные изделия.
  • dmstr Облачные решения на основе Docker.
  • HumHub OpenSource решения для общения команды.
  • JetBrains Отличные инструменты для разработки.
  • Skin.Club Рынок скинов для CS:GO.
  • EFKO Group фудтех, производство продуктов питания, и венчурные инвестиции. С недавнего времени ещё и ЭФКО Цифровые Решения, отдельная растущая сервисная IT-компания, которая планирует заниматься не только внутренними проектами ЭФКО.

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


Отдельное спасибо тем, кто помог Yii 3 кодом:


Подробнее..
Категории: Php , Yii , Фреймфорк , Yii3 , Yii framework

Новости Yii 2020, выпуск 5

09.07.2020 02:04:13 | Автор: admin

Приветствую!


Время очередного выпуска новостей Yii. Как у Yii 2, так и у Yii 3 всё хорошо :)


На самом деле, в этом году перед этим выпуском было ещё четыре, как следует из порядкового номера. Но я был так увлечён Yii 3, что забыл про хабр Почитать их можно прямо на главной https://yiiframework.ru/. Ну или, если больше нравится английский, на нашей странице на OpenCollective.

Наконец, дошли руки обновить страницу с командой на официальном сайте.
Константин Сироткин вернулся и активно занимается расширением Yii 2 ElasticSearch.
Сформирована основная команда Yii 3. Вообще это по факту произошло в конце 2019-го. Имена, вероятно, вам известны так как упоминались в предыдущих выпусках.


Мы частично переместили тесты на GitHub actions. Полёт прекрасный, рекомендуем. Мы добавляем статический анализ через phan
и прогоняем тесты через Infection чтобы ещё больше повысить качество кода.


Я потратил немного времени на YiiPowered, где мы собираем проекты на Yii. Сейчас там 571 проект. Улучшения такие:


  • Можно добавлять проекты на Yii 3.0.
  • Для проектов, для которых не заполнены скриншоты, они делаются и загружаются автоматически каждую ночь.

В прошлом выпуске я упомянул конференцию PHP Russia Online.
Прошла она хорошо. Доступны видео.


В качестве эксперимента, я записал скринкаст во время работы над фреймворком.
Очень хочется узнать ваше мнение. Стоит писать ещё? Хотите узнать про какую-то часть фреймворка или процесс разработки?


Yii 2


Вышла версия 2.0.36. Это важное обновление из-за улучшений в работе
DI-контейнера. Он стал немного ближе к Yii 3.


В action как веб, так и консольного контроллеров теперь можно так:


namespace app\controllers;use yii\web\Controller;use app\components\BookingInterface;class HotelController extends Controller{        public function actionBook($id, BookingInterface $bookingService)    {        $result = $bookingService->book($id);        // ...        }}

Ещё одно улучшение в том, что Instance::of() начал работать в массивах:


return [    ContentTypeMiddleware::class => [        '__construct()' => [            Instance::of(StreamFactory::class),            [                'json' => Intance::of(JsonFormatter::class),                'yaml' => Intance::of(YamlFormatter::class),            ],        ],    ],];

Дополнительно были выпущены следующие расширения:



Yii 3


Во-первых, появился шаблон приложения. С него вы можете начать пробовать Yii 3.
Это не финальная версия, но представление о том, что у нас есть, даёт. Обсуждения и конструктивная критика приветствуются.






Общую картину можно наблюдать в Trello.


Новые и переработанные внутренние соглашения:



Новые страницы в руководстве по фреймворку:



Рекомендации к чтению



Спасибо!


Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.


Отдельное спасибо тем, кто помог Yii 3 кодом:


Подробнее..
Категории: Yii , Yii2 , Yii3

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru