mb-tec / doctrineextensions
此包已被 弃用 且不再维护。未建议替代包。
Doctrine 2 的一系列扩展,添加了对 MySQL 和 Oracle 中可用的一些额外查询函数的支持。
v1.0.19
2017-10-02 17:29 UTC
Requires
- php: >=5.3.2
Requires (Dev)
- doctrine/orm: ~2.1
- nesbot/carbon: *
- phpunit/phpunit: ~4.5
- symfony/yaml: ~2.6
- zf1/zend-date: ~1.12
- zf1/zend-registry: ~1.12
Suggests
- nesbot/carbon: Alternative to DateTime
- zf1/zend-date: Alternative to DateTime
README
Doctrine 2 的一系列扩展,添加了对 MySQL、Oracle、Sqlite 和 PostgreSQL 中可用的一些额外查询函数的支持。
| 数据库 | 函数 |
|---|---|
| MySQL | ACOS, AES_DECRYPT, AES_ENCRYPT, ANY_VALUE, ASCII, ASIN, ATAN, ATAN2, BINARY, BIT_COUNT, BIT_XOR, CEIL, CHAR_LENGTH, COLLATE, CONCAT_WS, CONVERT_TZ, COS, COT, COUNTIF, CRC32, DATE, DATE_FORMAT, DATEADD, DATEDIFF, DATESUB, DAY, DAYNAME, DAYOFWEEK, DAYOFYEAR, DEGREES, DIV, EXP, EXTRACT, FIELD, FIND_IN_SET, FLOOR, FROM_UNIXTIME, GREATEST, GROUP_CONCAT, HEX, HOUR, IFELSE, IFNULL, LAST_DAY, LEAST, LOG, LOG10, LOG2, LPAD, MATCH, MD5, MINUTE, MONTH, MONTHNAME, NOW, NULLIF, PI, POWER, QUARTER, RADIANS, RAND, REGEXP, REPLACE, ROUND, RPAD, SECOND, SECTOTIME, SHA1, SHA2, SIN, SOUNDEX, STD, STDDEV, STRTODATE, STR_TO_DATE, SUBSTRING_INDEX, TAN, TIME, TIMEDIFF, TIMESTAMPADD, TIMESTAMPDIFF, TIMETOSEC, UNHEX, UNIX_TIMESTAMP, UTC_TIMESTAMP, UUID_SHORT, VARIANCE, WEEK, WEEKDAY, YEAR, YEARMONTH, YEARWEEK |
| Oracle | DAY, LISTAGG, MONTH, NVL, TO_CHAR, TO_DATE, TRUNC, YEAR |
| Sqlite | DATE, MINUTE, HOUR, DAY, WEEK, WEEKDAY, MONTH, YEAR, STRFTIME, DATE_FORMAT*, CASE WHEN THEN ELSE END, IFNULL, REPLACE, ROUND |
| PostgreSQL | TO_DATE, TO_CHAR, AT_TIME_ZONE, COUNT_FILTER, STRING_AGG |
注意:Sqlite 日期函数实现为
strftime(format, value)。Sqlite 只支持 最常见的格式,所以date_format将 mysql 替换为最接近的 sqlite 替换。这意味着date_format(field, '%b %D %Y') -> Jan 1st 2015变为strftime('%m %d %Y', field) -> 01 01 2015。
安装
要安装此库,请运行以下命令,您将获得最新版本
composer require beberlei/DoctrineExtensions
如果您想运行测试
vendor/bin/phpunit
要包含 DoctrineExtensions,您应该启动一个自动加载器,例如
<?php $classLoader = new \Doctrine\Common\ClassLoader('DoctrineExtensions', '/path/to/extensions'); $classLoader->register();
您可以在 config/mysql.yml 中找到使用额外的 MySQL 函数的示例配置。
旧版本
如果您仍在使用 0.1–0.3 中可用的 Paginator、LargeCollections、Phing、PHPUnit 或 Versionable 行为,欢迎使用 0.3 – 但请注意,此功能现在已包含在 Doctrine 核心中,不再支持此库,并在 1.0 中已删除。
虽然会考虑为该功能的 bug 修复提出拉取请求,但鼓励您切换实现并升级到 ~1.0。