Skip to content

Commit a50dcd6

Browse files
authored
BREAKING CHANGE: upgrade to PHP 8.0 and PHP-Casbin 4.0 (#6)
1 parent d3c171a commit a50dcd6

8 files changed

+40
-48
lines changed

.github/workflows/build.yml

+3-5
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@ jobs:
2323
strategy:
2424
fail-fast: true
2525
matrix:
26-
php: [ 7.2, 7.3,7.4,8.0 ]
26+
php: [8.1, 8.2, 8.3]
2727

28-
stability: [ prefer-lowest, prefer-stable ]
29-
30-
name: PHP ${{ matrix.php }} - ${{ matrix.stability }}
28+
name: PHP ${{ matrix.php }}
3129

3230
steps:
3331
- name: Checkout code
@@ -57,7 +55,7 @@ jobs:
5755
COVERALLS_PARALLEL: true
5856
COVERALLS_FLAG_NAME: ${{ runner.os }} - ${{ matrix.php }}
5957
run: |
60-
composer global require php-coveralls/php-coveralls:^2.4
58+
composer global require php-coveralls/php-coveralls:^2.7
6159
php-coveralls --coverage_clover=build/logs/clover.xml -v
6260
6361
upload-coverage:

composer.json

+4-6
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,17 @@
2222
"test": "vendor/bin/phpunit"
2323
},
2424
"require": {
25-
"php": ">=7.2",
26-
"codeigniter4/framework": "^4",
27-
"casbin/casbin": "^3.21.6",
28-
"casbin/psr3-bridge": "^1.1"
25+
"php": "^8.1",
26+
"codeigniter4/framework": "^4.5",
27+
"casbin/casbin": "^4.0.2"
2928
},
3029
"autoload": {
3130
"psr-4": {
3231
"Casbin\\CodeIgniter\\": "src/"
3332
}
3433
},
3534
"require-dev": {
36-
"phpunit/phpunit": "^7.0|^8.0|^9.0",
37-
"php-coveralls/php-coveralls": "^2.1"
35+
"phpunit/phpunit": "^10.0|^11.0"
3836
},
3937
"autoload-dev": {
4038
"psr-4": {

phpunit.xml.dist

+17-12
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
<phpunit bootstrap="vendor/codeigniter4/framework/system/Test/bootstrap.php"
33
backupGlobals="false"
44
colors="true"
5-
convertErrorsToExceptions="true"
6-
convertNoticesToExceptions="true"
7-
convertWarningsToExceptions="true"
85
stopOnError="false"
96
stopOnFailure="false"
107
stopOnIncomplete="false"
@@ -14,15 +11,23 @@
1411
<directory>./tests</directory>
1512
</testsuite>
1613
</testsuites>
17-
<filter>
18-
<whitelist processUncoveredFilesFromWhitelist="true">
19-
<directory suffix=".php">./src</directory>
20-
</whitelist>
21-
</filter>
22-
<logging>
23-
<log type="coverage-clover" target="build/logs/clover.xml"/>
24-
<log type="coverage-html" target="build/html"/>
25-
</logging>
14+
15+
<coverage includeUncoveredFiles="true"
16+
pathCoverage="false"
17+
ignoreDeprecatedCodeUnits="true"
18+
disableCodeCoverageIgnore="true">
19+
<report>
20+
<clover outputFile="build/logs/clover.xml"/>
21+
<html outputDirectory="build/html" lowUpperBound="50" highLowerBound="90"/>
22+
</report>
23+
</coverage>
24+
25+
<source>
26+
<include>
27+
<directory>./src</directory>
28+
</include>
29+
</source>
30+
2631
<php>
2732
<env name="app.baseURL" value="http://example.com"/>
2833
<env name="database.tests.hostname" value="127.0.0.1"/>

src/Config/Enforcer.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ class Enforcer extends BaseConfig
4747
// changes whether Casbin will log messages to the Logger.
4848
'enabled' => false,
4949

50-
// Casbin Logger
51-
'logger' => \Casbin\CodeIgniter\Logger::class,
50+
// Casbin Logger, Supported: \Psr\Log\LoggerInterface|string
51+
'logger' => 'logger',
5252
],
5353

5454
'cache' => [

src/Config/Services.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class Services extends BaseService
1515
*
1616
* @return \Casbin\CodeIgniter\EnforcerManager
1717
*/
18-
public static function enforcer(Enforcer $config = null, bool $getShared = true)
18+
public static function enforcer(?Enforcer $config = null, bool $getShared = true)
1919
{
2020
if ($getShared) {
2121
return static::getSharedInstance('enforcer', $config);

src/EnforcerManager.php

+8-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
use Casbin\Enforcer;
66
use Casbin\Model\Model;
77
use Casbin\Log\Log;
8+
use Casbin\Log\Logger\DefaultLogger;
9+
use Config\Services;
810
use InvalidArgumentException;
911
use Casbin\CodeIgniter\Config\Enforcer as EnforcerConfig;
1012

@@ -75,7 +77,11 @@ protected function resolve($name)
7577
}
7678

7779
if ($logger = $config['log']['logger']) {
78-
Log::setLogger(new $logger());
80+
if (is_string($logger)) {
81+
$logger = new DefaultLogger(Services::$logger());
82+
}
83+
84+
Log::setLogger($logger);
7985
}
8086

8187
$model = new Model();
@@ -92,7 +98,7 @@ protected function resolve($name)
9298
}
9399
}
94100

95-
return new Enforcer($model, $adapter, $config['log']['enabled']);
101+
return new Enforcer($model, $adapter, $logger, $config['log']['enabled']);
96102
}
97103

98104
/**

src/Logger.php

-18
This file was deleted.

tests/EnforcerManagerTest.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22

33
namespace Casbin\CodeIgniter\Tests;
44

5-
use CodeIgniter\Test\CIDatabaseTestCase;
5+
use CodeIgniter\Test\CIUnitTestCase;
6+
use CodeIgniter\Test\DatabaseTestTrait;
67
use Config\Services
78
;
89
use Config\Autoload;
910
use Config\Modules;
1011

11-
class EnforcerManagerTest extends CIDatabaseTestCase
12+
class EnforcerManagerTest extends CIUnitTestCase
1213
{
14+
use DatabaseTestTrait;
15+
1316
protected function createApplication()
1417
{
1518
$app = parent::createApplication();

0 commit comments

Comments
 (0)