- 写过程代码,业务小,基本没什么问题!
- 代码越写越多,很多代码是重复的
- 可读性差,怎么重构?
- MVC
- 把一批类似的函数改成一个类
- 通用的工具类,全静态方法!
- ->设计模式
- ->内聚 耦合 扩展性
- 封装?继承?多态?
https://www.zhihu.com/question/36615154
https://www.zhihu.com/question/439175007
https://www.zhihu.com/question/440179547
//指定图片路径$src = '001.png';//获取图片信息$info = getimagesize($src);//获取图片扩展名$type = image_type_to_extension($info[2],false);//动态的把图片导入内存中$fun = "imagecreatefrom{$type}";$image = $fun('001.png');//指定字体颜色$col = imagecolorallocatealpha($image,255,255,255,50);//指定字体内容$content = 'helloworld';//给图片添加文字imagestring($image,5,20,30,$content,$col);//指定输入类型header('Content-type:'.$info['mime']);//动态的输出图片到浏览器中$func = "image{$type}";$func($image);//销毁图片imagedestroy($image);function imagestring...function imagedestroy...
class Image_class {private $image;private $info;/*** @param $src:图片路径* 加载图片到内存中*/function __construct($src){$info = getimagesize($src);$type = image_type_to_extension($info[2],false);$this -> info =$info;$this->info['type'] = $type;$fun = "imagecreatefrom" .$type;$this -> image = $fun($src);}/*** @param $fontsize: 字体大小* @param $x: 字体在图片中的x位置* @param $y: 字体在图片中的y位置* @param $color: 字体的颜色是一个包含rgba的数组* @param $text: 想要添加的内容* 操作内存中的图片,给图片添加文字水印*/public function fontMark($fontsize,$x,$y,$color,$text){$col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);imagestring($this->image,$fontsize,$x,$y,$text,$col);}/** 输出图片到浏览器中*/public function show(){header('content-type:' . $this -> info['mime']);$fun='image' . $this->info['type'];$fun($this->image);}/*** 销毁图片*/function __destruct(){imagedestroy($this->image);}}//对类的调用$obj = new Image_class('001.png');$obj->fontMark(20,20,30,array(255,255,255,60),'hello');$obj->show();

