5.0 Roadmap
othercorey edited this page Jul 12, 2023
·
44 revisions
- PHP 8.1+ (enumerations, read-only properties)
- Add native type hints to method parameters and returns except null|void and external/PSR interfaces.
- Add native type hints for properties where possible
-
Normalize passing $config array to initialize() and document that it is unmerged.(rejected) -
Change Behaviors to accept any RepositoryInterface not just Table (https://github.com/cakephp/cakephp/issues/11861) (https://github.com/cakephp/cakephp/pull/14499)(rejected)
- Remove all deprecated code from 4.x
- Fix array type requirement for Event data (https://github.com/cakephp/cakephp/issues/14482)
-
Cleanup of return types around nullable: Revert the revert https://github.com/cakephp/cakephp/pull/12365File
andFolder
have been removed in 5.x -
This is unnecessary sinceobject|false
=>object|null
so that also?
nullable typehinting becomes possible. Refs https://github.com/cakephp/cakephp/pull/13816false
can now be used as return type. - Stricter config getters ( https://github.com/cakephp/cakephp/pull/13780 )
- Find clean way to separate query options and custom finder arguments. https://github.com/cakephp/cakephp/issues/12690 https://github.com/cakephp/cakephp/pull/12787 (Implemented in 5.0)
- Logging inside commands should output to stdout without interrupting other custom logging contexts.
- Component::shutdown() callback rename to ::afterFilter() to match controller.
- Fix up CLI exception code ( https://github.com/cakephp/cakephp/pull/13588 )
- Remove the
__call()
magic method and ability to implicitly iterate\Cake\Database\Query
instance. It's a major cause of confusion for new users. #15665 - Add 'Time' only type #14148
- Change Driver::quote() typehints to (string, int) to match PDO::quote().
- Revisit $when = true default ( https://github.com/cakephp/cakephp/pull/14370 )
-
Merge the SqlGeneratorInterface with TableSchemaInterface(rejected for 5.0)
- Fix up domain names from multi-namespace plugin names (
cake_d_c/users
=>cake_d_c_users
and the same for the file name then to match this) to not collide with other non plugin domains. (https://github.com/cakephp/docs/pull/6585)
- Remove the PHPUnit listener. Leaving only the extension behind.
- Fold fixture record loading into the Fixture strategies so that loading/resetting are co-located and can be swapped if necessary.
- addHelpers() instead of setHelpers() for merge, setHelpers without 2nd arg. ( https://github.com/cakephp/cakephp/pull/14435 )
- Remove engines from NumberHelper and TextHelper.
- getTypeName() into get_debug_type() (https://github.com/cakephp/cakephp/pull/15686)
- Rename
FrozenTime
andFrozenDate
toDateTime
andDate
. - Add native types to Entity implementations. Properties like
_hidden
and_virtual
will need native types applied. See this pull request - Replace Controller::loadModel() with Controller::fetchTable()
- Replace Command::loadModel() with Command::fetchTable()
- Add a return type to Command::execute() and Command::run().
- Add a return value to Command subclasses that have a null return. We should replace the null/void return with
return static::CODE_SUCCESS
. - Rename
Cake\ORM\Query
toCake\ORM\SelectQuery
pull request. - Replace Query order() with orderBy(), orderAsc() with orderByAsc() and orderDesc() with orderByDesc()
- Replace Query group() with groupBy()
- Replace WindowInterface order() with orderBy()
- Create rules for updating methods dropped in Chronos 3 https://github.com/cakephp/chronos/issues/335