質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

6402閲覧

PHP開発において、現在時刻を未来日にしてデバッグをする方法はありますでしょうか?

funaC

総合スコア58

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

2グッド

2クリップ

投稿2014/02/06 02:31

ソーシャルゲームなどを開発しているとイベントとか時刻にシビアな実装が目立ってきます。
それらをDEBUGするときに困るのが未来日にする方法です。

新規実装部分だけのDEBUGであれば開発時にテストドリブンな実装をしてメソッドにDEBUG用の仕掛けをすることができるので未来日対応も比較的簡単にできます。
しかし、既存の機能の場合、既に埋め込まれた時間計算のロジックを全て手を加える必要が出てくるため面倒になってしまいます。
既存の実装を何も意識することなく、未来日に設定することができるツールかソースコードがあれば教えていただきたいです。

こちらの開発環境はLAMP環境です。
以上、よろしくお願いいたします。

MIURA_Yasuyuki, palm-t👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

php-timecopというものがgithubで公開されています。環境がLinuxもしくはMACであればこれをインストールすれば簡単に未来日に変更することができます。
以下のURLにありますようにライセンスはMITです。
https://github.com/hnw/php-timecop

以下にCentOS5.8を使った簡単なインストール手順を示しておきます。
==== ここから ====

lang

1[root@localhost ~]# cd /usr/local/src/ 2[root@localhost src]# git clone https://github.com/hnw/php-timecop.git 3[root@localhost src]# cd php-timecop 4[root@localhost php-timecop]# phpize 5[root@localhost php-timecop]# ./configure 6[root@localhost php-timecop]# make 7[root@localhost php-timecop]# make install 8・・・(省略) 9Installing shared extensions: /usr/lib64/php/modules/ 10このディレクトリの中にtimecop.soファイルが存在することを確認します。 11後は、php.iniのmodule追加設定の所にこれを指定します。 12[root@localhost ~]# vim /etc/php.ini 13----------- 14;;;;;;;;;;;;;;;;;;;;;; 15; Dynamic Extensions ; 16;;;;;;;;;;;;;;;;;;;;;; 17 18; If you wish to have an extension loaded automatically, use the following 19; syntax: 20; 21; extension=modulename.extension 22; 23; For example 24; 25; extension=msql.so 26; 27; ... or with a path: 28; 29; extension=/path/to/extension/msql.so 30; 31; If you only provide the name of the extension, PHP will look for it in its 32; default extension directory. 33extension=timecop.so ←この部分を追記

あとは、apacheを再起動してphpinfo関数でモジュールがenableになっていることを確認します。

lang

1[root@localhost ~]# /etc/init.d/httpd restart 2[root@localhost ~]# php -r "echo phpinfo();" | grep timecop 3timecop 4timecop => enabled 5timecop.func_override => 1 => 1 6timecop.sync_request_time => 1 => 1 7

==== ここまで ====

投稿2014/03/18 00:39

whiskey235

総合スコア169

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問