The set of extensions to Doctrine 2 that add support for binary functions and bitwise operators available in MySQL, Oracle, PostgreSQL and SQLite.
To install with composer:
composer require jurysosnovsky/doctrine-binaryFor the Symfony please read How to Register custom DQL Functions.
For the standalone usage check out the documentation of Doctrine DQL User Defined Functions.
Most of databases uses common bitwise operators like AND (&) OR (|) NOT(~) etc. All available functions present in config.
There are list of the available bitwise operators:
Bitwise AND (a & b) DoctrineBinary\Common\BitAnd
Bitwise OR (a | b) DoctrineBinary\Common\BitOr
Bitwise XOR (a ^ b) DoctrineBinary\Common\BitXor
Bitwise inversion (~a) DoctrineBinary\Common\BitInversion
Right shift (a >> b) DoctrineBinary\Common\LeftShift
Left shift (a << b) DoctrineBinary\Common\RightShift
There are list of the available binary functions:
BIT_COUNT(expr) DoctrineBinary\Mysql\BitCount
BIT_AND(expr) DoctrineBinary\Mysql\BitAnd
BIT_OR(expr) DoctrineBinary\Mysql\BitOr
BIT_XOR(expr) DoctrineBinary\Mysql\BitXor
There are list of the available bitwise operators:
Bitwise AND (a & b) DoctrineBinary\Common\BitAnd
Bitwise OR (a | b) DoctrineBinary\Common\BitOr
Bitwise exclusive OR (a # b) DoctrineBinary\Postgresql\BitXor
Bitwise NOT (~a) DoctrineBinary\Common\BitInversion
Right shift (a >> b) DoctrineBinary\Common\LeftShift
Left shift (a << b) DoctrineBinary\Common\RightShift
There are list of the available bitwise operators:
Bitwise AND (a & b) DoctrineBinary\Common\BitAnd
Bitwise OR (a | b) DoctrineBinary\Common\BitOr
Bitwise XOR (a ^ b) DoctrineBinary\Common\BitXor
Bitwise NOT (~a) DoctrineBinary\Common\BitInversion
Right shift (a >> b) DoctrineBinary\Common\LeftShift
Left shift (a << b) DoctrineBinary\Common\RightShift
Zero-fill right shift (a >>> b) DoctrineBinary\Oracle\ZeroFill
There are list of the available binary functions:
BitAnd DoctrineBinary\Oracle\BitAnd
BitClear DoctrineBinary\Oracle\BitClear
BitNot DoctrineBinary\Oracle\BitNot
BitOr DoctrineBinary\Oracle\BitOr
BitRotate DoctrineBinary\Oracle\BitRotate
BitSet DoctrineBinary\Oracle\BitSet
BitShift DoctrineBinary\Oracle\BitShift
BitTest DoctrineBinary\Oracle\BitTest
BitXor DoctrineBinary\Oracle\BitXor
There are list of the available bitwise operators:
Bitwise AND (a & b) DoctrineBinary\Common\BitAnd
Bitwise OR (a | b) DoctrineBinary\Common\BitOr
Bitwise NOT (~a) DoctrineBinary\Common\BitInversion
Right shift (a >> b) DoctrineBinary\Common\LeftShift
Left shift (a << b) DoctrineBinary\Common\RightShift
Run tests
composer run testCode style fixes
composer run lintIf you want add something please send pull request.