はもちくわ

コードについて自分なりの解釈を書いてます。

PHPのクラスでページ滞在時間計測をしようと考える事自体ダメだった

自分のWebページに訪問した人の滞在時間をざっとでもいいから図ってみようと、PHPのクラスのコンストラクタとデストラクタで表現しようと思って、下のようなコードを試しに書いたわけですよ。

//訪問者タイマー
class visitor_timer
{
  public $page_st;
  public $page_ed;

  public function __construct()
  {
    $this -> page_st = New DateTime();
  }

  public function __destruct()
  {
    $this -> page_ed = New DateTime();
    $result = $this -> page_st -> diff($this->page_ed);
    //echo $result -> s;
  }

}

これでインクルードしておいて、ページ内でNewでインスタンスと同時に現在時間がpage_stに入って、インスタンスされたオブジェクトが参照されなくなったらpage_edに時間をいれて、diffで差分をだしたらsで秒数がわかると、、、、ここにDataBaseとつなげて、、、、とあれ?

大きな勘違いでした。。。このオブジェクトが参照されなくなるタイミングがページを離脱する時ならこれでいいですが、、、
PHPはサーバーサイドで、ページ作成してブラウザに渡すので、ページが表示されたときにはすでにコードは終了してますよね(笑)だって差分は0秒でしたもん(笑)

やっぱりJavaScriptしかないかぁ。。。。まあ、私のページはクローラーしか来てないのでどっちでもいいですが(笑)

なので、これはとても意味のないコードということになりますね。

page_edは別にpublicにしなくてもいいですけど、後でつかうかなぁって思ったのでそうしてます。そもそも使えないのでそんなことはどうでもいいですけど。