From 97b1fe9e8faea1c7a159dd726cfdd5da671dcb07 Mon Sep 17 00:00:00 2001 From: ADmad Date: Thu, 15 Oct 2026 22:44:18 +0530 Subject: [PATCH] Update for CakPHP 6 --- .github/workflows/ci.yml | 4 ++-- README.md | 2 +- composer.json | 11 ++++++---- phpstan.neon | 5 +---- phpunit.xml.dist | 2 +- src/Model/Behavior/OrderlyBehavior.php | 18 +++++++-------- .../Model/Behavior/OrderlyBehaviorTest.php | 22 +++++++++---------- 7 files changed, 32 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b40453..02c8bf2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,9 +13,9 @@ permissions: jobs: testsuite: - uses: ADmad/.github/.github/workflows/testsuite-with-db.yml@master + uses: ADmad/.github/.github/workflows/testsuite-with-db.yml@cake6 secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} cs-stan: - uses: ADmad/.github/.github/workflows/cs-stan.yml@master + uses: ADmad/.github/.github/workflows/cs-stan.yml@cake6 diff --git a/README.md b/README.md index e2bdef6..6f5c704 100644 --- a/README.md +++ b/README.md @@ -97,4 +97,4 @@ Copyright (c) 2015-Present, [Use Muffin][muffin] and licensed under [The MIT Lic [composer]:http://getcomposer.org [mit]:http://www.opensource.org/licenses/mit-license.php [muffin]:http://usemuffin.com -[standards]:http://book.cakephp.org/5/en/contributing/cakephp-coding-conventions.html +[standards]:http://book.cakephp.org/6/en/contributing/cakephp-coding-conventions.html diff --git a/composer.json b/composer.json index f1743d9..b163a48 100644 --- a/composer.json +++ b/composer.json @@ -30,11 +30,12 @@ "source": "https://github.com/usemuffin/orderly" }, "require": { - "cakephp/orm": "^5.0" + "php": ">=8.5", + "cakephp/orm": "^6.0" }, "require-dev": { - "cakephp/cakephp": "^5.0", - "phpunit/phpunit": "^10.5.58 || ^11.5.3 || ^12.4" + "cakephp/cakephp": "^6.0", + "phpunit/phpunit": "^13.2" }, "autoload": { "psr-4": { @@ -52,5 +53,7 @@ "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } - } + }, + "minimum-stability": "dev", + "prefer-stable": true } diff --git a/phpstan.neon b/phpstan.neon index 4ee867a..7c4e018 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,9 +1,6 @@ parameters: - level: 7 - treatPhpDocTypesAsCertain: false + level: 8 bootstrapFiles: - tests/bootstrap.php paths: - src - ignoreErrors: - - identifier: missingType.generics diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 288487c..a088317 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,5 +1,5 @@ - + ./tests/ diff --git a/src/Model/Behavior/OrderlyBehavior.php b/src/Model/Behavior/OrderlyBehavior.php index cdff8e7..4eadf2f 100644 --- a/src/Model/Behavior/OrderlyBehavior.php +++ b/src/Model/Behavior/OrderlyBehavior.php @@ -20,15 +20,15 @@ public function initialize(array $config): void { parent::initialize($config); - $this->_normalizeConfig($config); + $this->normalizeConfig($config); } /** * Add the default order clause to the query as necessary. * - * @param \Cake\Event\EventInterface $event Event - * @param \Cake\ORM\Query\SelectQuery $query Query - * @param \ArrayObject $options Options + * @param \Cake\Event\EventInterface<\Cake\ORM\Table> $event Event + * @param \Cake\ORM\Query\SelectQuery<\Cake\Datasource\EntityInterface|array> $query Query + * @param \ArrayObject $options Options * @param bool $primary Boolean indicating whether it's primary query. * @return void */ @@ -38,7 +38,7 @@ public function beforeFind(EventInterface $event, SelectQuery $query, ArrayObjec return; } - $orders = $this->_config['orders']; + $orders = $this->config['orders']; foreach ($orders as $config) { if ( empty($config['callback']) @@ -55,7 +55,7 @@ public function beforeFind(EventInterface $event, SelectQuery $query, ArrayObjec * @param array $orders Orders config * @return void */ - protected function _normalizeConfig(array $orders): void + protected function normalizeConfig(array $orders): void { unset($orders['className']); @@ -67,8 +67,8 @@ protected function _normalizeConfig(array $orders): void $default = [ 'order' => array_map( - $this->_table->aliasField(...), - (array)$this->_table->getDisplayField(), + $this->table->aliasField(...), + (array)$this->table->getDisplayField(), ), 'callback' => null, ]; @@ -77,7 +77,7 @@ protected function _normalizeConfig(array $orders): void $orders[$key] = $orders[$key] + $default; } - $this->_config = [ + $this->config = [ 'orders' => $orders, ]; } diff --git a/tests/TestCase/Model/Behavior/OrderlyBehaviorTest.php b/tests/TestCase/Model/Behavior/OrderlyBehaviorTest.php index 0f27e48..532d552 100644 --- a/tests/TestCase/Model/Behavior/OrderlyBehaviorTest.php +++ b/tests/TestCase/Model/Behavior/OrderlyBehaviorTest.php @@ -67,16 +67,16 @@ public function testInitialize() $this->Table->removeBehavior('Orderly'); $this->Table->addBehavior('Muffin/Orderly.Orderly', ['callback' => $callback]); + $orders = $this->Table->behaviors()->Orderly->getConfig()['orders']; + $this->assertSame($callback, $orders[0]['callback']); + unset($orders[0]['callback']); + $expected = [ [ 'order' => ['Posts.title'], - 'callback' => $callback, ], ]; - $this->assertEquals( - $expected, - $this->Table->behaviors()->Orderly->getConfig()['orders'], - ); + $this->assertEquals($expected, $orders); $this->Table->removeBehavior('Orderly'); $this->Table->addBehavior('Muffin/Orderly.Orderly', [ @@ -84,20 +84,20 @@ public function testInitialize() ['order' => 'published', 'callback' => $callback], ]); + $orders = $this->Table->behaviors()->Orderly->getConfig()['orders']; + $this->assertNull($orders[0]['callback']); + $this->assertSame($callback, $orders[1]['callback']); + unset($orders[0]['callback'], $orders[1]['callback']); + $expected = [ [ 'order' => ['Posts.title'], - 'callback' => null, ], [ 'order' => 'published', - 'callback' => $callback, ], ]; - $this->assertEquals( - $expected, - $this->Table->behaviors()->Orderly->getConfig()['orders'], - ); + $this->assertEquals($expected, $orders); } public function testBeforeFind()