Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Data Laravel Package

atk4/data

ATK Data is a PHP data model abstraction that separates business logic from UI and persistence. Works with SQL/NoSQL/APIs, supports relations, expressions, aggregation, and user actions with ACL metadata—integrates easily with ATK UI and ATK API.

View on GitHub
Deep Wiki
Context7
6.0.0

Major features

  • No implicit IN operator for condition with array value (#1092) @mvorisek
  • Fix HasOneSql::addField() implicit caption (#1239) @mvorisek

Breaking changes

  • Remove Model::dsql() and Model::exprNow() methods (#1242) @mvorisek
  • Drop UserAction::$modifier property (#1238) @mvorisek

Other changes

  • Fix truncate table autoincrement reset (#1245) @mvorisek
  • Allow array/object type as condition value for json DBAL type (#1244) @mvorisek
  • Impl. array persistence subtable comparison support (#1243) @mvorisek
  • Fix readthedocs.org build (#1240) @mvorisek
  • Revert fix test for the MariaDB v11.4.3 and v11.5.2 (#1232) @mvorisek
  • Upgrade Codecov CI (#1236) @mvorisek
  • Upgrade PHPStan to v2.0 (#1235) @mvorisek
  • Narrow array phpdocs (#1234) @mvorisek
  • Ignore PHPStan wrong array-shape subtraction warnings (#1233) @mvorisek
  • Fix test for the MariaDB v11.4.3 and v11.5.2 (#1231) @mvorisek
  • Fix update "new class() {..." CS (#1229) @mvorisek
  • Build epub and htmlzip docs (#1228) @Jmos
  • Fix Migrator with joined/imported fields (#1227) @PhilippGrashoff
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

  • Prevent binary prefix to collide with string/text input for Oracle (#1212) @mvorisek

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

Major Features

  • Deduplicate model properties and Field/Join from entity (#912) @mvorisek
  • Use DBAL Type for Field type (#727) @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

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
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

Major Features

  • Deduplicate load methods and assert only one row can be loaded if expected (#846) @mvorisek
  • Add hintable fields support (#800) @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

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
2.3.6
2.3.5

FC for NS case update II.

2.3.2

FC for NS case update

2.3.1

Fix versioning

2.2.1

Fix dependencies and versioning

2.3.0

What’s Changed

  • Fix GC for CallbackFilterIterator using WeakReference (#737) @mvorisek
  • Fix scheduled/200 iterations burn test (#736) @mvorisek
  • Add smoke and burn CI testing (#735) @mvorisek
  • Add loadany() to Array_ Persistence (#715) @PhilippGrashoff
  • Fix array persistence - addIdToLoadRow() must be called on data passed by-reference (#731) @DarkSide666
  • fix Model::addFields() with field object (#730) @mvorisek
  • Better Field::compare() (#729) @mvorisek
  • Persistence\Sql::getFieldSqlExpression return expression using field owner expr method (#722) @georgehristov
  • Introduce Field::getPersistenceName method (#728) @georgehristov
  • Revert to official Docker image (#726) @mvorisek
  • Update CS - require strict comparison (#631) @mvorisek
  • Add Oracle DB support (#723) @mvorisek
  • [fix] Condition key can be Expressionable (#721) @georgehristov
  • Use dsql\Query::exists (#725) @georgehristov
  • Add MSSQL support (#719) @mvorisek
  • Fix issues with dirty ID (#718) @mvorisek
  • Fix PostgreSQL CI errors (#706) @mvorisek
  • On-the-fly transform of ID in array persistance from key to result data (#709) @mvorisek
  • Fix missing Model::reload_after_save restore (#703) @mvorisek
  • Add type hinting to persistence connect (#701) @PhilippGrashoff
  • Update tests CS (#698) @mvorisek
  • Add type validation to factory calls (#624) @mvorisek
  • Move types to code if possible (#554) @mvorisek
  • [refactor] move ModelArrayAccessTrait to correct place in NS structure (#694) @georgehristov
  • Remove no longer relevant comment (#693) @mvorisek
  • Fix query on hasOne referenced model (#686) @georgehristov
  • Refactor usages of call_user_func to direct calls (#687) @mvorisek
  • Move Join to Model\Join (#680) @georgehristov
  • Introduce getQueryArguments in Field (#685) @georgehristov
  • Reference::addField $ourFieldName variable name for clarity (#681) @georgehristov
  • Separate Model reference methods in a trait (#679) @georgehristov
  • Improve naming consistency renaming Model\HasUserActionsTrait to Model\UserActionsTrait (#678) @georgehristov
  • Refactor references NS to use consistent and explicit variable and method names (#675) @georgehristov
  • Improve Model::withPersistence (#676) @georgehristov
  • Use constants to define Condition operators (#673) @georgehristov
  • Fix typo in phpdoc in Scope class (#674) @mvorisek
  • Мove Scope class to Model NS (#672) @georgehristov
  • Rename CompoundCondition class to Scope (#671) @georgehristov
  • Drop legacy/hack support of OR junction in anything else than legacy Model::addCondition() (#670) @mvorisek
  • Persistence\Csv rename variables to explicit names (#668) @georgehristov
  • Scope improve usability - addCondition() should not wrap (#664) @mvorisek
  • Rename BasicCondition to Condition (#663) @mvorisek
  • Unify Model::addCondition() and CompoundCondition::addCondition() (#666) @georgehristov
  • Persistence\Sql rename variables to explicit names (#665) @georgehristov
  • Fix Scope::createXx bug (#667) @mvorisek
  • Fix Iterator data types (#659) @DarkSide666
  • Fix composer.json (#658) @DarkSide666

Breaking Changes

  • Fix not rebound hooks after clone (#711) @mvorisek
  • Remove persistence override support from Model::load/save/atomic methods (#732) @mvorisek
  • Stricter Condition validation, remove legacy OR condition support (#720) @mvorisek
  • Drop magic ID property from Model (#716) @mvorisek
  • Drop $from_persistence support for Model::load() (#717) @mvorisek
  • Drop ID property in advance of standard row data, provide BC using magic (#708) @mvorisek
  • Convert Model to Entity (prevent reload with a different record) (#697) @mvorisek
  • Make init() methods protected and fix calls to ->invokeInit() (#695) @mvorisek
  • Use "asc"/"desc" strings for order direction instead of false/true (#626) @mvorisek

Major Features

  • Fix not rebound hooks after clone (#711) @mvorisek
  • Drop magic ID property from Model (#716) @mvorisek
  • Convert Model to Entity (prevent reload with a different record) (#697) @mvorisek
  • Use Scope class for filtering/where impl. for Model (#660) @georgehristov
2.2.0

Breaking Changes

  • Enforce array in method prototypes when appropriate (#567) @mvorisek
  • Add separate/explicit Model::setMulti() method, Model::set() no longer accepts array (#621) @mvorisek
  • Drop AppScopeTrait trait from Model & Persistence classes (#654) @mvorisek
  • Fix PSR class/trait/method naming (#652) @mvorisek
  • [refactor] UserAction\Generic to Model\UserAction (#634) @georgehristov
  • Improve array persistence and disallow passing array by reference (#627) @mvorisek
  • HasXxx() methods now return bool only + always require field to be defined first (#616) @mvorisek

What’s Changed

  • Fix composer develop install issue (#657) @DarkSide666
  • Update CS for PHP 7.3 (#653) @mvorisek
  • Drop PHP 7.2 support (#649) @mvorisek
  • Separate UserAction validation in a protected method (#650) @georgehristov
  • Move safe "@return bool" phpdoc to code (#647) @mvorisek
  • Fix UserAction\Generic deprecation warning (#646) @georgehristov
  • Test with native MySQL 8.0 (#645) @mvorisek
  • Add testing with PHP 8.0 (#644) @mvorisek
  • [hotfix] backward compatibility for UserAction::$scope property (#643) @georgehristov
  • fix reference (#642) @DarkSide666
  • Fix default action icon seeds (#640) @mvorisek
  • Use strict array seed (#639) @mvorisek
  • [fix] dsql Postresql Connection class (#638) @georgehristov
  • [update] use dsql refactored connection class (#637) @georgehristov
  • Fix generated caption for anonymous classes (#633) @mvorisek
  • Html param for DSQL\Expression::getDebugQuery() is no longer supported (#632) @mvorisek
  • Update CS - require strict types (#625) @mvorisek
  • Fix tests when SqlFormatter formatter lib is available (#628) @mvorisek
  • Add codecov.yml config (#623) @mvorisek
  • Better fix for null offset limit (#613) @mvorisek
  • Remove @throws by CS fixer (#622) @mvorisek
  • Fix typo - ModelArrayAccessTrait is trait (not class) (#620) @mvorisek
  • Fix tests - exception message changed in atk4/core (#619) @mvorisek
  • Delete CHANGELOG.md (#618) @mvorisek
  • Revert mandatory validation (keep unfixed as before phpunit upgrade) (#615) @DarkSide666
  • Fix Email field test (#612) @DarkSide666
  • Upgrade phpunit (#561) @mvorisek
2.1.0

Large Breaking Changes

  • Isolate ArrayAccess from Model to optional/BC trait (#591) @mvorisek - add ModelArrayAccessTrait to your Model classes where needed
  • Change and move hook names to constants (#597) @mvorisek - read and update your code. Version 2.0.5 should be backwards compatible with this.

Breaking Changes

  • Convert callables to closures and move hook names to constants (#597) @mvorisek
  • Remove expr explode (#609) @mvorisek
  • Remove support of default field + do not explode CSV string/value (#604) @mvorisek
  • Allow to add() only an object (#565) @mvorisek
  • Remove NameTrait trait from Model (#596) @mvorisek

What’s Changed

  • Fix exception constructor refactoring (#608) @mvorisek
  • Refactor exception constructor calls to not use array (#607) @mvorisek
  • Remove support of relative class names (#603) @mvorisek
  • Small normalization changes (#580) @mvorisek
  • Remove lastInsertID() from Model (#592) @mvorisek
  • [feature] Action modifier (#602) @ibelar
  • add documentation for Model::setNull() (#601) @romaninsh
  • Remove NameTrait trait from Model (#594) @mvorisek
  • hotfix ArrayAccess (#595) @mvorisek
  • No incomplete tests by default for Sqlite and MySQL (#583) @mvorisek
  • move lastInsertID to persistence (#585) @DarkSide666
  • Normalize Unit Testing workflow across repos (#571) @mvorisek
  • Update Model.php (#584) @vorismi3
  • Model::setNull() - Allow field value unset (#569) @mvorisek
  • Remove old Travis files (#550) @mvorisek
  • add missing double backslash in class references (#570) @georgehristov
  • Simplify locale path getter (#568) @mvorisek
  • Delete ConnectionInterface.php (#564) @mvorisek
  • Fix phpunit before full upgrade (#562) @mvorisek
  • Fix driver type refactor (#559) @mvorisek
  • Remove vim comment (#560) @mvorisek
  • Change "driverType" to "driver type" in exception message (#558) @mvorisek
  • Don't use addMethod() with non-callable. Also add return types (#556) @mvorisek
  • Remove deprecated classes in 2.x version (#552) @mvorisek
  • Refactor driver type (#553) @mvorisek
2.0.4

Make some preparations to help you transition to 2.1 (#610)

2.0.3

What’s Changed

2.0.2

What’s Changed

  • include comment about hooks and example how to execute them (#510) @georgehristov
  • Add microseconds persistence support for datetime/time types + fix normalization/cloning issue (#504) @mvorisek
  • Accept any DateTimeInterface impl. for datetime (#505) @mvorisek
  • update multiple delete example in docs (#503) @georgehristov
  • Fix/ Small Action related fix (#502) @ibelar
  • better implementation for addFields() and test cases (#499) @DarkSide666
  • Fix empty array condition (#498) @DarkSide666
  • model default add field property (#454) @funyx
  • Feature/set custom edit exec button (#490) @georgehristov
  • Feature/add confirmation callback argument (#491) @georgehristov
  • Feature remove specified action (#489) @georgehristov
  • Fix/persistence sql condition (#487) @georgehristov
  • Fix/delete callback (#488) @georgehristov
2.0.1

What’s Changed

Enhancements

2.0.0

What’s Changed

1.4.1

Fixed bugs:

  • Check if actual and other seed parameters work fine in join #387
  • \atk4\data\Field_Callback does not exist #363

Closed issues:

  • Migrate Model AutoCreator to Agile Data #251
  • Write article on how to store data encrypted #143

Merged pull requests:

1.4.0

Fixed bugs:

  • Model: $this->set($this->id_field, $this->id) after insert #365
  • Issue with afterSave, AfterInsert and AfterUpdate Hooks together with hasOne()->addField() #383
  • our_field is honored in Reference impl, but on save a validation error is thrown #370
  • hasMany on Join in not implemented yet #369
  • Copy with reference traversal #360
  • Model::ref() does not apply condition on hasMany Reference if Model is not loaded #355
  • Escaped quote issue #349
  • $model->each() should return array of returned values. #348
  • Documentation mistake #347
  • Looks like type=>'text' is possible but not documented #338
  • Persistence_CSV and Persistence_Array does not support export() #312

Merged pull requests:

1.3.7

Minor release. Calling addCondition('age', '>', 30) will no longer mark field age as system.

1.3.6

This release adds some great improvements to the aggregate fields. The most notable change is that you no longer need to specify 'field' for 'count' aggregation, it has been a thorn:

$this->hasMany('Invoices', new Invoice())->addField('invoice_count', ['aggregate'=>'count']);

Now the alternative syntax is available, where you can just define your expression explicitly:

$this->hasMany('Items', new Item())->addField('list', ['expr'=>'group_concat([name] separator "+")']);

Closed issues:

  • Documentation atk4/data not meet atk/data-primer repository #328

Merged pull requests:

1.3.3

Fixed bugs:

  • DSN without password #298
  • adding reference multiple times does not produce error #239
  • addTitle() doesn't work for fields without _id suffix #220
  • looks like misspelled ->table #212

Closed issues:

  • Model->export: using ID as first level array key? #311
  • Refactor to use SQLTestCase from atk4/core #258
  • Docs: There is wrong description and examples #204
  • action('field') on expression should alias it to name of field. #190
  • Typecast use of 'actual' clashes with persistence->update() #186

Merged pull requests:

1.3.2

Implemented enhancements:

  • add $caption, getModelCaption() and getTitle() #290
  • Easier access to title of a current record #289

Closed issues:

  • add travis testing for postgresql #288

Merged pull requests:

1.3.1

Closed issues:

  • Typecasting for id field #293
  • Should action('xyz')->execute() trigger hooks? #291

Merged pull requests:

1.3.0

Add support for Oracle and PostgreSQL, adding support for sequences and migrate to ATK Data 1.2.x

Fixed bugs:

  • Tests of CSV persistence fail on Windows #271

Closed issues:

  • Problem with oracle insert #280
  • Oracle dates not working properly #279
  • After latest composer update, warning is thrown in Persistence_SQL->initQueryFields() #274
  • [epic] Implement support for Oracle #270

Merged pull requests:

1.2.3

This version focuses on enabling you to define your own Field classes, such as more advanced Password handling field. See example: https://github.com/atk4/login/blob/master/src/Field/Password.php

Introduced new way to verify field values with $model->compare('age', 20); which returs boolean. Also in addition to enum property, you can use values property with a field now.

Rewrote Overview section of documentation and added new information on Fields and Static Persistence.

  • Added Persistence_Static #265
  • Implemented $field->values property #266
  • Added Field->compare() and Model->compare()
  • Improved support for user-defined fields (nee Field\Password from https://github.com/atk4/login) #259
  • Allow to specify join kind
  • Allow fields extended from Field class to be loaded from SQL #269
  • Started official support of 7.2.
  • Fixed typecasting when using Array persistence
  • Extra docs on: Fields, Static Persistence
  • Docs rewrite of Overiew section.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
craftcms/url-validator
directorytree/privacy-filter-classifier
directorytree/privacy-filter
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi
splash/scopes
splash/toolkit
testo/output-teamcity
testo/bridge-symfony