mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
FIX PDO transaction in PHP 8, add GitHub Actions CI (#10360)
This commit is contained in:
parent
ad581d9673
commit
c80e10f892
18
.github/workflows/ci.yml
vendored
Normal file
18
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
# Every Tuesday at 2:20pm UTC
|
||||
schedule:
|
||||
- cron: '20 14 * * 2'
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
uses: silverstripe/gha-ci/.github/workflows/ci.yml@v1
|
||||
with:
|
||||
# Turn phpcoverage off because it causes a segfault
|
||||
phpcoverage_force_off: true
|
||||
# There is a strange behat.yml file in framework that runs behat tests in the admin module
|
||||
endtoend: false
|
15
.github/workflows/keepalive.yml
vendored
Normal file
15
.github/workflows/keepalive.yml
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
name: Keepalive
|
||||
|
||||
on:
|
||||
# The 4th of every month at 10:50am UTC
|
||||
schedule:
|
||||
- cron: '50 10 4 * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
keepalive:
|
||||
name: Keepalive
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Keepalive
|
||||
uses: silverstripe/gha-keepalive@v1
|
@ -1,6 +1,6 @@
|
||||
## Silverstripe Framework
|
||||
|
||||
[![Build Status](https://api.travis-ci.com/silverstripe/silverstripe-framework.svg?branch=4)](https://travis-ci.com/silverstripe/silverstripe-framework)
|
||||
[![CI](https://github.com/silverstripe/silverstripe-framework/actions/workflows/ci.yml/badge.svg)](https://github.com/silverstripe/silverstripe-framework/actions/workflows/ci.yml)
|
||||
[![Build Docs](https://github.com/silverstripe/silverstripe-framework/workflows/Build%20Docs/badge.svg)](https://docs.silverstripe.org/)
|
||||
[![Latest Stable Version](https://poser.pugx.org/silverstripe/framework/version.svg)](https://www.silverstripe.org/stable-download/)
|
||||
[![Latest Unstable Version](https://poser.pugx.org/silverstripe/framework/v/unstable.svg)](https://packagist.org/packages/silverstripe/framework)
|
||||
|
@ -35,7 +35,7 @@
|
||||
"psr/container": "^1",
|
||||
"silverstripe/config": "^1@dev",
|
||||
"silverstripe/assets": "^1@dev",
|
||||
"silverstripe/vendor-plugin": "^1.4",
|
||||
"silverstripe/vendor-plugin": "^1.6",
|
||||
"sminnee/callbacklist": "^0.1",
|
||||
"swiftmailer/swiftmailer": "^6.2",
|
||||
"symfony/cache": "^3.4 || ^4.0",
|
||||
|
@ -7,6 +7,7 @@ use SilverStripe\Dev\Deprecation;
|
||||
use PDO;
|
||||
use PDOStatement;
|
||||
use InvalidArgumentException;
|
||||
use PDOException;
|
||||
|
||||
/**
|
||||
* PDO driver database connector
|
||||
@ -558,7 +559,15 @@ class PDOConnector extends DBConnector implements TransactionManager
|
||||
}
|
||||
|
||||
$this->inTransaction = false;
|
||||
return $this->pdoConnection->rollBack();
|
||||
try {
|
||||
return $this->pdoConnection->rollBack();
|
||||
} catch (PDOException $e) {
|
||||
// A PDOException will be thrown if there is no active transaction in PHP 8+
|
||||
// Prior to PHP 8, this failed silently, so returning false here is backwards compatible
|
||||
// Note: $this->inTransaction may not match the 'in-transaction' state in PDO
|
||||
// https://www.php.net/manual/en/pdo.rollback.php
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function transactionDepth()
|
||||
|
Loading…
Reference in New Issue
Block a user