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