⚡️ #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