09 2018 档案
摘要:php桥接模式 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。 示例:当一个信息时根据发送渠道分为:QQ消息、email消息、短信消息等根据消息类型分为:普通、警告、危急等每种消息都有三种类型(普通QQ消息、警告QQ消息、危急QQ消息...),每种情况单独写一个类就需要写九个,如果
阅读全文
摘要:php适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡
阅读全文
摘要:php装饰者模式 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 示例: A、B、C编辑同一篇文章。
阅读全文
摘要:php策略模式 策略模式和工厂模式很像。 工厂模式:着眼于得到对象,并操作对象。策略模式:着重得到对象某方法的运行结果。 示例:
阅读全文
摘要:php 责任链模式 又叫职责链模式。包含了一些命令对象和一些处理对象,每个处理对象决定它能处理那些命令对象,它也知道应该把自己不能处理的命令对象交下一个处理对象,该模式还描述了往该链添加新的处理对象的方法。 示例情景一: 当用户发布一个帖子时: 如果版主可以决定,就版主处理; 如果版主不能决定,就交
阅读全文
摘要:php工厂模式 工厂模式:工厂类调用自身方法来生产对象实例。 示例:
阅读全文
摘要:php观察者模式 1、php设计模式之观察者模式(Observer),当一个对象状态发生改变时,依赖它的对象全部收到通知,并自动更新。2、场景:一个事件发生后,要执行一连串更新操作,传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新的逻辑增多之后,代码会变得难以维护,这种方式是耦合的,侵入
阅读全文
摘要:php单例模式 //单例只允许一个类被实例化一次 //php单例的实现 //单例只允许一个类被实例化一次 class single{ protected static $ins = null; //方法前加final,则方法在继承时不能被修改和覆盖 //防止继承时修改访问权限 final prote
阅读全文
摘要:php的抽象类 总结: 1、定义为抽象的类不能被实例化;2、如果一个类里面至少有一个方法是被声明为抽象的, 那么这个类就必须被声明为抽象的。3、被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的 功能实现。4、继承一个抽象类的时候,子类必须定义父类中的所有抽象方法, 这些方法的访问控制
阅读全文
摘要:Mysqli的常用函数 连接数据库: 设置字符集 执行sql语句 增删改不会返回数据的SQL语句,在执行没有错误时将返回true。 //查询时,返回结果集。 mysqli_fetch_all() 函数从结果集中取得所有行作为关联数组,或数字数组,或二者兼有第二个参数:MYSQLI_ASSOC 返回关
阅读全文
摘要:PDO的基本操作 连接到mysql: 持久连接缓存可以避免每次脚本需要与数据库回话时建立一个新连接的开销, 必须在传递给 PDO 构造函数的驱动选项数组中设置 PDO::ATTR_PERSISTENT 。 如果是在对象初始化之后用 PDO::setAttribute() 设置此属性,则驱动程序将不会
阅读全文
摘要:使用Navicat进行数据库对比同步 当有多个数据库时,有时会出现结构或者数据不同步的问题,这时候可以使用navivat工具对比同步( 我的Navicat版本是11.0.17)。 参考博客: 第一步,打开Navicat工具,点击顶部的【工具】: 第二步,在列表中根据需要选择【数据同步】或【结构同步】
阅读全文
摘要:PHP的取整函数 ceil(),向上舍入为最接近的整数,比实际大的数,英文意思:装天花板,装船内格子板 floor(),向下舍入为最接近的整数,比实际小的数,英文意思:地板。 round()四舍五入,第二个参数可以传保留的小数位数,英文意思:圆形的;大约;到处。 示例: 注意:这三个函数的返回值都是
阅读全文
摘要:php的错误控制运算符 PHP中提供了一个错误控制运算符“@”。 可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉; 如果开启了php.ini 中的 track_error,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖
阅读全文
摘要:php除法的知识点 结论: 当除不尽时: 如果整数部分等于0,则小数位数有14位。 如果整数部分大于0,则小数位数=14-整数位数
阅读全文
摘要:PHP的资源类型 php的资源类型 常见的有:打开文件、数据库连接、图形画布等。 常用操作:创建、使用、释放。 以文件操作为示例: 逐行读取文本信息示例: 总结: fopen()打开一个文件。 feof()判断是否到文件结束。 fgets()获取一行的信息。 fclose()关闭资源。 get_re
阅读全文
摘要:windows 配置apache的多个站点 第一步打开apache的conf/extra/httpd-vhosts.conf,复制<VirtualHost></VirtualHost>,配置web目录和域名。 第二步然后打开apache的配置文件httpd.conf,打开httpd-vhosts.c
阅读全文
摘要:php 压缩数据存储 当接收到大量的数据时,存储到数据库和从数据库读取时,时间都比较慢,所以压缩一下入库可能会好一点。 仅供参考!!! 封装的压缩数据函数: 封装的解压数据函数: 总结: base64_encode() , 使用 base64 对 data 进行编码。base64_decode()
阅读全文
摘要:php统计图类库JpGraph JpGraph官网地址:https://jpgraph.net/。 (1)下载类库: 下载地址:https://jpgraph.net/download/。 选择版本,最新的版本是4.2.3, 复制jpgraph-4.2.3.tar.gz的下载链接:https://j
阅读全文
摘要:php之ThinkPHP的memcached类的修改 在Think\Cache\Driver\Memcached.class.php中,增加方法获取错误信息的方法,方便调试, 控制器中:
阅读全文
摘要:linux 安装报错:pkg-config not found 使用编译安装时,在执行./configure时报如下错误: 提示,配置错误,请重新安装pkg配置分发。 解决方法,根据提示,安装pkg-config: 扩展知识: 关于pkg-config的简介: pkg-config is a hel
阅读全文
摘要:linux 报错:E: Package 'libmemcached' has no installation candidate 网上查资料说是软件安装源没有这个软件,需要添加软件源。 1.备份源列表 sudo cp /etc/apt/sources.list /etc/apt/sources.li
阅读全文
摘要:php之memcache学习 简介: memcache是一个分布式高速缓存系统。 分布式是说可以部署在多台服务器上,实现集群效果; 高速是因为数据都是维护在内存中的; 特点和使用场景: 1、非持久化存储:对数据存储要求不高(断电或重启后数据会清空); 2、分布式存储:不适合单机使用(单机使用消耗内存
阅读全文
摘要:【转】php 之 array_filter、array_walk、array_map的区别 原文:https://blog.csdn.net/csdnzhangyiwei/article/details/60761512。 详细说明: array_filter返回的是一个数组,依次将 input 数
阅读全文
摘要:php 之mysql安全 原文:https://www.cnblogs.com/mafeng/p/5939329.html。 请浏览原文。 一、服务器配置方面。 (1) 打开php的安全模式 php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(), 同时把很多
阅读全文
摘要:mysql 获取所有的数据库名字 一、如果使用的是mysqli: 二、如果使用的是mysql: 总结: mysql_connect()函数修改为mysqli_connect(); mysql_error()函数修改为mysqli_error(); mysql_list_dbs()函数不存在。 mys
阅读全文
摘要:常见的管理mysql命令 (1)用于选择在MySQL工作区指定的数据库(选择数据库): (2)列出了MySQL数据库管理系统中的所有可访问的数据库: (3)显示已经选择数据库中的表的命令: (4)显示属性,属性类型,关键信息,NULL是否被允许,默认值和其它的表信息: 或者 (5)提供所有指标的详细
阅读全文
摘要:mysql 时间类型datetime与timestamp区别比较 相同点: 显示宽度和格式相同,显示宽度固定在19字符,格式为YYYY-MM-DD HH:MM:SS。 不同点: (1)时间范围不同: datetime 支持的范围为''1000-01-01 00:00:00''到''9999-12-3
阅读全文
摘要:mysql 修改管理员密码 本次学习环境: windows 7系统、mysql 5.7.14。 一、如果是忘记了用户密码: (1)、关闭正在运行的MySQL服务。 方法一:可以直接操作wamp软件,左键点击【wamp软件的图标】-->【MySQL】-->【Service administration
阅读全文
摘要:mysql 添加用户 (1)旧版本的mysql添加新用户: (2)新版本的mysql添加新用户: 添加完mysql用户,测试登录: 结果报错: 解决办法: 执行 FLUSH PRIVILEGES 语句。 告诉服务器重新加载授权表。如果不使用它,那么将无法使用新的用户帐户连接到MySQL服务器,至少在
阅读全文
摘要:Git学习之常见错误 git push 失败 问题描述: 解决办法: 这是由于git默认拒绝了push操作,根据提示信息解决: You can set 'receive.denyCurrentBranch' configuration variable to 'ignore' or 'warn' i
阅读全文
摘要:Git学习之常见错误 问题: git clone 时 报错 Permission Denied (权限被拒绝)。 解决方法: 需要把本地的公钥上传到服务器。 解决步骤: ①第一步,设置本地的git的用户名和邮箱。 鼠标右键 -->【Git Bash Here】,打开命令行。 (注意 --global
阅读全文
摘要:vagrant的学习之Git学习 参考学习网址: http://www.runoob.com/git/git-install-setup.html。 http://www.bootcss.com/p/git-guide/。 https://www.cnblogs.com/vastsum/p/5910
阅读全文
摘要:php 之 日志系统seaslog 特点: 1、高性能(使用C语言编写的)。 2、无需配置。 3、功能完善、使用简单。 安装: 打开php的扩展官网:https://pecl.php.net/。 然后搜索Seaslog, 选择最新的版本下载: 解压: 然后进入SeasLog目录 然后执行phpize
阅读全文
摘要:vagrant的学习 之 打包分发 一、打包Box: (1)关闭虚拟机。 (2)打包: 这样打包出来的文件叫package.box。 指定生成的包名字: 二、升级Box: 老用户,可以修改 Vagrantfile文件, 新用户,直接使用新的box文件。 修改vagrantfile,找到这段代码: 例
阅读全文