|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。 单件形式即singleton pattern(属于创立型设计形式),最合适注释的例子就是日记纪录了.
其他形式的php代码今后写好了在分享给人人,但愿可以增添点人人对php中设计形式的概念. 复制内容到剪贴板 代码:
<?php
/*
* 1.Singleton Pattern for the log of application
* 2.建议将类文件名写成class.log.php
* 以便__autoload()主动载入该类
* 3.Author:NoAngels
* 4.E-mail:flare_1023@163.com QQ:82535599
*/
final class log{
#机关函数,日记文件不存在就创立不然就翻开文件以供后续利用
private function __construct(){
if(!$this->__fp = @fopen('application.log', 'ab+')){
$this->__errMsg = '创立或读取日记文件掉败';
$this->__errorHandler();
}
}
#析构函数,释放资本
function __destruct(){
#站位先
}
#静态函数,共同静态变量利用,完成singleton设计形式
static function getInstance(){
if(self::$__instance == NULL){
self::$__instance = new log;
}
return self::$__instance;
}
#类外部毛病处置机制
private function __errorHandler(){
die($this->__errMsg);
}
#将指定内容写入到日记文件中
public function inLog($temp){
if(@fwrite($this->__fp, time()."|||".$temp."\r\n") === FALSE){
$this->__errMsg = '写入到日记文件掉败';
$this->__errorHandler();
}
return;
}
#将日记内容输入,参数默许为1,即默许用类外部办法打印日记,不然可自界说显示体例.两种情形下都前往数组
public function outLog($default = 1){
$outArray = array();
while(!feof($this->__fp)){
$line = fgets($this->__fp);
if(strlen($line) != 0){
$tmp = explode("|||", $line, 2);
$outArray[] = $tmp;
}
}
if($default == 1){
$this->__printLog($outArray);
}
return $outArray;
}
#默许日记输入体例
private function __printLog($arr){
foreach($arr as $temp){
echo '纪录工夫:'.date('Y-m-d H:m:s' , $temp[0]).'<br/>缘由:'.$temp[1].'<br/>';
}
}
#公有变量,初始化每一个变量
static private $__instance = NULL;
private $__fp = NULL;
private $__errMsg = '';
}
?>附上测试文件 代码:
<?php
try{
if(!@mysqli_connect('localhost', 'root', '10d237776')){
throw new Exception('mysql connect failed!');
}
}
catch(Exception $e){
print 'y';
log::getInstance()->inLog($e->getMessage());
}
?>第1步环境配置好了,你算了进了1小步了,那么第2步呢 就是调出第1个程序 一般都是用hello world,视频教程里面我都做了,hello world |
|