diff --git a/.github/workflows/acceptance.yml b/.github/workflows/acceptance.yml index 6fd2287..3eff1c1 100644 --- a/.github/workflows/acceptance.yml +++ b/.github/workflows/acceptance.yml @@ -3,141 +3,91 @@ name: Acceptance on: [push, pull_request] jobs: - test-7-2: - runs-on: ubuntu-latest - name: Test PHP 7.2 - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up PHP 7.2 - uses: shivammathur/setup-php@v2 - with: - php-version: '7.2' - - name: Composer - run: make deps-install - - name: Test - run: make test - test-7-3: + test: + strategy: + matrix: + php-versions: ["7.4", "8.0", "8.1", "8.2", "8.3", "8.4"] runs-on: ubuntu-latest - name: Test PHP 7.3 + name: Unit test steps: - name: Checkout - uses: actions/checkout@v3 - - name: Set up PHP 7.3 + uses: actions/checkout@v4 + - name: Set up PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.3' - - name: Composer - run: make deps-install - - name: Test - run: make test - - test-7-4: - runs-on: ubuntu-latest - name: Test PHP 7.4 - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up PHP 7.4 - uses: shivammathur/setup-php@v2 - with: - php-version: '7.4' - - name: Composer - run: make deps-install - - name: Test - run: make test - - test-8-0: - runs-on: ubuntu-latest - name: Test PHP 8.0 - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up PHP 8.0 - uses: shivammathur/setup-php@v2 - with: - php-version: '8.0' - - name: Composer - run: make deps-install - - name: Test - run: make test - - test-8-1: - runs-on: ubuntu-latest - name: Test PHP 8.1 - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up PHP 8.1 - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: pdo, pdo-sqlite - - name: Composer - run: make deps-install - - name: Test - run: make test - - test-8-2: - runs-on: ubuntu-latest - name: Test PHP 8.2 - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up PHP 8.2 - uses: shivammathur/setup-php@v2 - with: - php-version: '8.2' - - name: Composer - run: make deps-install - - name: Test - run: make test - - test-8-3: - runs-on: ubuntu-latest - name: Test PHP 8.3 - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up PHP 8.3 - uses: shivammathur/setup-php@v2 + php-version: ${{ matrix.php-versions }} + coverage: none + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Get composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + - name: Cache dependencies + uses: actions/cache@v4 with: - php-version: '8.3' - - name: Composer - run: make deps-install + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install dependencies + run: composer install --prefer-dist - name: Test - run: make test + run: vendor/bin/phpunit cs-check: runs-on: ubuntu-latest name: Code standard steps: - name: Checkout - uses: actions/checkout@v3 - - name: Set up PHP 8.2 + uses: actions/checkout@v4 + - name: Set up PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.2' - - name: Composer - run: make deps-install + php-version: "8.3" + coverage: none + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Get composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install dependencies + run: composer install --prefer-dist - name: Code standard - run: make cs-check + run: vendor/bin/phpcs --standard=PSR1,PSR12 --encoding=UTF-8 --report=full --colors src tests coverage: runs-on: ubuntu-latest name: Code coverage steps: - name: Checkout - uses: actions/checkout@v3 - - name: Set up PHP 8.0 + uses: actions/checkout@v4 + - name: Set up PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.0' - extensions: xdebug - - name: Composer - run: make deps-install - - name: Code coverage + php-version: "8.3" + coverage: xdebug + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Get composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + - name: Cache dependencies + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install dependencies + run: composer install --prefer-dist + - name: Code coverage build + run: XDEBUG_MODE=coverage vendor/bin/phpunit --coverage-clover build/logs/clover.xml + - name: Code coverage upload env: COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: make coverage + run: vendor/bin/php-coveralls -v diff --git a/README.md b/README.md index 69fad5f..a634491 100644 --- a/README.md +++ b/README.md @@ -143,4 +143,5 @@ Phrity\Util\ErrorHandler { | Version | PHP | | | --- | --- | --- | +| `1.1` | `^7.4\|^8.0` | Some improvements | | `1.0` | `^7.2\|^8.0` | Initial version | diff --git a/composer.json b/composer.json index d2f78a7..6b2877c 100644 --- a/composer.json +++ b/composer.json @@ -1,33 +1,33 @@ { - "name": "phrity/util-errorhandler", - "type": "library", - "description": "Inline error handler; catch and resolve errors for code block.", - "homepage": "https://phrity.sirn.se/util-errorhandler", - "keywords": ["error", "warning"], - "license": "MIT", - "authors": [ - { - "name": "Sören Jensen", - "email": "sirn@sirn.se", - "homepage": "https://phrity.sirn.se" + "name": "phrity/util-errorhandler", + "type": "library", + "description": "Inline error handler; catch and resolve errors for code block.", + "homepage": "https://phrity.sirn.se/util-errorhandler", + "keywords": ["error", "warning"], + "license": "MIT", + "authors": [ + { + "name": "Sören Jensen", + "email": "sirn@sirn.se", + "homepage": "https://phrity.sirn.se" + } + ], + "autoload": { + "psr-4": { + "": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "": "tests/" + } + }, + "require": { + "php": "^7.4 | ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.0 | ^10.0 | ^11.0", + "php-coveralls/php-coveralls": "^2.0", + "squizlabs/php_codesniffer": "^3.5" } - ], - "autoload": { - "psr-4": { - "": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "": "tests/" - } - }, - "require": { - "php": "^7.2|^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.0|^9.0|^10.0", - "php-coveralls/php-coveralls": "^2.0", - "squizlabs/php_codesniffer": "^3.5" - } } diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 8d0b5f2..7a77f4f 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,15 +1,13 @@ - - - - - ./tests/ - - - - - - ./src/ - - - \ No newline at end of file + + + + ./src/ + + + + + ./tests/ + + + diff --git a/src/Phrity/Util/ErrorHandler.php b/src/Phrity/Util/ErrorHandler.php index 7eb42bb..ba38462 100644 --- a/src/Phrity/Util/ErrorHandler.php +++ b/src/Phrity/Util/ErrorHandler.php @@ -60,8 +60,9 @@ public function with(callable $callback, $handling = null, int $levels = E_ALL) $result = $callback(); } catch (ErrorException $e) { $error = $this->handle($handling, $e); + } finally { + $this->restore(); } - $this->restore(); return $error ?: $result; }