Releases: atk4/data
Releases · atk4/data
5.2.0
Major features
- Use
bigint
DBAL type for ID fields by default (#1223) @mvorisek - Add
Migrator::introspectTableToModel()
method (#1218) @mvorisek - Bind PostgreSQL values using strong type (#1217) @mvorisek
- Use Doctrine SQL formatter (#1216) @mvorisek
- Impl. binary (case sensitive) LIKE/REGEXP for SQLite (#1202) @mvorisek
- Make LIKE operator escapable (#1198) @mvorisek
- Add regexp SQL operator support (#1191) @mvorisek
Breaking changes
Other changes
- Optimize Expression::escapeStringLiteral() using 10-ary CONCATs (#1225) @mvorisek
- Improve Expression::getDebugQuery() performance (#1224) @mvorisek
- Throw when introspected table does not exist (#1222) @mvorisek
- Set persistence for introspected model if passed to Migrator (#1221) @mvorisek
- Allow DBAL type to be passed internally in DSQL (#1219) @mvorisek
- Fix SQL table DBAL types introspection (#1220) @mvorisek
- Upgrade PHPStan to v1.11.1 (#1215) @mvorisek
- Impl. binary LIKE for Oracle (#1213) @mvorisek
- Improve SQLite LIKE performance II (#1214) @mvorisek
- Workaround empty REGEXP pattern support for MySQL 5.x (#1211) @mvorisek
- Fix LIKE/REGEXP result with null value/pattern (#1210) @mvorisek
- Improve SQLite LIKE performance (#1209) @mvorisek
- Fix LIKE with binary input for MSSQL II (#1208) @mvorisek
- Fix REGEXP with binary input for SQLite (#1207) @mvorisek
- Fix LIKE with binary input for MSSQL (#1206) @mvorisek
- Add LIKE/REGEXP with binary input for PostgreSQL (#1204) @mvorisek
- Add Oracle text LIKE/REGEXP support (#1205) @mvorisek
- Fix LIKE/REGEXP with binary input for MySQL (#1203) @mvorisek
- Impl. escape long string literal for Oracle (#1201) @mvorisek
- Unify LIKE operator for MSSQL (#1200) @mvorisek
- Fix SQL single line comment grammar (#1199) @mvorisek
- Make LIKE operator escapable (#1194) @mvorisek
- Optimize string literal escape performance (#1196) @mvorisek
- Fix PDO string literal escape (#1195) @mvorisek
- Fix MSSQL string literal escape (#1193) @mvorisek
- Allow Expression::escapeStringLiteral() without connection (#1192) @mvorisek
- Improve MSSQL "extended property" DBAL fix (#1190) @mvorisek
- Fix phpstan-strict-rules v1.5.3 (#1189) @mvorisek
- Add phpunit v11 support (#1188) @mvorisek
- Fix test for live hook update (#1187) @mvorisek
5.1.0
Major features
- Allow recursively referencing models to be analysed (#926) @mvorisek
- Impl. Model::getIdField() method (#1163) @mvorisek
- Bind SQL params using native types (#1149) @mvorisek
- Always use savepoints when nesting transactions (#1135) @mvorisek
Breaking changes
- Pass Persistence to their model closure factory only (#1185) @mvorisek
- Drop entity parameter from {HasOneSql, HasMany}::refLink() method (#1182) @mvorisek
- Make Reference::$model property protected (#1180) @mvorisek
- Drop Reference::refModel() and Model::refModel() methods (#1179) @mvorisek
- Reject entity to model property magic mapping (#1175) @mvorisek
- Rename Condition::$key property to Condition::$field (#1174) @mvorisek
- Keep SQLite autoincrement incremented after rollback (#1167) @mvorisek
- Fix array persistence export list return (#1164) @mvorisek
- Fix numeric compare affinity for SQLite (#989) @mvorisek
Other changes
- Fix nullable parameter type for PHP 8.4 (#1186) @mvorisek
- Make $defaults param in Model::hasXxx() methods required (#1184) @mvorisek
- Add strong type to some properties (#1183) @mvorisek
- Improve templated closure types (#1181) @mvorisek
- Replace ContainsXxx data initialization hack (#1178) @mvorisek
- Drop internal Model::$ownerReference property (#1177) @mvorisek
- Remove no longer needed HasOneSql order fix for Oracle (#1176) @mvorisek
- Store SQL condition always /w operator internally (#1173) @mvorisek
- Reduce SQLite query length of numeric compare affinity fix (#1172) @mvorisek
- Disable SQLite DBAL 3.x schema emulation (#1170) @mvorisek
- Fix DBAL 4.x SQLiteSchemaManager class case (#1169) @mvorisek
- Move Oracle DBAL middleware to a separate class (#1168) @mvorisek
- Fix MariaDB CI testing (#1165) @mvorisek
- Throw an exception when array with null is passed to IN condition (#1161) @mvorisek
- Improve ExecuteException messages (#1160) @mvorisek
- Fix docs build CI (#1159) @mvorisek
- Refactor variable names in Reference::ref() to stress possible entity (#1158) @mvorisek
- Fix
Scope::$shortName
cannot be unset to null (#1156) @mvorisek - Improve phpunit burn testing (#1155) @mvorisek
- Add override method attributes (#1151) @mvorisek
- Add phpunit v10 testing support (#1153) @mvorisek
- ErrorException should not imply ValidationException (#1116) @mvorisek
- Normalize empty string to null for Oracle (#1152) @mvorisek
- Never cast to string in "atk4_money" type (#1150) @mvorisek
- Fix PostgreSQL unusable connection after query failure (#1148) @mvorisek
- Minor reduce of setup tables in tests (#1147) @mvorisek
- Unify SQL quoted token regex (#1146) @mvorisek
- Move generic normalize exceptions to typecasting (#1142) @mvorisek
- Improve fix exception throwing for MSSQL execute statement (#1145) @mvorisek
- Fix grammar in README (#1144) @mudit-loya
- Deduplicate order for MSSQL only and handle different directions (#1143) @mvorisek
- Skip useless duplicates in query order render (#1141) @mvorisek
- Fix subquery render /w order but /wo limit render (#1140) @mvorisek
- Make Connection constructor protected (#1138) @mvorisek
- Allow start transaction during result iteration for MSSQL (#1136) @mvorisek
- Unify comments start case (#1134) @mvorisek
5.0.0
Major features
- Add Model::loadBy() complex condition support (#1125) @mvorisek
- Convert docs to markdown (#1107) @mvorisek
- Add (weakly referenced) local object DBAL type (#1083) @mvorisek
Breaking changes
- Drop $fxArgs from Connection::atomic() method (#1127) @mvorisek
- Never implicitly use fake model for update (#1123) @mvorisek
- Allow to create index for multiple fields (#1118) @mvorisek
- Allow Model::isset/getPersistence() calls on model only (#1088) @mvorisek
- Assert if reference type is the same by default (#1091) @mvorisek
Other changes
- Update docs about dirty fields and after save hook (#1131) @PhilippGrashoff
- Fix CS v3.26.0 (#1128) @mvorisek
- Add PHP 8.3 support (#1126) @mvorisek
- Fix CS v3.24.0 (#1124) @mvorisek
- Fix nested reverse join (#1121) @mvorisek
- Improve join temporary data cleanup (#1120) @mvorisek
- Fix load of imported fields in reverse array join (#1119) @mvorisek
- Test docs build using CI (#1110) @mvorisek
- Add join support for tables with PK different than "id" (#1077) @abbadon1334
- Fix unique index creation for MSSQL & Oracle (#1117) @mvorisek
- Minor UA cleanup (#1115) @mvorisek
- Replace DBAL EventManager with configuration middleware (#1114) @mvorisek
- Upgrade DBAL to v3.6.x (#1073) @mvorisek
- Land major header/indent rst to md changes (#1109) @mvorisek
- Rename docs files from rst to md (#1108) @mvorisek
- Fix typos (#1105) @szepeviktor
- Fix CS v3.18.0 (#1103) @mvorisek
- Fix castFloatToString for x86/32-bit platform (#1102) @mvorisek
- Fix CS v3.17.0 (#1101) @mvorisek
- Fix CS to use self:: for phpunit static method calls (#1100) @mvorisek
- Remove test skip for MySQL 8.0.32 (#1099) @mvorisek
- Fix phpstan v1.10.6 (#1097) @mvorisek
- Improve Closure phpdocs (#1095) @mvorisek
- Fix phpstan v1.10.0 (#1094) @mvorisek
- Fix object value to be implied from definitive condition (#1090) @mvorisek
- Optimize Model::getIterator() (#1087) @mvorisek
- Fix failing test with MySQL 8.0.32 (#1086) @mvorisek
- Fix HasMany concat with non-physical field (#1085) @mvorisek
- Fix Field to SQL convert when materialized field is available (#1080) @mvorisek
4.0.0
Major features
- Check model conditions during insert/update/delete (#1044) @mvorisek
- Add Migrator methods to create DB foreign keys (#1019) @mvorisek
- Replace Model::persistence property with getter/setter (#948) @mvorisek
Model::tryLoad
returns null when not found (#996) @mvorisek- Add
Model\AggregateModel
model (#817) @georgehristov - Add support for Model nesting (#946) @mvorisek
- Add support for native MySQL driver (mysqli) (#952) @mvorisek
Breaking changes
- Remove Field::toString() method (#1074) @mvorisek
- Remove Field::getTypeObject() method (#1072) @mvorisek
- Rename all remaining properties to camelCase (#1043) @mvorisek
- Make SQL Expression & Query classes abstract (#1048) @mvorisek
- Rename Field negated mandatory to nullable (#1041) @mvorisek
- Rename Field never_persist, never_save, read_only properties to camelCase (#1040) @mvorisek
- Rename Model::getRef() to getReference() (#1034) @mvorisek
- Rename less frequently used properties to camelCase (#1030) @mvorisek
- Remove WITH/CTE column mapping for model (#1021) @mvorisek
- Remove "<>", "is", "is not", "not" operators support (#1013) @mvorisek
- Improve datetime types typecasting (#1009) @mvorisek
- Distinguish between executeStatement and executeQuery (#965) @mvorisek
- Throw when foreign record cannot be found (#1001) @mvorisek
- Assert no traversing on unloaded entity field (#969) @mvorisek
- Adjust renamed "short_name" to "shortName" (#979) @mvorisek
- Stricter Model::{addExpression, addCalculatedField} seed (#973) @mvorisek
- Drop Oracle 11g support (#964) @mvorisek
- Drop DBAL 2.x support (#963) @mvorisek
- Remove Model\ArrayAccessTrait trait (#958) @mvorisek
- All Query methods excl. execute() should be read only (#953) @mvorisek
- Persistence::action() should be read only (#949) @mvorisek
- Clone user actions for entity lazily (#943) @mvorisek
Other changes
- Unify CI and fix phpstan v1.9.0 (#1075) @mvorisek
- Upgrade DBAL to v3.4.x (#1069) @mvorisek
- Fix phpstan v1.8.9 (#1071) @mvorisek
- Model::addUserAction should accept seed /w class (#1070) @mvorisek
- Adjust tests to the latest phpunit (#1068) @mvorisek
- Test PHP 8.2 /wo composer.json platform override (#1066) @mvorisek
- Remove Model::dirtyAfterReload internal property (#1064) @mvorisek
- Fix phpstan iterable types (#1062) @mvorisek
- Fix 1061 PR for atk4/ui (#1063) @mvorisek
- Fix phpstan v1.8.3 (#1061) @mvorisek
- Enable phpstan bleading edge and strict rules (#1059) @mvorisek
- Minor CS cleanup (#1057) @mvorisek
- Minor CS fixes (#1056) @mvorisek
- Minor CS cleanup (#1055) @mvorisek
- Minor tests and CS refactoring (#1050) @mvorisek
- Rename all methods to camelCase (#1049) @mvorisek
- Fix ui seed merge in HasOneSql (#1047) @mvorisek
- Fix model reload after save (#1042) @mvorisek
- Fix HasOneSql imported field update support (#1038) @mvorisek
- Fix HasOneSql their field update hook (#1037) @mvorisek
- Improve string type with NL normalization (#1036) @mvorisek
- Test FK violation during FK create (#1035) @mvorisek
- Connect to test DB lazily from TestCase (#1032) @mvorisek
- Use fixed PHP CS Fixer v3.9.4 (#1031) @mvorisek
- Add custom DBAL driver middleware (#1029) @mvorisek
- Fix DBAL Sqlite foreign key 5427, 5485, 5497 and 5501 issues (#1028) @mvorisek
- Add Migrator::drop support to drop linked FKs first (#1027) @mvorisek
- Add Schema\TestCase::getConnection() method (#1026) @mvorisek
- Fix SqlitePlatform to support quoted table name (#1025) @mvorisek
- Fix table /w schema support for all DBs (#1024) @mvorisek
- Do not use broken PHP CS Fixer v3.9.1 (#1023) @mvorisek
- Fix join with aliased fields (#1020) @mvorisek
- Add SQL string literal escape method (#1017) @mvorisek
- Fix whole query regexes performance (#1018) @mvorisek
- Fix PostgreSQL LIKE operator support (#1014) @mvorisek
- Replace SQL persistence connection property with getter (#1016) @mvorisek
- Remove Model::withId() method (#1015) @mvorisek
- Fix Oracle limit 0 support (#1012) @mvorisek
- Fix Model::loadXxx() /w limit/offset set (#1011) @mvorisek
- Add Model::executeCountQuery() method (#1008) @mvorisek
- Add testing with PHP 8.2 (#981) @mvorisek
- Forbid ContainsXxx unmanaged data modification (#1004) @mvorisek
- Upgrade hintable to v1.9 (#1007) @mvorisek
- Fix/test char types length limits (#1006) @mvorisek
- Improve Model load hooks (#1005) @mvorisek
- Strip schema from table for Join::foreign_field guess (#1003) @mvorisek
- Strip schema from table for HasMany::their_name guess (#1002) @samsouthardjr
- Fix ContainsOne model/entity hook (#999) @mvorisek
- CS and type improvements (#995) @mvorisek
- Fix exception throwing for MSSQL insert queries (#993) @mvorisek
- Fix 64-bit IEEE 754 floating-point precision support (#991) @mvorisek
- Improve MSSQL/Oracle missing fields in group fix (#988) @mvorisek
- Add support for AggregateModel traversing (#987) @mvorisek
- Fix hasXxx on AggregateModel (#986) @mvorisek
- Fix MoneyType::requiresSQLCommentHint() return type (#983) @mvorisek
- Remove strpos usage where possible (#982) @mvorisek
- Fix docs CS (#980) @mvorisek
- Test pdo_oci NCLOB read fix in image-php in CI (#978) @mvorisek
- Fix long string param support for Oracle (#974) @mvorisek
- Fix phpstan v1.4.7 (#972) @DarkSide666
- Connection DSN can omit password (#971) @DarkSide666
- Fix Oracle Instant Client setup for CI (#970) @mvorisek
- Fix leaking PHP iterator (#966) @mvorisek
- Fix self-signed cert for MSSQL CI (#968) @mvorisek
- Use Model for Join write operations (#960) @mvorisek
- Add support for Model nesting for Array persistence (#961) @mvorisek
- Test with MySQL Server 5.6 and fix unordered export/2D assertions (#956) @mvorisek
- Add support for native Oracle driver (OCI8) (#954) @mvorisek
- Fix phpstan for DBAL 3.2.1 (#951) @mvorisek
- Allow Model::getUserActions() to be called only on model (#947) @mvorisek
3.1.0
What’s Changed
- Fix field name key source, it must use always short_name (#942) @mvorisek
- Make sure Reference::createTheirModel always returns a new instance (#941) @mvorisek
- Model only properties should be settable only from non-entity (#940) @mvorisek
- Add WITH support for MSSQL (#935) @mvorisek
- Do not dump query twice on SQL exception (#928) @mvorisek
- Add generics to EntityFieldPair for Phpstan (#927) @mvorisek
- Fix 4000 bytes CLOB limit for Oracle (#922) @mvorisek
- Fix MSSQL with DBAL 2.x (#923) @mvorisek
- Store binary values natively for PostgreSQL and MSSQL (#921) @mvorisek
- Fix Migration::dropIfExists for Oracle (#920) @mvorisek
- Add binary/blob column support for MSSQL and Oracle (#917) @mvorisek
- Do not return the same object in {Model, Persistence}::add methods (#916) @mvorisek
- Normalize ID in array persistence and fix type guessing in static persistence (#911) @mvorisek
- Upgrade phpstan to v1.0 (#910) @mvorisek
- Make DBAL character types case-insensitive on PostgreSQL & Oracle (#908) @mvorisek
- Unify CI files (#906) @mvorisek
- Upgrade hintable to v1.6 (#905) @mvorisek
- Require field to be present when typecasting a row (#898) @mvorisek
- Fix Join last inserted ID source (#777) @mvorisek
- Do not reuse Oracle connections for CI (#903) @mvorisek
- Fix Oracle insert AI inconsistency (#778) @mvorisek
- Fix issues with Oracle server (#901) @mvorisek
- Adjust to CS fixer v3.2 rules (#900) @mvorisek
- Test with PHP 8.1 (#888) @mvorisek
- Fix PR 891 (#894) @mvorisek
- Fix compatibility with PHP 8.1 (#890) @mvorisek
- Deduplicate Field properties (#891) @mvorisek
- HasOneSql::addField(): Use type from reference Model (#880) @PhilippGrashoff
- Zero memory leak testing (#883) @mvorisek
- Test with limited max. connections (#878) @mvorisek
- Test with MariaDB (#882) @mvorisek
- Bump versions for the next release (#877) @mvorisek
Breaking Changes
- Accept DBAL driver connection in Connection::connect (#939) @mvorisek
- Expression::render must not mutate the state (#938) @mvorisek
- Deprecate Model::loaded in favor of Model::isLoaded (#931) @mvorisek
- Deprecate Model::onlyFields in favor of Model::setOnlyFields (#930) @mvorisek
- Add Password Field, drop multiple support in Email Field (#924) @mvorisek
- Deduplicate Reference from entity (#915) @mvorisek
- Unify common methods (#914) @mvorisek
- Fix Field mandatory & normalize in row save typecast (#899) @mvorisek
- Fix field typecast and drop Boolean field class (#897) @mvorisek
- Rename "money" type to "atk4_money" type (#895) @mvorisek
- Drop dummy "password" type (#896) @mvorisek
- Move Atk4\Dsql under Atk4\Data\Persistence\Sql namespace (#879) @mvorisek
Major Features
3.0.0
What’s Changed
Major Breaking Changes
- Drop PHP v7.3 support and upgrade CS Fixer to v3 (#872) @mvorisek
- Load methods return a new instance (distinguish strictly between model and entity) (#862) @mvorisek
Breaking Changes
- Upgrade phpstan to level 6 (#871) @mvorisek
- Fix Field clone with Reference and do not mutate model scope in Condition::toWords (#865) @mvorisek
- Make Model::{data,dirty,scope} props private (#864) @mvorisek
- Fix traversal when parent model is loaded (#853) @mvorisek
- Fix next AI for array persistence (#859) @mvorisek
- No iterate over entity (#855) @mvorisek
- Remove Model::{asModel, saveAs, newInstance} methods (#856) @mvorisek
Other Changes
- Integrate atk4/dsql package (#873) @mvorisek
- Fix PostgreSQL boolean handling for PHP 8.0.5 (#870) @mvorisek
- Use assertCount where applicable (#863) @mvorisek
- Fix "field" action - return all records, allow Action as scope condition (#861) @mvorisek
- Normalize array persistence seed data (#710) @mvorisek
- Fix too long trigger name for Oracle autoincrement (#858) @mvorisek
- Test schema with MSSQL, Oracle and PostgreSQL (#857) @mvorisek
- No explicit $table param in Array & Csv persistences (#656) @mvorisek
- Fix anonymous class detection (#854) @mvorisek
2.4.0
What’s Changed
- Update release builder (#850) @mvorisek
- Use RefMany, strict checks relaxed in upstream (#852) @mvorisek
- Update hintable dep to 1.2.x (#851) @mvorisek
- Use strict tryLoadOne in ContainsOne (#848) @mvorisek
- Make Persistence class abstract (#847) @mvorisek
- Remove ui property from UserAction (#843) @mvorisek
- PHPStan issue 4267 fixed officially (#840) @mvorisek
- Better num key det (#839) @mvorisek
- Improve table_alias gen (#836) @mvorisek
- Feature/fix conditions (#838) @DarkSide666
- Add model in ValidationExceptions (#837) @DarkSide666
- Fix title field name guessing (#835) @mvorisek
- Add additional Join test with field actual names and prefixes (#834) @DarkSide666
- Reenable MSSQL testing (#754) @mvorisek
- Nice caption with debug {actual, hintable} prefix (#831) @mvorisek
- Check hasMany guess early (#830) @mvorisek
- Adjust for latest = 8.0 php version (#828) @mvorisek
- Simplify phpstan CI patch (#825) @mvorisek
- Fix composer autoload/PSR4 warning (#824) @mvorisek
- Convert hardcoded strings to hintable fields in Contains{One, Many}Test (#822) @mvorisek
- Fix PHPStan 4267 issue until fixed officially (#821) @mvorisek
- Better table phpdoc (#818) @mvorisek
- Adjust Expressionable::getDsqlExpression() prototype (#816) @mvorisek
- Fix PHPStan Model IteratorAggregate phpdoc (#808) @mvorisek
- Rename Persistence\Array_::get() method to getRows() (#813) @mvorisek
- Cleanup for DBAL 2.10 and higher (#807) @mvorisek
- Remove Model\Base class introduced temporary in PR 800 (hintable support) (#810) @mvorisek
- Use short Model name everywhere (#805) @mvorisek
Breaking Changes
- Require array in reference/join defaults (#820) @mvorisek
- Table must be specified with table key in defaults (#819) @mvorisek
- Improve PHPStan level to 5 (#814) @mvorisek
- [fix] Model::duplicate (#801) @georgehristov
- Change HasOne type to integer by default (#811) @mvorisek
- Implicit ID have default type of integer and is required by default (#806) @mvorisek
Major Features
2.3.6
2.3.5
FC for NS case update II.
2.3.2
FC for NS case update