首页 / 日志 / php实现工厂模式设计系统运行日志记录器
php实现工厂模式设计系统运行日志记录器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php实现工厂模式设计系统运行日志记录器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2805字,纯文字阅读大概需要5分钟。
内容图文
![php实现工厂模式设计系统运行日志记录器](/upload/InfoBanner/zyjiaocheng/595/5cf8ac7f9f2f4a82b0f3b1cf8513a2a8.jpg)
实例类图:
抽象工厂:LogFactory.php
<?php
interface LogFactory{
public function createLog();
}
抽象产品:Logger.php
<?php
interface Logger{
public function writeLog();
}
具体产品:数据库日志记录器 DatabaseLog.php
<?php
require_once "Logger.php";
class DatabaseLog implements Logger
{
public function writeLog(){
echo "数据库记录日志中...";
}
}
具体产品:文件日志记录器 FileLog.php
<?php
require_once "Logger.php";
class FileLog implements Logger
{
public function writeLog(){
echo "文件记录日志中...";
}
}
具体工厂:数据库工厂 DatabaseLogFactory.php
<?php
require_once "LogFactory.php";
require_once "DatabaseLog.php";
class DatabaseLogFactory implements LogFactory
{
public function createLog(){
return new DatabaseLog();
}
}
具体工厂:文件工厂 FileLogFactory.php
<?php
require_once "LogFactory.php";
require_once "FileLog.php";
class FileLogFactory implements LogFactory
{
public function createLog(){
return new FileLog();
}
}
配置文件:用户通过修改配置文件中的工厂名称可以灵活地更换日志记录方式 config.php
<?php
return[
'a'=>'FileLogFactory',
'b'=>'DatabaseLogFactory',
'c'=>'aLogFactory'
];
客户端:Client.php
<?php
class Client{
public static function main(){
$config=require_once "config.php";
foreach ($config as $val){
$file=$val.".php";
if(is_file("./$file")){//config文件里的文件名存在时
include "$val.php";
$file=new $val();
$files=$file->createLog();
echo $files->writeLog();
echo "\n";
}else{
echo "您输入的工厂名未记录,是否创建新的工厂呢?";
fwrite(STDOUT, "请输入‘Y’or‘N’ ");
$lan = trim(fgets(STDIN));//输入的字符
if($lan=='Y'){
//判断输入的工厂名称是否合法
if(substr($val,-10,10)!=='LogFactory'){
echo "您输入的工厂名称有问题,请以LogFactory结尾!";
}else{
$nameA=substr($val,0,strlen($val)-10);//将工厂名切割后的前一部分名字
if($lan=='Y'){
$fileLog=$nameA."Log";//具体产品
$fileFactory=$nameA."LogFactory";//具体工厂
//创建具体产品
$a= fopen($fileLog.".php", "w") or die("Unable to open file!");
//写入文件内容
$fileLogText="<?php
require_once 'Logger.php';
class $fileLog implements Logger
{
public function writeLog(){
echo '$fileLog 工作中';
}
}";
fwrite($a, $fileLogText);//写入
//创建具体工厂
$b= fopen($fileFactory.".php", "w") or die("Unable to open file!");
$fileFactoryText="<?php
require_once \"LogFactory.php\";
require_once \"$fileLog.php\";
class $fileFactory implements LogFactory
{
public function createLog(){
return new $fileLog();
}
}";
fwrite($b,$fileFactoryText);
echo "创建工厂成功\n";
}
}
}elseif ($lan=='N'){
echo "谢谢使用";
}else{
echo "请输入Y OR N 哦";
}
}
}
}
}
Client::main();
说明:客户端会根据配置文件中传入的工厂名做出相应的判断,若工厂名已经存在则进行相应的正确反馈。若不存在则询问客户是否需要新建工厂,客户回答Y则会判断传入的工厂名是否合法(以LogFactory结尾),合法则创建具体工厂和具体产品。不合法则给出提示。用户回答N则退出询问。用户回答其它答案则给出提示后退出询问。具体实现还有许多不足,若有更好的方法望提出。
祝天天开心~
内容总结
以上是互联网集市为您收集整理的php实现工厂模式设计系统运行日志记录器全部内容,希望文章能够帮你解决php实现工厂模式设计系统运行日志记录器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。