⚡️ #yiisoftDemo
Несколько улучшений в демо веб-приложения.
• Упростили конфигурацию класса
• Добавили консольную команду
• Добавили альтернативный маршрут
Несколько улучшений в демо веб-приложения.
• Упростили конфигурацию класса
Application
(PR).• Добавили консольную команду
fixture/schema/clear
, которая удаляет все записи в таблицах БД (PR).• Добавили альтернативный маршрут
/backend
для доступа к бэкенду (PR).👍5
⚡️ #yiisoftYiiRunner
В пакете Yii Runner подняли версию dev-зависимости
В пакете Yii Runner подняли версию dev-зависимости
yiisoft/test-support
до ^2.0
(PR).⚡️ #yiisoftDb #yiisoftDbMssql #yiisoftDbMysql #yiisoftDbOracle #yiisoftDbPgsql #yiisoftDbSqlite #yiisoftActiveRecord
Сделали серьёзный рефакторинг DB-пакетов, практически переписали их:
- Yii DB
- Yii DB MSSQL Server Extension
- Yii DB MySQL Extension
- Yii DB Oracle Extension
- Yii DB PostgreSQL Extension
- Yii DB SQLite Extension
- Yii Active Record
В процессе рефакторинга:
- вынесли из кода зависимости от PDO;
- выделили и сегрегировали интерфейсы;
- исправили ошибки;
- уменьшили сложность кода;
- повысили уровень типизации;
- уровень Psalm повысили до 1;
- покрытие тестами увеличили до 90%.
В связи с тем, что изменениями было задето практически 100% кода и сложности объединения веток, сделали внесение изменение не через PR, а с помощью переименования ветки
Пакеты Yii DB Redis Extension и Yii DB MongoDB Extension в рефакторинге не участвовали и на текущий момент находятся в не рабочем состоянии, так как перестали соответствовать интерфейсам из Yii DB.
Сделали серьёзный рефакторинг DB-пакетов, практически переписали их:
- Yii DB
- Yii DB MSSQL Server Extension
- Yii DB MySQL Extension
- Yii DB Oracle Extension
- Yii DB PostgreSQL Extension
- Yii DB SQLite Extension
- Yii Active Record
В процессе рефакторинга:
- вынесли из кода зависимости от PDO;
- выделили и сегрегировали интерфейсы;
- исправили ошибки;
- уменьшили сложность кода;
- повысили уровень типизации;
- уровень Psalm повысили до 1;
- покрытие тестами увеличили до 90%.
В связи с тем, что изменениями было задето практически 100% кода и сложности объединения веток, сделали внесение изменение не через PR, а с помощью переименования ветки
master
в old-master
, а dev
(ветка в которой проходил рефакторинг) в master
. Пакеты Yii DB Redis Extension и Yii DB MongoDB Extension в рефакторинге не участвовали и на текущий момент находятся в не рабочем состоянии, так как перестали соответствовать интерфейсам из Yii DB.
🔥6👍2
⚡️ #yiisoftFiles
В хелпере Yii Files добавили функции обратного вызова
В хелпере Yii Files добавили функции обратного вызова
beforeCopy
и afterCopy
для методов FileHelper::copyFile()
и FileHelper::copyDirectory()
(PR).⚡️ #yiisoftDb
В пакете Yii DB подняли версии зависимостей (PR):
-
-
-
В пакете Yii DB подняли версии зависимостей (PR):
-
psr/log
до ^2.0|^3.0
,-
yiisoft/log
до ^2.0
,-
yiisoft/profiler
до ^1.0.3
.⚡️ #yiisoftDb #yiisoftDbMssql #yiisoftDbMysql #yiisoftDbOracle #yiisoftDbPgsql #yiisoftDbSqlite
Несколько улучшений в Yii DB (PR):
- в интерфейсе
- в классе
Соответствующие изменения сделаны в пакетах:
- Yii DB MSSQL Server Extension (PR)
- Yii DB MySQL Extension (PR)
- Yii DB Oracle Extension (PR)
- Yii DB PostgreSQL Extension (PR)
- Yii DB SQLite Extension (PR)
Несколько улучшений в Yii DB (PR):
- в интерфейсе
ConnectionInterface
заменили метод getDriverName()
на getDriver()
, который возвращает экземпляр PDODriverInterface
;- в классе
Dsn
добавили методы getDatabaseName()
, getHost()
и getPort()
.Соответствующие изменения сделаны в пакетах:
- Yii DB MSSQL Server Extension (PR)
- Yii DB MySQL Extension (PR)
- Yii DB Oracle Extension (PR)
- Yii DB PostgreSQL Extension (PR)
- Yii DB SQLite Extension (PR)
⚡️ #yiisoftDbMssql #yiisoftDbOracle #yiisoftDbPgsql #yiisoftDbSqlite
Удалили зависимость
- Yii DB MSSQL Server Extension (PR)
- Yii DB Oracle Extension (PR)
- Yii DB PostgreSQL Extension (PR)
- Yii DB SQLite Extension (PR)
Удалили зависимость
yiisoft/log
в пакетах:- Yii DB MSSQL Server Extension (PR)
- Yii DB Oracle Extension (PR)
- Yii DB PostgreSQL Extension (PR)
- Yii DB SQLite Extension (PR)
⚡️ #yiisoftDbMysql
Исправили ошибку при экранировании строк в Yii DB MySQL Extension: теперь символ
Исправили ошибку при экранировании строк в Yii DB MySQL Extension: теперь символ
_
не экранируется (PR).👍2
⚡️ #yiisoftProxy #yiisoftYiiDebug
Несколько улучшений в Yii Proxy (PR).
Добавлена возможность создавать прокси-объект для объектов без итерфейса:
- в классе
- в классе
В классе
В классе
Соответствующие изменения внесли в Yii Debug (PR).
Несколько улучшений в Yii Proxy (PR).
Добавлена возможность создавать прокси-объект для объектов без итерфейса:
- в классе
ProxyManager
метод createObjectProxyFromInterface()
переименован в createObjectProxy()
;- в классе
ClassConfigFactory
метод getInterfaceConfig()
переименован в getClassConfig()
.В классе
MethodConfig
из конструктора удалён параметр $hasReturnType
и добавлен метод hasReturnType()
.В классе
ParameterConfig
из конструктора удалён параметр $hasType
и добавлен метод hasType()
.Соответствующие изменения внесли в Yii Debug (PR).
👍2
⚡️ #yiisoftValidator
В пакете Yii Validator повышена версия dev-зависимости
В пакете Yii Validator повышена версия dev-зависимости
yiisoft/test-support
до ^2.0
(PR).⚡️ #yiisoftMiddlewareDispatcher
В Yii Middleware Dispatcher добавили поддержку определения мидлварей с помощью массивов (array definition) из Yii Definitions (PR).
Теперь можно задавать мидлварь вот так:
В Yii Middleware Dispatcher добавили поддержку определения мидлварей с помощью массивов (array definition) из Yii Definitions (PR).
Теперь можно задавать мидлварь вот так:
[
'class' => MyMiddleware::class,
'__construct()' => [
'someVar' => 42,
],
]
⚡️ #yiisoftCacheDb
В пакете Yii Cache DB Handler подняли минимальную версию PHP до
- удалили исключение
- в случае неудачного получения/записи данных в БД теперь выбрасывается исключение
- покрытие тестами увеличили до 97%;
- в конфигурации scrutinizer добавили запуск тестов для всех драйверов MySQL, MSSQL и Oracle;
- актуализировали readme.
В пакете Yii Cache DB Handler подняли минимальную версию PHP до
^8.0
(PR) и сделали несколько улучшений (PR):- удалили исключение
\Yiisoft\Cache\Db\InvalidArgumentException
;- в случае неудачного получения/записи данных в БД теперь выбрасывается исключение
CacheException
;- покрытие тестами увеличили до 97%;
- в конфигурации scrutinizer добавили запуск тестов для всех драйверов MySQL, MSSQL и Oracle;
- актуализировали readme.
⚡️ #yiisoftDemoApi
Несколько улучшений класса
- шаблон ID объекта в роуте теперь НЕ добавляется для метода
- для метода
Несколько улучшений класса
RestGroupFactory
в демо API-приложения:- шаблон ID объекта в роуте теперь НЕ добавляется для метода
post
(PR);- для метода
options
в контроллере, который обрабатывается OPTIONS-запросы, теперь создаются маршруты как для ресурсов в целом, так и для конкретного ресурса по ID (PR).⚡️ #yiisoftDb #yiisoftDbSqlite
В Yii DB заменили использование собственного
В Yii DB заменили использование собственного
Yiisoft\Db\AwareTrait\LoggerAwareTrait
на Psr\Log\LoggerAwareTrait
(PR) и немного поправили тесты в Yii DB SQLite Extension (PR).⚡️ #yiisoftDb
В Yii DB перенесли метод
В Yii DB перенесли метод
getDriver()
из ConnectionInterface
в ConnectionPDOInterface
(PR).🌿 #Полезное
Именование классов и интерфейсов для получения экземпляра объекта по имени, Сергей Предводителев
Статья по мотивам обсуждения названия интерфейса для получения обработчиков правил в Yii Validator.
Именование классов и интерфейсов для получения экземпляра объекта по имени, Сергей Предводителев
Статья по мотивам обсуждения названия интерфейса для получения обработчиков правил в Yii Validator.
👍4
⚡️ #yiisoftRouter #yiisoftRouterFastroute
В роутере добавлена поддержка нескольких хостов:
- Yii Router (PR),
- Yii Router FastRoute Adapter (PR).
Пример:
В роутере добавлена поддержка нескольких хостов:
- Yii Router (PR),
- Yii Router FastRoute Adapter (PR).
Пример:
Route::get('/')
->hosts(
'https://yiiframework.com/',
'https://yiiframework.ru/'
);
👍3
⚡️ #yiisoftDb
В пакете Yii DB в интерфейсе подключения к БД
Новый метод должен возвращать название подключения. В случае с PDO-подключениями — это название драйвера (
В пакете Yii DB в интерфейсе подключения к БД
ConnectionInterface
добавили метод getName()
(PR).Новый метод должен возвращать название подключения. В случае с PDO-подключениями — это название драйвера (
mysql
, oci
и т . д.).👍3