colopl/colopl_timeshifter 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

colopl/colopl_timeshifter

最新稳定版本:v1.2.1

Composer 安装命令:

composer require colopl/colopl_timeshifter

包简介

Current time modification extension wrapper library.

README 文档

README

This extension changes the current time in PHP to a specified modified value.

Warning

DO NOT USE THIS EXTENSION IN ANY PRODUCTION ENVIRONMENT!!!

At present, this extension is effective for the following functions:

  • Any built-in PHP processing that handles the current time (ext-date)
  • NOW() and many statements in MySQL or compatible DBMS via PDO
  • Server environment variables for request time (e.g. S_SERVER['REQUEST_TIME'])

Setup

$ git clone --recursive "https://github.com/colopl/php-colopl_timesifter.git" "colopl_timeshifter"
$ cd "colopl_timeshifter/ext"
$ phpize
$ ./configure --with-php-config="$(which php-config)"
$ make -j$(nproc)
$ TEST_PHP_ARGS="-q --show-diff" make test
$ sudo make install

And enable extension.

$ sudo echo "extension=colopl_timesfhiter" > "$(php-config --ini-dir)/99-colopl_timeshifter.ini"
$ php -m | grep colopl_timeshifter
colopl_timeshifter

PHP Library (recommended)

$ composer require --dev "colopl/colopl_timeshifter"

And use Colopl\ColoplTimeShifter\Manager class.

INI directives

colopl_timeshifter.is_hook_pdo_mysql

Type: bool Default: true Run-time switchable: No (PHP_INI_SYSTEM)

Enables or disables the hook into \PDO::__construct to swap the current time in MySQL function and keywords (e.g. NOW(), CURRENT_TIMESTAMP)

colopl_timeshifter.is_hook_request_time

Type: bool Default: true Run-time switchable: No (PHP_INI_SYSTEM)

Selects whether to hook the $_SERVER superglobals REQUEST_TIME and REQUEST_TIME_FLOAT.

colopl_timeshifter.usleep_sec

Type: int (int<1, max>) Defalt: 1 Run-time switchable: Yes (PHP_INI_ALL)

For a string representing time, set the number of wait microseconds to check whether it is absolute or relative time.

colopl_timeshifter.is_restore_per_request

Type: bool Default: false Run-time switchable: Yes (PHP_INI_ALL)

Sets whether or not to unhook at the end of the request.

Functions

Tip

Install colopl/colopl_timeshifter Composer package and use Colopl\ColoplTimeShifter\Manager support class instead.

\Colopl\ColoplTimeShifter\register_hook(\DateInterval $interval): bool

Sets the time difference to be subtracted from the current time.

If the hook succeeds, it returns true; otherwise, it returns false.

\Colopl\ColoplTimeShifter\unregister_hook(): void

Breaks the hook.

\Colopl\ColoplTimeShifter\is_hooked(): bool

Check to see if the hook is done. Returns true if the hook is done, false otherwise.

License

PHP License 3.01

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 7
  • Forks: 3
  • 开发语言: C

其他信息

  • 授权协议: PHP-3.01
  • 更新时间: 2024-07-01