Releases: tempestphp/tempest-framework
Releases · tempestphp/tempest-framework
v1.2.0
🚨 Breaking changes
- database: [breaking] query builder refactor (#1367) (21ca22c)
- database: [breaking] remove
ModelDefinitionin favor orModelInspector(#1372) (7e8bfc6)
🚀 Features
- database: add
havingandgroupByin select query builder (#1370) (6bf5c06) - view: add view comments (#1356) (c61519b)
🐛 Bug fixes
- database: throw
QueryWasInvalidon 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)
🚜 Refactor
⚡ Performance
v1.1.0
🚀 Features
- database: display sqlite path in
aboutcommand (#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)
🐛 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)
🚜 Refactor
⚡ Performance
- core: improve overall discovery performance (#1333) (0199fa3)
- core: improve config loading performance (#1341) (d28e896)
🧪 Tests
v1.0.3
v1.0.2
This release only contains an improvement to our automated release process.
v1.0.1
v1.0.0
Tempest 1.0 release
After almost 2 years and 656 merged pull requests by 59 contributors, it is finally time to tag the first stable release of Tempest.
🚀 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
aboutcommand (#1226) (25c4aff) - core: add discovery config (#1198) (7b3cc70)
- core: support exception reporting (#1264) (914ed58)
- core: load
localandproductionconfigurations last (#1266) (0306cbd) - database: add
count()helper toIsDatabaseModeltrait (#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
HttpExceptionHandleronly in production (#1220) (f3a21a5) - core: allow discovery:generate to run even when full caching is enabled (#1223) (1b06332)
- core: display clean version in
aboutcommand (#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
aboutcommand (#1258) (076653a) - database: postgres support (#1259) (f34ad57)
- database: support semicolons in queries (#1262) (b110123)
- event-bus: reorder
listenparameters 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_valuesandArr\forget_keysmutable (#1215) (286d9a0) - support: use
Closureinstead ofcallablewhen callingpreg_replace_callback(#1231) (ce48368) - support: support more
to_snake_caseedge 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:
InvalidClosingTagshould ignore commented out code attributes (#1288) (3892651) - vite: ignore missing
.gitignoreduring 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)
🚜 Refactor
- console: update
OutputModeenum casing (#1233) (a4fa4a6) - core: move internal storage to project root (#1285) (a3afdc7)
- database: improve data mapping and add select()->join() (#1244) (9c390ea)
- http: improve session handling (#1293) (f4da1bd)
- intl: move currency enum to
tempest/intl(#1312) (5755f80) - router: improve exception handling (#1263) (86a28c5)
- router: refactor router logic to middleware (#1307) (c17719b)
- support: clarify
hasandcontainsmethods (#1296) (7597029) - consistent exception naming (#1308) (07873ea)
v1.0.0-beta.1
🚀 Features
- console: add
make:migrationcommand (#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:showcommand (#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
HasConditionsto query builders (#1154) (619dd11) - database: add
Countquery 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
stringandarrayfrom 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_arraytomap_iterable(#1071) (1eaf65e) - support: support
$defaulton arrayfirstandlastmethods (#1096) (0d93283) - support: add
removeValuesto array utils (#1204) (3209379) - view: add
view:clearcommand (#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)
🐛 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
$varfrom beingnulled 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)
🚜 Refactor
- console: improve console output consistency (#1102) (e06dd63)
- console: improve
routes:listformatting (#1145) (c288d70) - container: rename #[Lazy] to #[Proxy] (#1180) (afcfb4d)
- core: rename
DoNotDiscovertoSkipDiscovery(#1142) (781120c) - database: remove
DatabaseModelinterface (#1076) (04b5bd6) - database: rename
TableNametoTable(#1099) (c45ab5a) - filesystem: move from package to functions (#1150) (688b7fe)
- router: improve static page generation console command output (#1100) (f63b8d2)
- support: improve regular expression utilities (#1082) (6af05d5)
- support: improve path utilities (#1080) (82efd60)
- support: change static return type to self for better autocompletion support (#1208) (0e324bf)
- validation: use lite version of
libphonenumber-for-php(#1122) (13f48c2) - ...
v1.0.0-alpha.6
🚨 Breaking changes
- support: [breaking] improve architecture of support utilities (#940) (bb75e81)
- vite: [breaking] automatically discover entrypoints (#1051) (ebe3ef4)
🚀 Features
- console: add
make:commandcommand (#1048) (13bc731) - console: add
make:discoverycommand (#1057) (2bd5814) - console: add
make:generator-commandcommand (#1056) (6992b70) - core: add kernel interface (#924) (2a2c454)
- database: refactor DatabaseConfig interface (#902) (3d3a094)
- database: add a
Virtualattribute to exclude model properties from query builder (#966) (b6252dc) - database: add a
findBymethod 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
MapFromandMapToattributes (#929) (b9a89de) - mapper:
ObjectToArrayMapperuseCaster::serializeto 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
basenameto string utils (#1039) (1d4f563) - support: add
slug,asciiandisAsciito string utils (#1040) (3eb8b35) - support: add
wordsandsentencemethods to string utils (#1042) (b2dfd32) - support: add
groupByto array utils (#1047) (d696826) - support: add
mapFirstToandmapLastToto array utils (#1038) (b188609) - validation: allow
Stringableobjects inIsStringrule (#1029) (bd22988) - view: support dynamic
$slotsandx-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
AlterTableStatementproduce 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)
🚜 Refactor
- core: remove unnecessary set hook from Kernel interface (#959) (5949729)
- core: cleanup internal path helper (#960) (92321b3)
- framework: centralize internal caches (#948) (d80bfa9)
- mapper: mapper improvements (#992) (7cf0517)
- mapper: split caster and serializer into two (#1041) (798d0f4)
- router: make request mapping consistent (#997) (cb9dfc7)
- support: remove duplicate code (#912) (3f8a330)
- support: minor code cleanup (#961) (749e97d)
- support: rename
maptomap_array(#1045) (51dc620) - view: use
is_self_closing_tagwhere relevant (#1035) (4d534fe) - view: is_void_tag (#1037) (f5e38d0)
v1.0.0-alpha.5
🚀 Features
- console: add
make:initializercommand (#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:middlewarecommand (#804) (467c664) - console: several QOL improvements (#847) (05dac5c)
- console: add support for printing hyperlinks (#850) (6f457af)
- console: add
make:configcommand (#863) (d0f3f53) - console: add
make:viewcommand (#864) (a4ab813) - console: add
taskcomponent (#857) (d4dac18) - container: add
hasandunregister(#840) (09ced7a) - core: allow
defercallbacks to receive parameters from container (#798) (42262fa) - core: add
TEMPEST_STARTconstant (#791) (1cabe2d) - core: optionally run
composer upafter 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
rawtoCreateTableStatement(#868) (60dcc28) - database: add explicit relation attributes (#874) (5e4df24)
- database: add closable connection wrapper for PDO connection (#875) (15f8995)
- debug: emit
ItemsDebuggedon debug (#796) (c1be5e6) - framework: extend http testing methods (#790) (dd01ef1)
- framework: overhaul console interactions (#754) (e966ecb)
- log: emit
MessageLoggedwhen logs are written (#795) (50b27c8) - log: configure log paths through env by default (#820) (52f200a)
- support: improve types of
HasConditions(#800) (00aa6ea) - support: add
everytoArrayHelper(#813) (9d39e15) - support: add
appendandprependtoArrayHelper(#833) (7daf3fc) - support: add
HtmlStringclass (#842) (751f0d1) - view: add twig support (#841) (0f47a80)
- vite: add Vite installer (#901) (f9f4167)
- vite: 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:
ClassManipulatornow 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
$tagNameproperty (#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)
🚜 Refactor
- console: improve visual consistency (#888) (31213bc)
- container: mark container exceptions with
ContainerException(#831) (985be66) - core: call invokable classes with
invoke(#799) (15dd7bd) - discovery: extract into a standalone module (#861) (58aadc9)
- http: refactor http route attribute (#793) (1bd7a67)
- router: convert route attributes to plain objects (#822) (88bd85d)
- view: use PHP 8.4 DOM (#787) (d58d028)
- http: move http router to separate package (b7f99a8)
- php8.4: partial update to property hooks (#848) (5abb74b)
- php8.4: general codebase upgrade to latest practices (#883) (f880072)
v1.0.0-alpha.4
🚀 Features
- commandbus: async commands (#685) (bfa1706)
- console: support negative arguments (#660) (1cdf158)
- console: support "no prompt" mode (#661) (687e333)
- console: add
nameparameter to#[ConsoleArgument](#617) (2a73033) - console: ensure
tempest servesupports routes with file extension (#704) (6300617) - console: support dynamic style injections (#703) (6847a79)
- console: accept
BackedEnumas command arguments (#722) (c21f24e) - console: add
make:controllerandmake:modelcommands (#647) (0bdee91) - console: add
make:requestcommand (#730) (987eabf) - console: infer binary path for scheduler (#758) (25e5d81)
- console: add
make:responsecommand (#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
setdata type (#725) (f0db5c8) - filesystem: add new
Filesystemcomponent (#441) (25d4a47) - framework: add
config:showcommand (#732) (2124577) - http: map uploaded files into the request properties (#702) (a97014c)
- http: add
Deleteattribute (#733) (613b884) - http: add
PutandPatchattributes (#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
wrapandunwraptoStringHelper(#693) (a0fffe9) - support: support not specifying a value to
ArrayHelper::popandArrayHelper::unshift(#692) (6a56d94) - support: add
starttoStringHelper(#713) (f719c20) - support: add methods
reduce,chunkandfindKeytoArrayHelper(#720) (c8a31db) - support: add more methods to
ArrayHelperandStringHelper(#721) (bdf5efc) - validation:
ArrayListrule (#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)
🐛 Bug fixes
- commandbus: disallow having two
#[CommandHandler]for the same command (#706) (f3054f9) - console: handle nested
styletags (#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
firstandlaston emptyArrayHelper(#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)
🚜 Refactor
- console: exit codes as enum + int (#741) (b014f40)
- console: update
make:controllercommand parameters to be simpler (#761) (9835d2e) - routing: split route construction (#666) (32bf4d0)
- support: convert
PathHelperto immutable class (#743) (0dacd10) - update
ModelQueryBuildergenerics to support static analysis (cea122e) - replace
ramsey/uuidwithsymfony/uid(#724) (8e6b650)
⚡ Performance
...