-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix compatibility for pre-2.7 DateIntervalType format #3097
Fix compatibility for pre-2.7 DateIntervalType format #3097
Conversation
049aca9
to
82576c6
Compare
|
||
if (substr($value, 0, 1) === '-') { | ||
if ($value[0] === '+' || $value[0] === '-') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The value may be an empty string, so before it gets converted to an interval, we'll have a notice. Probably, the previous approach with substr()
should be used instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Used isset.
Note that using substr('', 1)
produces FALSE, not empty string, but no warning. #php
82576c6
to
0aa75d8
Compare
Back-ported to |
This release fixes unintentional BC breaks: 1. It was impossible to use deprecated fetch modes with PDO-based drivers. 2. An unsupported option passed to the `Column` object prevented subsequent options from being applied. 3. Date interval values stored prior to upgrade to `v2.7.0` were reported as invalid. Total issues resolved: **10** **Backwards Compatibility Fixes:** - [3082: Custom PDO fetch modes and 2.7.0](doctrine#3082) thanks to @corphi - [3088: Fix doctrine#3082: Add BC for PDO-only fetch modes](doctrine#3088) thanks to @corphi - [3089: Don't skip column options.](doctrine#3089) thanks to @andytruong - [3093: When updating to version v2.7 type DateInterval throws errors](doctrine#3093) thanks to @fnagel - [3097: Fix compatibility for pre-2.7 DateIntervalType format](doctrine#3097) thanks to @Majkl578 **Documentation Improvements:** - [3083: Document the correct way of configuring a MariaDB database with serverVersion](doctrine#3083) thanks to @tristanbes - [3084: README: Add 2.7, drop 2.5](doctrine#3084) thanks to @Majkl578 **Continuous Integration Improvements:** - [3085: Tests: remove implicit verbose flag](doctrine#3085) thanks to @Majkl578 - [3090: Add symfony tests listener](doctrine#3090) thanks to @greg0ire - [3095: CI: Add missing listener for MariaDB @ mysqli](doctrine#3095) thanks to @Majkl578 # gpg: directory `/n/.gnupg' created # gpg: new configuration file `/n/.gnupg/gpg.conf' created # gpg: WARNING: options in `/n/.gnupg/gpg.conf' are not yet active during this run # gpg: DBG: locking for `/n/.gnupg/pubring.gpg.lock' done via O_EXCL # gpg: keyring `/n/.gnupg/pubring.gpg' created # gpg: Signature made Sun Apr 8 07:24:49 2018 using RSA key ID 543AE995 # gpg: Can't check signature: public key not found # Conflicts: # .gitignore # lib/Doctrine/DBAL/Driver/OCI8/Driver.php
After #2579 DateIntervalType always expects a sign, which is not there for records created by pre-2.7 DBAL.
Fixes #3093.