⚡️ #yiisoftActiveRecord
Исправили проблему с многократным созданием подключения (
Исправили проблему с многократным созданием подключения (
ConnectionInterface) в Yii Active Record (PR).🔥 #yiisoftDb #yiisoftActiveRecord #Новости
Yii DB https://github.com/yiisoft/db
Yii Active Record https://github.com/yiisoft/active-record
А также - их адаптеры.
Пакеты активно эволюционируют: в них динамично меняется API, код пакетов становится чище, абстракции - прозрачнее. После завершения пакета изменений мы опубликуем большую новость о произошедших изменениях, а пока рекомендуем воздержаться от обновления этих пакетов ввиду нестабильности публичного API.
Yii DB https://github.com/yiisoft/db
Yii Active Record https://github.com/yiisoft/active-record
А также - их адаптеры.
Пакеты активно эволюционируют: в них динамично меняется API, код пакетов становится чище, абстракции - прозрачнее. После завершения пакета изменений мы опубликуем большую новость о произошедших изменениях, а пока рекомендуем воздержаться от обновления этих пакетов ввиду нестабильности публичного API.
👍6👏1
⚡️ #yiisoftAccess #yiisoftErrorHandler #yiisoftDefinitions #yiisoftCache #yiisoftCsrf #yiisoftData #yiisoftAuth #yiisoftArrays #yiisoftCacheDb #yiisoftCacheFile #yiisoftCacheMemcached #yiisoftCacheRedis #yiisoftConfig #yiisoftCookies #yiisoftDataDb #yiisoftDataResponse #yiisoftDi #yiisoftActiveRecord #yiisoftDb #yiisoftDbMysql #yiisoftClassifier
Сделали небольшой рефакторинг в пакетах. Методы, вызываемые «цепочкой», перенесли на новую строку:
- Yii Access (PR)
- Yii Error Handler (PR)
- Yii Definitions (PR)
- Yii Caching Library (PR)
- Yii CSRF Protection Library (PR)
- Yii Data (PR)
- Yii Auth (PR)
- Yii Arrays (PR)
- Yii Cache DB Handler (PR)
- Yii Cache File Handler (PR)
- Yii Cache Memcached Handler (PR)
- Yii Cache Redis Handler (PR)
- Yii Config (PR)
- Yii Cookies (PR)
- Yii Data DB (PR)
- Yii Data Response (PR)
- Yii Dependency Injection (PR)
- Yii Active Record (PR)
- Yii DB (PR)
- Yii DB MySQL Extension (PR)
- Yii Classifier (PR)
Сделали небольшой рефакторинг в пакетах. Методы, вызываемые «цепочкой», перенесли на новую строку:
- Yii Access (PR)
- Yii Error Handler (PR)
- Yii Definitions (PR)
- Yii Caching Library (PR)
- Yii CSRF Protection Library (PR)
- Yii Data (PR)
- Yii Auth (PR)
- Yii Arrays (PR)
- Yii Cache DB Handler (PR)
- Yii Cache File Handler (PR)
- Yii Cache Memcached Handler (PR)
- Yii Cache Redis Handler (PR)
- Yii Config (PR)
- Yii Cookies (PR)
- Yii Data DB (PR)
- Yii Data Response (PR)
- Yii Dependency Injection (PR)
- Yii Active Record (PR)
- Yii DB (PR)
- Yii DB MySQL Extension (PR)
- Yii Classifier (PR)
👍6
⚡️ #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
⚡️ #yiisoftDb #yiisoftDbSqlite #yiisoftDbMssql #yiisoftDbMysql #yiisoftDbOracle #yiisoftDbPgsql #yiisoftActiveRecord
В Yii DB у нескольких методов изменили тип возвращаемого значения (PR):
•
•
•
При дальнейшем рефакторинге в
Соответствующие изменения внесены в пакеты:
- Yii DB SQLite Extension (PR)
- Yii DB MSSQL Server Extension (PR)
- Yii DB MySQL Extension (PR)
- Yii DB Oracle Extension (PR)
- Yii DB PostgreSQL Extension (PR)
- Yii Active Record (PR)
В Yii DB у нескольких методов изменили тип возвращаемого значения (PR):
•
CommandInterface::queryColumn(): array|false → array•
CommandInterface::queryOne(): array|false → ?array•
QueryInterface::one(): mixed → array|object|nullПри дальнейшем рефакторинге в
QueryInterface::one() планируется изменить тип на ?array.Соответствующие изменения внесены в пакеты:
- Yii DB SQLite Extension (PR)
- Yii DB MSSQL Server Extension (PR)
- Yii DB MySQL Extension (PR)
- Yii DB Oracle Extension (PR)
- Yii DB PostgreSQL Extension (PR)
- Yii Active Record (PR)
⚡️ #yiisoftActiveRecord
В Yii Active Record добавили возможность динамически задавать имя таблицы, в интерфейсе
В Yii Active Record добавили возможность динамически задавать имя таблицы, в интерфейсе
ActiveRecordInterface заменили статический метод tableName() на обычный getTableName() (PR).👍3🔥2
🔥 #yiisoftActiveRecord #Новости
В ближайшее время планируются мажорные изменения в пакете
Если пользуетесь этим пакетом, рекомендуем зафиксировать текущую версию.
Пример как это сделать через секцию
В ближайшее время планируются мажорные изменения в пакете
yiisoft/active-record.Если пользуетесь этим пакетом, рекомендуем зафиксировать текущую версию.
Пример как это сделать через секцию
require в composer.json:"require": {
...
"yiisoft/active-record": "dev-master#f4966ccef816c1ed77741fa4c2945ce05ce37695",
...
}👍10👌1
🔥 #yiisoftActiveRecord #News
В пакете
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Переименование сделано, чтобы в будущем избежать путаницы с PHP атрибутами #[Attribute].
В пакете
yiisoft/active-record методы класса, содержащие слово attribute, были переименованы.-
attributes() -> propertyNames()-
hasAttribute() -> hasProperty()-
getAttribute() -> get()-
getAttributes() -> propertyValues()-
getAttributesInternal() -> propertyValuesInternal()-
getOldAttribute() -> oldValue()-
getOldAttributes() -> oldValues()-
getDirtyAttributes() -> dirtyValues()-
markAttributeDirty() -> markPropertyDirty()-
isAttributeChanged() -> isPropertyChanged()-
setAttribute() -> set()-
setAttributes() -> populateProperties()-
populateAttribute() -> populateProperty()-
setOldAttribute() -> assignOldValue()-
setOldAttributes() -> assignOldValues()-
updateAttributes() -> updateProperties()Переименование сделано, чтобы в будущем избежать путаницы с PHP атрибутами #[Attribute].
👍14❤3🔥2