Skip to content

Releases: tempestphp/tempest-framework

v1.2.0

07 Jul 11:55

Choose a tag to compare

🚨 Breaking changes

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

🚀 Features

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

🚜 Refactor

  • filesystem: switch to the recommended azure blog storage lib (#1363) (e096186)

⚡ Performance

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

v1.1.0

05 Jul 06:09

Choose a tag to compare

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

🐛 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

  • core: consistently use json and filesystem utils (#1330) (11704f2)

⚡ Performance

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

🧪 Tests

  • intl: force en-US locale to prevent locale-dependent failures (#1347) (ef25aa4)

v1.0.3

30 Jun 07:39

Choose a tag to compare

⚡ Performance

  • perf(discovery): improve discovery performance by excluding specific directories (#1331) (1d9b835)

v1.0.2

30 Jun 06:25

Choose a tag to compare

This release only contains an improvement to our automated release process.

v1.0.1

27 Jun 12:29

Choose a tag to compare

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

v1.0.0

27 Jun 08:50

Choose a tag to compare

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.

Read about what Tempest is on our blog

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

🚜 Refactor

v1.0.0-beta.1

07 May 09:41

Choose a tag to compare

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

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

🚜 Refactor

  • console: improve console output consistency (#1102) (e06dd63)
  • console: improve routes:list formatting (#1145) (c288d70)
  • container: rename #[Lazy] to #[Proxy] (#1180) (afcfb4d)
  • core: rename DoNotDiscover to SkipDiscovery (#1142) (781120c)
  • database: remove DatabaseModel interface (#1076) (04b5bd6)
  • database: rename TableName to Table (#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)
  • ...
Read more

v1.0.0-alpha.6

24 Mar 08:42

Choose a tag to compare

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

🚜 Refactor

v1.0.0-alpha.5

24 Feb 07:40

Choose a tag to compare

🚀 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)
  • 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: 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)

🚜 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

25 Nov 12:45
2483e64

Choose a tag to compare

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

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

🚜 Refactor

  • console: exit codes as enum + int (#741) (b014f40)
  • console: update make:controller command parameters to be simpler (#761) (9835d2e)
  • routing: split route construction (#666) (32bf4d0)
  • support: convert PathHelper to immutable class (#743) (0dacd10)
  • update ModelQueryBuilder generics to support static analysis (cea122e)
  • replace ramsey/uuid with symfony/uid (#724) (8e6b650)

⚡ Performance

...

Read more