Skip to content

Latest commit

 

History

History
961 lines (689 loc) · 96.7 KB

File metadata and controls

961 lines (689 loc) · 96.7 KB

Changelog

All notable changes to this project will be documented in this file.

2.14.0 — 2025-12-12

🚨 Breaking changes

  • console: [breaking] allow --force to bypass CautionMiddleware (#1804) (bccf92f)

🚀 Features

  • session: add redis session manager (#1790) (eb7150b)

🐛 Bug fixes

  • core: fix class guards not using the autoloader (#1808) (450b2e7)
  • database: support route binding through IsDatabaseModel (#1794) (3556acb)
  • database: support pagination with joins and relations (#1801) (0b52ffd)
  • router: add null checks and fix route parameter handling (#1778) (c89c345)
  • view: throw exception when parsing xml views with short_open_tag enabled (#1795) (30b2a6f)

2.13.0 — 2025-12-04

🚀 Features

  • auth: add OAuth installer (#1674) (9c82b71)
  • cache: make assertLocked ensure that the checked lock has an expiration (#1758) (1a2e8fb)
  • container: make all container properties publicly readable (#1785) (be93ec1)
  • database: add support for self-referencing relations (#1745) (df2dcdc)
  • http: add support to mark Request properties as #[SensitiveField] (#1746) (0000c99)

🐛 Bug fixes

  • auth: correctly map user in GitHub OAuth provider (#1751) (ad2182a)
  • auth: pass scopes/options to auth URL builder (#1750) (cbe54d7)
  • auth: update outdated authenticatable import (#1752) (5c68b96)
  • cache: support enum tags (#1756) (678b695)
  • cache: add descriptions to cache:clear arguments (#1755) (e324f6e)
  • command-bus: extract uuid from pending commands when not provided (#1761) (b787c16)
  • console: properly normalize boolean flag names (#1762) (c6e6867)
  • core: gracefully handle missing seeders when using db:seed (#1759) (450ca75)
  • process: properly return exit code if missing (#1776) (9ad1587)

2.12.0 — 2025-11-28

🚀 Features

  • eventbus: add #[StopsPropagation] (#1740) (5769ec2)
  • validation: support nullable enums (#1739) (a9ca8c4)

🐛 Bug fixes

  • core: remove php 8.5 deprecations (#1742) (7501c1b)
  • support: correct some string function oversights (#1743) (f113128)
  • support: process error message after callback in box() (#1741) (908352a)

2.11.0 — 2025-11-26

🚀 Features

  • core: partial discovery loading (#1737) (92a31c3)

2.10.0 — 2025-11-26

🚀 Features

  • core: load composer dev namespaces (#1736) (892da0c)
  • database: add ability to create a query builder from another one (#1725) (55204a0)
  • tests: support paratest (#1721) (f5b5cd3)
  • view: fixes PHP 8.5 null offset deprecation warning (#1729) (2349c71)

2.9.3 — 2025-11-20

🐛 Bug fixes

  • router: use route registry to generate uris (#1724) (6dc51c2)

2.9.2 — 2025-11-19

🐛 Bug fixes

  • intl: make pluralizer singleton (#1726) (39b2b2d)

2.9.0 — 2025-11-14

🚀 Features

  • router: improve optional route parameter syntax (#1706) (68f4aba)
  • testing: inject app config in Integration test setup (#1710) (14a8da8)

🐛 Bug fixes

  • console: render nullable enum arguments (#1711) (402f0e7)
  • eventbus: change dispatched assertion from not null to not empty (#1709) (82318a6)
  • view: support relative view paths on windows (#1703) (87b2f7b)

2.8.0 — 2025-11-10

🚨 Breaking changes

  • router: [breaking] add route decorators (#1695) (c901dfe)

2.7.2 — 2025-11-10

🐛 Bug fixes

  • console: respect default value in confirm when forced (#1698) (708c8f9)

2.7.1 — 2025-11-09

🚀 Features

  • auth: mark password property with #[SensitiveParameter] (#1693) (129fdd5)

🐛 Bug fixes

  • view: discovery locations for view compiler (#1701) (8604b86)

2.7.0 — 2025-11-07

🚀 Features

  • router: add #[Stateless] attribute (#1692) (86d140d)

2.6.3 — 2025-11-07

🐛 Bug fixes

  • database: revert broken mysql dsn changes (#1689) (9edc4d2)

2.6.2 — 2025-11-07

🐛 Bug fixes

  • http: cleanup session without starting a new one (#1688) (9a7dee6)

2.6.1 — 2025-11-07

🐛 Bug fixes

  • http: gracefully recover from corrupt session retrieval (#1687) (8c5d8cc)

2.6.0 — 2025-11-07

🚀 Features

  • view: standalone TempestViewRenderer support (#1686) (2f5a3bc)

2.5.0 — 2025-11-06

🚀 Features

  • core: support booting in phar (#1672) (536db47)
  • core: make discovery cache environment variable partial by default (#1682) (f50af80)
  • view: add :isset attribte (#1675) (1af3b23)
  • view: support single-quote attributes (#1678) (071993a)

🐛 Bug fixes

  • database: fix dsn format for mysql connection (#1664) (6c3cbe2)
  • events: prevent enum event naming collisions (#1681) (1602654)
  • view: zero-values in attributes (#1679) (66dda2f)
  • psr-discovery dependency (#1655) (a1679a1)

2.4.0 — 2025-10-22

🚨 Breaking changes

  • http: [breaking] add --crawl flag to static:generate command (#1656) (fee1230)

🚀 Features

  • http: add accepts helper method (#1638) (b61d352)
  • intl: add current_locale util (#1643) (1dab1c7)

🐛 Bug fixes

  • auth: invalid key file arguments for Apple OAuth provider (#1640) (bf476c0)
  • http: desrialize csrf token from headers (#1616) (d1ee721)
  • reflection: return null for method return type if not defined (#1645) (b3acd5f)
  • view: handle boolean attribute followed by non space whitespace or self-closing tags (#1632) (cd226a3)

2.3.3 — 2025-10-09

🚀 Features

  • http: support passing JsonSerializable to Json response (#1626) (930e7ee)

🐛 Bug fixes

  • core: optional dependency guards (#1630) (1b23fd4)

2.3.2 — 2025-10-08

🐛 Bug fixes

  • installer: set correct default port on base_uri (#1625) (ef00d98)
  • make package dependencies optional where possible (#1624) (530c226)

2.3.1 — 2025-10-07

🐛 Bug fixes

  • view: support void tag rendering for XML files (#1621) (a395534)

2.3.0 — 2025-10-06

🚀 Features

  • console: support variadic argument (#1572) (b5f4185)
  • container: support decorators (#1537) (2d29bd5)
  • http: support database-based sessions (#1605) (174044c)
  • view: parse RSS feeds with tempest/view (#1617) (7398040)

🐛 Bug fixes

  • database: handle loading circular eager relations (#1556) (b2e0c75)
  • database: multiple select fields in one statement (#1603) (cd51bcf)
  • http: improve failed request exception messages (#1598) (a84ce29)
  • http: publish migration during database session driver installation (#1606) (2d6fa1b)

2.2.1 — 2025-10-03

🐛 Bug fixes

  • database: update or create with initial values (#1597) (d4450aa)

2.2.0 — 2025-10-02

🚀 Features

  • auth: improve OAuth user flow (#1587) (873fae9)

🐛 Bug fixes

  • oauth: properly set state when creating the redirect URL (#1592) (885a219)

2.1.0 — 2025-10-02

🚨 Breaking changes

  • http: [breaking] add query parameter to route testing utilities (#1583) (a819979)

🚀 Features

  • auth: add support for OAuth (#1577) (742d4fb)
  • database: add testing utilities (#1585) (cd39b60)
  • database: support for hooked virtual properties (#1586) (938c024)
  • support: add Uri utils (#1580) (83320ab)

🐛 Bug fixes

  • database: saving nullable BelongsTo relations (#1584) (a572b26)

2.0.4 — 2025-09-25

🐛 Bug fixes

  • database: nullable belongsto relations (#1575) (fc77327)

2.0.2 — 2025-09-18

🐛 Bug fixes

  • database: combining chunk and with in the select querybuilder (#1567) (62743e5)

2.0.1 — 2025-09-18

🐛 Bug fixes

  • database: properly serialize enum values when calling toRawSql (#1564) (3700723)

2.0.0 — 2025-09-16

🚨 Breaking changes

  • auth: [breaking] overhaul authentication and access control (#1516) (16aacc7)
  • commandbus: [breaking] rename AsyncCommand to Async (#1507) (9745b28)
  • core: [breaking] update exception processors to no longer return a throwable (#1342) (7000028)
  • database: [breaking] improve orm experience (#1458) (c6302f3)
  • http: [breaking] automatically encrypt cookies (#1447) (6615751)
  • router: [breaking] support signed URIs (#1520) (9d0fc5f)
  • validator: [breaking] add localization support for validation error messages (#1444) (38217ee)

🚀 Features

  • container: allow to inject tagged singletons (#1544) (b1459db)
  • core: add trace to exception logger (#1508) (af512b0)
  • core: improve base testing class (#1509) (830e27b)
  • database: primary key improvements (#1517) (b33204f)
  • database: dissociate down migrations from up migrations (#1513) (de2334b)
  • database: add #[Hashed] and #[Encrypted] attributes (#1514) (aca1f9a)
  • http: improve context for failed http requests (#1484) (01287b6)
  • mapper: support mapping array of serialized enums (#1521) (122d7a3)
  • mapper: support converting array of objects to array (#1523) (accab81)
  • process: introduce process component (#1326) (70bc5f8)
  • router: add ability to skip middleware per route (#1472) (ba2ef8a)
  • router: add method spoofing support for HTML forms (#1536) (fee4da0)
  • upgrade: add upgrade package (#1534) (97ceda7)
  • upgrade: upgrade router specific namespace changes (#1550) (a416f94)
  • validation: add Exists validation rule (#1462) (a28c943)
  • vite: mention <x-vite-tags /> and documentation link in post-install instructions (#1473) (477dfa9)

🐛 Bug fixes

  • container: allow enums in the #[Tag] attribute (#1506) (fd0912a)
  • core: properly handle unserializable discovery items when caching discovery (#1503) (e8c60ea)
  • core: discover vendor directory first on all platforms (#1535) (b7dc71e)
  • database: support inserting empty rows (#1515) (5c2a500)
  • database: ensure natural ordering for migrations (#1541) (1d50336)
  • http: null for enums values in request bodies (#1498) (0f7fc94)
  • http: fix assertStatus mixing up expected and actual results (#1499) (43dcf58)
  • http: discard unencrypted cookies (#1551) (a061e46)
  • mapper: don't overwrite request fields (#1487) (a280f56)

1.6.0 — 2025-08-08

🚀 Features

  • core: improved exceptions for unwriteable internal storage (#1468) (948f800)
  • cryptography: introduce cryptography component (#1346) (439b49e)
  • database: add string method on CreateTableStatement (#1454) (9c78fd6)
  • datetime: add convenience comparison and manipulation methods (#1450) (4aab9ed)
  • http: offer more control over server sent events format (#1459) (6623850)
  • mapper: implement serialization mapping for DTOs (#1449) (900898a)
  • testing: add assert response json assertions (#1433) (754a657)
  • vite: support passing configuration to containerized environments (#1426) (acace86)

🐛 Bug fixes

  • router: do not discover controller stub (#1453) (2246f72)
  • view: set doctype in x-base (#1451) (e7ea095)
  • view: pass scoped variables down view components (#1467) (c911989)
  • add json-serializable to TestResponseHelper $body (#1455) (3d459fd)

1.5.1 — 2025-07-29

🚀 Features

  • core: improve exceptions related to internal storage (#1434) (00caadf)
  • testing: add view data assertions (#1440) (f573fd1)
  • view: add csrf token in x-form (#1441) (e4daa51)

1.5.0 — 2025-07-28

🚨 Breaking changes

  • http: [breaking] add cross-site request forgery protection (#1411) (2bb4fcf)
  • view: [breaking] properly handle scoped view-components (#1435) (c6237db)
  • view: [breaking] support overriding vendor view components (#1439) (3483fe4)

🚀 Features

  • database: add pagination support (#1417) (07f9f4d)
  • http: add csrf_token function (#1415) (4386578)
  • kv-store: introduce key-value store component (#1252) (daee10d)
  • response: add a new Response class for json responses (#1423) (d25bc44)
  • router: json serializable as response body (#1420) (4af4429)
  • view: make default slot available as dynamic slot (#1419) (0f6f261)
  • view: add meta command for view components (#1424) (051078b)
  • view: add x-markdown component (#1430) (b81b9ed)

🐛 Bug fixes

  • http: don't cache csrf tokens in views (#1412) (9db65f0)
  • http: prevent CSRF token variable name collision (#1413) (361c2fb)
  • http: properly handle cookies lifecycle (#1416) (1089f61)
  • http: respect file session locks during reads (#1418) (55cb06f)
  • mapper: support casting bool, int, float and enums (#1414) (c7292e2)
  • vite: prevent syntax errors on prefetching script (#1421) (15c303e)

1.4.0 — 2025-07-17

🚀 Features

  • auth: add class-level permission support (#1405) (1404246)
  • mailer: introduce mailer component (#1227) (3f5f31e)
  • support: add json encode/decode to array and string utilities (#1396) (978bba2)
  • vite: inject react refresh when needed (#1406) (b57bf7f)

🐛 Bug fixes

  • mail: fix typos (#1410) (0e29b0e)
  • mailer: small tweaks and bugfixes (#1408) (f80536a)
  • vite: exclude .tempest from vite's file watcher (#1384) (e1bdcf2)

1.3.0 — 2025-07-10

🚀 Features

  • database: run migrate:fresh without validation by default (#1390) (665c825)

🐛 Bug fixes

  • commandbus: require console as a dependency (#1397) (e56cb6d)
  • router: change the Bindable::resolve return type from static to self (#1391) (3ac0e3a)
  • view: remove multiline comments before AST parsing (#1395) (f2c03df)

1.2.3 — 2025-07-08

🐛 Bug fixes

  • database: fix datetime serialization for mysql database (#1383) (dde0e84)

1.2.2 — 2025-07-08

🚀 Features

  • vite: make which extensions vite discovers configurable (#1375) (de2d6d4)

🐛 Bug fixes

  • http: allow session id cookies when on a local non-secure host (#1381) (47e993a)

1.2.1 — 2025-07-07

🐛 Bug fixes

  • http: register request interface as singleton as soon as possible (#1379) (b7d1d41)

1.2.0 — 2025-07-07

🚨 Breaking changes

  • database: [breaking] query builder refactor (#1367) (21ca22c)
  • database: [breaking] remove ModelDefinition in favor or ModelInspector (#1372) (7e8bfc6)

🚀 Features

  • database: add having and groupBy in select query builder (#1370) (6bf5c06)
  • view: add view comments (#1356) (c61519b)

⚡ Performance

  • reflection: improve class reflector memoization (#1360) (d8c502d)

🐛 Bug fixes

  • database: throw QueryWasInvalid on database fetch failure (#1371) (95b660b)
  • http: use exclusive locks for file session writes (#1366) (c3c8d03)
  • http: prevent mapping request data to reserved properties on request objects (#1374) (96bd1b0)

1.1.0 — 2025-07-05

🚀 Features

  • database: display sqlite path in about command (#1353) (9d8449c)
  • database: add database seeder support (#1354) (0a49e1f)
  • http: support implicit host in serve command (#1350) (ebde2c6)
  • session: add reflash method to session (#1338) (8e8d839)
  • validation: add HexColor validation rule (#1332) (e9a5a17)

⚡ Performance

  • core: improve overall discovery performance (#1333) (0199fa3)
  • core: improve config loading performance (#1341) (d28e896)

🐛 Bug fixes

  • core: fix SkipDiscovery attributes not being detected in vendor packages (#1337) (b049dd9)
  • core: add missing config cache initializer (#1340) (bf4770e)
  • icon: enable icon cache by default (#1339) (34e0d2d)
  • log: fix driver resolving not accounting log level (#1343) (e197b3c)
  • router: support implicit HEAD requests (#1349) (f912d6a)

1.0.1 — 2025-06-27

🚀 Features

  • console: allow dynamic arguments for specific console commands (#1322) (facdc25)
  • router: handle ConvertsToResponse outside of exception handler (#1320) (d4a219d)
  • router: allow specifying port using host:port syntax (#1321) (dba57d8)

1.0.0 — 2025-06-27

🚀 Features

  • cache: separate internal and user caches (#1245) (36edbd8)
  • cache: support stale while revalidate (#1269) (dde685a)
  • console: add inline documentation to console methods (#1232) (6dd0cbb)
  • core: add about command (#1226) (25c4aff)
  • core: add discovery config (#1198) (7b3cc70)
  • core: support exception reporting (#1264) (914ed58)
  • core: load local and production configurations last (#1266) (0306cbd)
  • database: add count() helper to IsDatabaseModel trait (#1181) (f2c9e47)
  • database: add insert()->then() and prevent invalid relations from being attached (#1225) (0e78895)
  • database: support multiple databases in migrations and query builders (#1267) (24ba164)
  • database: add ShouldMigrate interface (#1273) (d6d3e37)
  • database: support dto fields (#1305) (9b802b8)
  • datetime: support tempest datetime in validator and mapper (#1257) (5b9d8ff)
  • http: add testing client (#1295) (e3743ae)
  • icon: introduce icon component (#1313) (cc5b0a6)
  • intl: add localization support (#1294) (17eeebc)
  • router: support server-sent events (#1260) (b5420a9)
  • support: add number formatting utils (#1268) (c2f4e9d)
  • support: add uuid utilities (#1270) (20c3559)
  • validation: add ability to validate an array of values (#1212) (c4a9237)
  • view: support escaped expression attributes (#1222) (014b67f)
  • view: default slot content (#1300) (d1a21b0)
  • vite-plugin-tempest: allow overriding configuration using TEMPEST_PLUGIN_CONFIGURATION_OVERRIDE (#1256) (05d9942)

🐛 Bug fixes

  • cache: allow cache clear to be forced (#1272) (768273a)
  • console: prevent unknown console arguments (#1238) (975b49a)
  • core: register HttpExceptionHandler only in production (#1220) (f3a21a5)
  • core: allow discovery:generate to run even when full caching is enabled (#1223) (1b06332)
  • core: display clean version in about command (#1251) (f267de2)
  • core: release script fixes for next beta (#1314) (45fe695)
  • database: prevent non-object model queries from trying to use the model class (#1239) (c1561e0)
  • database: prepend backslash when creating enum columns (#1228) (e8705a7)
  • database: properly display mysql and postgresql versions in about command (#1258) (076653a)
  • database: postgres support (#1259) (f34ad57)
  • database: support semicolons in queries (#1262) (b110123)
  • event-bus: reorder listen parameters for consistency (#1291) (0d6e6ee)
  • framework: handle reflection in config show command (#1211) (972870f)
  • intl: remove circular dependency on datetime component (#1299) (957f9c8)
  • intl: fix circular dependency (#1301) (9e5eed6)
  • intl: fix circular dependency (#1302) (6c71b06)
  • router: check internal dead links without the domain (#1210) (62f45c3)
  • router: require hard-coded uris to start with a slash in Router::toUri (#1205) (1f3ec14)
  • support: make Arr\forget_values and Arr\forget_keys mutable (#1215) (286d9a0)
  • support: use Closure instead of callable when calling preg_replace_callback (#1231) (ce48368)
  • support: support more to_snake_case edge cases (#1250) (dcf926a)
  • view: properly unset local view component variables (#1221) (6bdb652)
  • view: prevent infinite loop with unclosed PHP or comment tags (#1282) (347513a)
  • view: fix falsy boolean evaluation on comments (#1289) (8d0d780)
  • view: handle icon name parsing without colon (#1298) (e34e120)
  • view: InvalidClosingTag should ignore commented out code attributes (#1288) (3892651)
  • vite: ignore missing .gitignore during installation (#1275) (a986846)
  • vite: use npm as fallback when no package manager is detected during installation (#1297) (b8b64d0)
  • use correct README guideline link (#1213) (670da14)

1.0.0-beta.1 — 2025-05-07

🚀 Features

  • console: add make:migration command (#871) (e34654a)
  • console: add option to use terminal width to render key/values (#1148) (0c553d4)
  • container: support lazy dependency initialization using lazy proxies (#1090) (78273cc)
  • container: add container:show command (#1118) (80ab136)
  • container: support dynamic tags using dynamic initializers (#1120) (0980e3a)
  • core: add middleware priority and discovery (#1109) (da6665c)
  • core: display more data in default error handler (#1116) (90e8208)
  • core: improve exception handling (#1203) (9b31ecc)
  • database: allow overriding table names through model class attributes (#1060) (412c2d0)
  • database: store default sqlite database in internal storage (#1075) (d1704e8)
  • database: add migration hash checking (#1054) (90fa20c)
  • database: model validation before update, create, and save (#1131) (58f15f9)
  • database: add HasConditions to query builders (#1154) (619dd11)
  • database: add Count query builder and statement (#1174) (22dbe07)
  • datetime: add datetime component (#1158) (76d70c1)
  • event-bus: add event bus testing utilities (#1103) (9c84c68)
  • router: allow checking an action against the current route (#1059) (a8b6ea9)
  • router: support returning string and array from controllers (#1083) (5fb1045)
  • router: introduce response processors (#1084) (fb8977b)
  • router: support getting raw body from requests (#1093) (9d86d13)
  • router: add redirect back response (#1050) (8d43ce5)
  • router: detect dead links when generating static pages (#1192) (453e1cb)
  • storage: add storage component (#1149) (4baead1)
  • storage: support multiple storage configurations (#1187) (5b8be8a)
  • support: support array parameters in string manipulations (#1073) (283af0b)
  • support: rename map_array to map_iterable (#1071) (1eaf65e)
  • support: support $default on array first and last methods (#1096) (0d93283)
  • support: add removeValues to array utils (#1204) (3209379)
  • view: add view:clear command (#1069) (4137981)
  • view: improve boolean attributes (#1111) (35f85e9)
  • view: attribute precedence (#1153) (96f3149)
  • view: dynamic view components (#1169) (06be1af)
  • view: prevent invalid closing tags (#1195) (215671f)
  • vite: disable tag resolution in tests by default (#1072) (71efbae)

⚡ Performance

  • view: improve view component discovery performance (#1191) (25adb82)

🐛 Bug fixes

  • console: keep colors in key-value lines (#1068) (02aa357)
  • console: do not discover stub files (#1136) (30f012d)
  • console: do not discover stub files (#1138) (3fc2a15)
  • console: select default option in ask component (#1139) (797392e)
  • console: properly place cursor in multiline input (#1141) (b079c5e)
  • core: publish tempest binary via composer (#1207) (03cccff)
  • database: improved check on missing migrations table (#1092) (ed6f85c)
  • filesystem: add ability to delete invalid symlinks (#1206) (12e2b03)
  • mapper: properly serialize nullable properties in objects (#1107) (0b824b6)
  • support: non-dev bun dependencies installation (#1124) (da7006f)
  • support: fix psr-4 namespace path generation with dots and slashes in the composer path (#1166) (ce06b52)
  • validation: more lenient scalar validation (#1127) (dcc2401)
  • validation: enum request validation (#1130) (2181ec8)
  • view: lexing multiline attributes in windows (#1121) (33085b0)
  • view: : is replaced by - and @ is removed (#1125) (2f0b247)
  • view: hyphens in slot names (#1129) (bead5a5)
  • view: don't throw when using a <table> element (#1133) (5a05f6d)
  • view: prevent $var from being nulled after passing to component (#1160) (9aeb727)
  • view: switch to runtime icon view component (#1165) (6b84639)
  • view: improved attribute precedence (#1168) (077cc7d)
  • view: fallback attributes fix with nested slots (#1172) (5f38986)
  • view: wrong matched imports in view component slots (#1173) (6c5da00)
  • view: dynamic components with slots (#1171) (9fb3dd4)

Build

  • fix release script adding tempest/highlight dependency (be80673)

1.0.0-alpha.6 — 2025-03-24

🚨 Breaking changes

  • support: [breaking] improve architecture of support utilities (#940) (bb75e81)
  • vite: [breaking] automatically discover entrypoints (#1051) (ebe3ef4)

🚀 Features

  • console: add make:command command (#1048) (13bc731)
  • console: add make:discovery command (#1057) (2bd5814)
  • console: add make:generator-command command (#1056) (6992b70)
  • core: add kernel interface (#924) (2a2c454)
  • database: refactor DatabaseConfig interface (#902) (3d3a094)
  • database: add a Virtual attribute to exclude model properties from query builder (#966) (b6252dc)
  • database: add a findBy method to models (#965) (8d479bc)
  • http: empty request values are converted to null (#976) (dc5323b)
  • http: fix http header casing on retrieval (#1024) (be2fb43)
  • mapper: add two-way casters (#920) (0748aa9)
  • mapper: add MapFrom and MapTo attributes (#929) (b9a89de)
  • mapper: ObjectToArrayMapper use Caster::serialize to serialize the property value (#947) (269bfcb)
  • mapper: map()->with()->to() (#951) (e6f04ee)
  • mapper: allow multiple fields in #[MapFrom] (#944) (381c58d)
  • support: add enums support (#878) (964d55a)
  • support: add basename to string utils (#1039) (1d4f563)
  • support: add slug, ascii and isAscii to string utils (#1040) (3eb8b35)
  • support: add words and sentence methods to string utils (#1042) (b2dfd32)
  • support: add groupBy to array utils (#1047) (d696826)
  • support: add mapFirstTo and mapLastTo to array utils (#1038) (b188609)
  • validation: allow Stringable objects in IsString rule (#1029) (bd22988)
  • view: support dynamic $slots and x-template (#911) (1ba1629)
  • view: more lenient DOM parsing (#941) (0fe0df9)
  • view: remove empty slots in production (#950) (64b1ff0)
  • view: support relative view paths (#953) (2479148)
  • view: access view component attributes (#1008) (6c7dfae)
  • view: add view processors (#1011) (573d557)
  • view: view components by file name (#1013) (12b5503)
  • view: fallthrough attributes (#1014) (e1ce286)
  • view: add icon component (#1009) (46570eb)
  • view: support merging class attributes (#1020) (80ff7be)
  • view: cache Blade and Twig templates in internal storage (#1061) (1e33722)
  • vite: add Tailwind CSS option to the installer (#926) (cfe1564)
  • vite: add <x-vite-tags /> component (#945) (888f5b1)

🐛 Bug fixes

  • database: make AlterTableStatement produce valid SQL (#979) (fd63ec0)
  • discovery: pass real paths to discovery classes (#1053) (97bfbf2)
  • linter: exclude cache directories (#1046) (0b27762)
  • mapper: nullable datetime caster (#974) (118eeb5)
  • mapper: validate before mapping (#980) (0688c97)
  • router: content-type json support when mapping psr request to tempest request (#956) (16345b6)
  • router: use correct input stream (#1005) (768c6fb)
  • validation: prevent type errors in rules using preg_match (#1043) (4a00657)
  • view: render doctype and html tags properly (#910) (dff3884)
  • view: fix for compiling HTML documents that contain PHP (#922) (f93fb3d)
  • view: comment out empty slots (#938) (1b3433d)
  • view: hardcoded boolean attributes shouldn't be parsed (#952) (dff166b)
  • view: regex timeout (#1015) (2e24641)
  • view: support <x-component> in auto-registered components (#1018) (371d9ea)
  • view: don't allow php expressions in attributes (#1019) (6931350)
  • view: do not duplicate <br /> tag (#995) (2279402)
  • view: prevent compiling parent elements of minified void tags (#1055) (0b25975)
  • vite: generate absolute asset urls (#1023) (3551008)
  • vite: don't discover template entrypoints (#1052) (3d7cbbd)

1.0.0-alpha.5 — 2025-02-24

🚀 Features

  • console: add make:initializer command (#771) (cf354b7)
  • console: add backed enum support to ask (#808) (5e3d99e)
  • console: improve rescuing enum console parameters (#809) (7c64c7c)
  • console: allow calling console commands via fqcn (#824) (a6ba3b6)
  • console: provide command suggestions when using : shorthands (#814) (107f8b8)
  • console: add installer (#837) (90b6321)
  • console: add make:middleware command (#804) (467c664)
  • console: several QOL improvements (#847) (05dac5c)
  • console: add support for printing hyperlinks (#850) (6f457af)
  • console: add make:config command (#863) (d0f3f53)
  • console: add make:view command (#864) (a4ab813)
  • console: add task component (#857) (d4dac18)
  • container: add has and unregister (#840) (09ced7a)
  • core: allow defer callbacks to receive parameters from container (#798) (42262fa)
  • core: add TEMPEST_START constant (#791) (1cabe2d)
  • core: optionally run composer up after installers (#839) (6747d2c)
  • database: improved database indexing (#851) (82f1808)
  • database: alter table with only indices (#852) (61e7abb)
  • database: chunked results (#855) (e332bbd)
  • database: bindings in query methods (#859) (49f019c)
  • database: add raw to CreateTableStatement (#868) (60dcc28)
  • database: add explicit relation attributes (#874) (5e4df24)
  • database: add closable connection wrapper for PDO connection (#875) (15f8995)
  • debug: emit ItemsDebugged on debug (#796) (c1be5e6)
  • framework: extend http testing methods (#790) (dd01ef1)
  • framework: overhaul console interactions (#754) (e966ecb)
  • log: emit MessageLogged when logs are written (#795) (50b27c8)
  • log: configure log paths through env by default (#820) (52f200a)
  • support: improve types of HasConditions (#800) (00aa6ea)
  • support: add every to ArrayHelper (#813) (9d39e15)
  • support: add append and prepend to ArrayHelper (#833) (7daf3fc)
  • support: add HtmlString class (#842) (751f0d1)
  • view: add twig support (#841) (0f47a80)
  • vite: add Vite installer (#901) (f9f4167)
  • add Vite support (#829) (4099b40)

🐛 Bug fixes

  • core: do not redefine TEMPEST_START (#806) (2739f4f)
  • database: default strong comparison check (#858) (b6064a6)
  • database: loading database relations or other objects (#884) (0214ac3)
  • generation: ClassManipulator now make replacements before simplifies classnames (#876) (fe0f3b2)
  • http: remove empty directories when running static:clean (#784) (3f0d17b)
  • http: correct HTTP 418 description and coverage (#823) (dbad109)
  • support: support keys with dots in ArrayHelper#get (#832) (8372827)
  • tests: update IPv6 test to align with PHP 8.4.3 behavior (dec5c2f)
  • view: check the existing of the $tagName property (#803) (f34c2ba)
  • view: support doc comment elements (#816) (8b95679)
  • view: self-closing view component tags (#818) (420e5d8)
  • view: use bug when compiling view (#893) (6ce796c)
  • vite: fall back to global entrypoints if supplied ones are empty (#870) (08df98c)
  • vite: support new cors rules in Vite 6 (#890) (d991bfd)
  • change order of scripts in composer.json (#786) (f948184)

1.0.0-alpha.4 — 2024-11-25

🚀 Features

  • commandbus: async commands (#685) (bfa1706)
  • console: support negative arguments (#660) (1cdf158)
  • console: support "no prompt" mode (#661) (687e333)
  • console: add name parameter to #[ConsoleArgument] (#617) (2a73033)
  • console: ensure tempest serve supports routes with file extension (#704) (6300617)
  • console: support dynamic style injections (#703) (6847a79)
  • console: accept BackedEnum as command arguments (#722) (c21f24e)
  • console: add make:controller and make:model commands (#647) (0bdee91)
  • console: add make:request command (#730) (987eabf)
  • console: infer binary path for scheduler (#758) (25e5d81)
  • console: add make:response command (#760) (e76c1f8)
  • container: support injecting properties using #[Inject] (#690) (ab0eecd)
  • core: install main namespace (#751) (3f9bdde)
  • core: partial discovery cache (#763) (2049f6e)
  • database: add json data type (#709) (d599d50)
  • database: add set data type (#725) (f0db5c8)
  • filesystem: add new Filesystem component (#441) (25d4a47)
  • framework: add config:show command (#732) (2124577)
  • http: map uploaded files into the request properties (#702) (a97014c)
  • http: add Delete attribute (#733) (613b884)
  • http: add Put and Patch attributes (#742) (3621006)
  • log: allow usage of multiple same log channels (#718) (68d7e54)
  • mapper: json file to object mapper (#748) (99933ff)
  • routing: add regex chunking to route regex (#714) (3eb0c59)
  • support: add sorting methods to ArrayHelper (#659) (8f52e4a)
  • support: add wrap and unwrap to StringHelper (#693) (a0fffe9)
  • support: support not specifying a value to ArrayHelper::pop and ArrayHelper::unshift (#692) (6a56d94)
  • support: add start to StringHelper (#713) (f719c20)
  • support: add methods reduce, chunk and findKey to ArrayHelper (#720) (c8a31db)
  • support: add more methods to ArrayHelper and StringHelper (#721) (bdf5efc)
  • validation: ArrayList rule (#745) (ddda992)
  • validation: enhance enum validation (#755) (ca7a226)
  • view: add boolean attributes (#700) (04000ac)
  • view: add raw html element (#738) (df6a418)
  • optimize routing (#626) (83f1dac)
  • multiple routes per controller method (#667) (166912d)
  • route enum binding support (#668) (f055fc1)
  • exception handler improvements (#670) (0f97964)
  • middleware callables (#672) (d2e8a4e)

⚡ Performance

  • routing: replace recursion in favor of iteration (#705) (32aaff4)

🐛 Bug fixes

  • commandbus: disallow having two #[CommandHandler] for the same command (#706) (f3054f9)
  • console: handle nested style tags (#726) (779973e)
  • core: discovery location loading order (#663) (6fc2d95)
  • core: discovery errors being silenced (#688) (f5b848c)
  • core: installers not updating docblock references (#696) (7b7e2ca)
  • generation: simplify traits and method parameter attributes (#753) (3cca6bc)
  • http: collision between route and query params for uri generator (#687) (e22492a)
  • http: use document root instead of env in tempest serve (#717) (ccc1ece)
  • http: use default log config only if no config is provided (#719) (fbaf866)
  • support: support calling first and last on empty ArrayHelper (#691) (9021c6e)
  • view: several bugfixes (#662) (5034d0a)
  • view: attributes for raw elements (#734) (f89eb5d)
  • view: extra null check for node attributes (#740) (5fa27bc)
  • query param name collision in uri function (#679) (59fe4fb)
  • rector (#680) (7fdff1d)

1.0.0-alpha.3 — 2024-10-31

🚨 Breaking changes

  • [breaking] add support for specifying an optional port in serve command (b8b9167)
  • [breaking] add the ability to use custom regex for route params (871dda9)

🚀 Features

  • console: support string keys in MultipleChoiceComponent (#567) (78f2794)
  • container: add ability to invoke arbitrary closures (#535) (c1da5f1)
  • core: add root_path helper (#607) (ccfcf94)
  • event-bus: support closure-based listeners (#540) (0fa02bc)
  • generation: add ClassGenerator (#544) (f54a0e0)
  • support: improve helpers (#538) (6d60b9b)
  • support: improve array helper with additional methods (#557) (57e6cd8)
  • support: refactor dd() method to use logger in string helper and add the dump() method (#563) (3349cf1)
  • support: add implode()/explode() methods in string helper (#564) (5718796)
  • support: add methods to array helper (#590) (b16f797)
  • support: add inline documentation on helper classes (#611) (c5fdcad)
  • validation: support validating by closure (#570) (450bc58)
  • match all method for string helper class (#536) (0f33a44)
  • enhance matchAll method to support flags and offset (9da79f4)
  • add named hasOne relation (#549) (58906b7)
  • add initializer for builtin types (#541) (bd64f5a)
  • add boolean data type (#547) (#555) (6776fff)
  • add isList() and isAssoc() methods in ArrayHelper for array type checking (#566) (f465060)
  • event bus improvements (#623) (bf7ff15)
  • add defer helper (#624) (15cd46e)
  • install command (#625) (10f3388)
  • add inline documentation on all namespaced functions (#616) (bef5af7)
  • publish imports (#643) (52ca58d)

🐛 Bug fixes

  • #275: implement weekly log rotation (#548) (14fea7d)
  • container: fix caching of autowire discovered classes (#630) (6a5a5d5)
  • http: fix so referer header is resolved depending on request class in invalid response (#604) (d463258)
  • phpstan: fix phpstan issues (#556) (b1495b2)
  • phpstan: fix last phpstan issues (#589) (e719dfa)
  • view: consume dynamic attributes (#644) (972595c)
  • terminal line clearing (#576) (ce2b6c4)
  • low terminal frame rate causing keystrokes to be dropped (#577) (8f414d6)
  • rector config (#581) (83c103d)
  • view argument casing (#585) (158b2db)
  • nullable properties not seen as nullable by TypeReflector (#591) (6e7dc59)
  • disable rector ci (#595) (88dfdfb)
  • type reflector uses wrong definition when converting to class (#592) (94071c3)
  • view components with multiple attributes (#599) (e00d0cd)
  • console cache dependency (#603) (2acdf9a)
  • duplicate command completion (#600) (effb684)
  • publish file root namespace (#638) (2051dd4)

Build

1.0.0-alpha.2 — 2024-10-04

🚀 Features

  • core: add Composer util (#519) (40c5f03)
  • database: implement table naming strategies (#453) (519f44f)
  • discovery: add ability to hide classes from discovery (#512) (c09cdf4)
  • discovery: allow exceptions on DoNotDiscover classes (#521) (1dcacae)
  • generation: add ClassManipulator (#531) (92ccb7d)
  • string-helper: add replacement and concatenation methods (#517) (6e3a63a)
  • support: adds string pluralizer (32fb3e9)
  • support: add StringHelper (ccb1e65)
  • refactor string helper to object (#433) (5eca329)
  • add array helper (#434) (988f28d)
  • request::has methods (#448) (82e6522)
  • add base uri support (#449) (f243a1f)
  • always log errors in production handler (#454) (0652e9c)
  • cache (#474) (00fd2de)
  • add str::startswith and endswith (#484) (3ac79d6)
  • cache:clear command (#487) (c1f6cc4)
  • use directories instead of file names to allow default server config setup (#479) (140f9eb)
  • add output to schedule:run command (#489) (c57b1ac)
  • allow hard-coded uris in router::touri (#490) (72e88c8)
  • add autowire/autodiscovery/auto-initialization of interfaces to classes (#501) (1572122)
  • array helper::map-to (#505) (e4bb059)
  • authenticator (#493) (5017c5f)
  • adds enctype within the form component (#500) (7c4f12d)
  • str match (#527) (ce899cd)
  • str regex functions (#528) (672ea02)
  • allow object to define how they are mapped to array (#532) (19d001b)

🐛 Bug fixes

  • console: support default parameter on textbox component (#518) (3c86f8e)
  • view: join generic elements with an empty string (3ad5461)
  • Missing descriptions in composer files (5c28483)
  • package validation reading the license from composer files (3701b64)
  • view renderer bug fixes (#439) (d60d26f)
  • view renderer bug fixes (#440) (6a85ef8)
  • improved error handling for warnings and deprecations (#443) (1e7ad4d)
  • response sender improvements for download and file responses (#447) (3132bed)
  • extra check for existing file (#455) (f466b7d)
  • properly detect application (#456) (ee84b94)
  • view component attribute fixes (#459) (4622298)
  • package dependencies (#461) (e1e8470)
  • dependency loop between kernel and event-bus (#475) (53a9c86)
  • rename console component interfaces (#476) (d96f98e)
  • database component tests (#477) (02a85e1)
  • typo in readme (#473) (df14709)
  • handle invalid discovery cache (#492) (bc44eb9)
  • validation referer (#511) (a3710a8)
  • datetime caster with datetime object (#514) (e361f26)
  • static generate error handling (#529) (02b4db8)

Maintenance

  • phpunit fixes (#436) (759134f)
  • tag console highlighter (#437) (b7c5332)
  • update console readme (#444) (7c6f1b0)