<?php
class counter
{
	var $countNumber;
	var $fileResorce;
	
	//カウンターを実行する
	function doCount()
	{
		$this->openFile();
		$this->lockFile();
		$this->getNumber();
		$this->updateNumber();
		$this->writeFile();
		$this->closeFile();
	}
	
	//ファイルを開く
	function openFile()
	{
		$fp = fopen("log.txt","r+");
		return $this->fileResorce = $fp;
	}
	
	//ファイルをロックする
	function lockFile(){
		flock($this->fileResorce, LOCK_EX);
	}
	
	//ファイルからデータを取得する
	function getNumber()
	{
		return $this->countNumber = fgets($this->fileResorce, 64);
	}
	
	//カウントする
	function updateNumber()
	{
		return $this->countNumber++;
	}
	
	//ファイルに書き込む
	function writeFile()
	{
		rewind($this->fileResorce);
		fwrite($this->fileResorce, $this->countNumber);
	}
	//ファイルを閉じる
	function closeFile()
	{
		fclose($this->fileResorce);
	}
	
	//数を表示する
	function displayCount()
	{
		echo $this->countNumber;
	}
}
?>