PHP 使用 Redis

摘要: PHPRedis 项目地址 安装步骤参考链接安装 Redis 扩展PHPRedis 已经封装为 PHP 的官方扩展了,只要安装了这个扩展,重启 PHP-FPM 后即可使用 PHPRedis。从 pecl 安装下面命令会安装最新的稳定版本的 PHP 扩展:pe... 阅读全文
posted @ 2018-08-28 10:28 kikajack 阅读(421) 评论(0) 推荐(0) 编辑

Redis 基础及各数据类型对应的命令

摘要: Redis 命令文档基本概念安装及使用可以在官网下载源码编译安装。对于 CentOS,还可以通过 yum install redis 安装。Redis 安装完成后,通过 redis-server 命令可以启动 Redis 服务器,如果修改了配置文件,需要在启... 阅读全文
posted @ 2018-08-27 20:26 kikajack 阅读(199) 评论(0) 推荐(0) 编辑

Linux 命令详解 - ps

摘要: 完整文档ps 命令用于显示命令执行瞬间的进程状态(Process Status)。如果想动态查看进程状态可以使用 top 命令。进程的概念进程类型前台进程:由终端初始化,可以通过命令行进行交互。需要由用户启动,不能作为系统功能或服务的一部分自动启动。 后台进... 阅读全文
posted @ 2018-08-21 13:03 kikajack 阅读(412) 评论(0) 推荐(0) 编辑

MySQL 对比数据库的表结构

摘要: 有时候,需要对比一下测试环境和生产环境中,数据库的表结构是否有所差异。有两个常用的工具。AmpNmp.DatabaseCompareGUI 界面,支持多种数据库(MySQL、SQL Server、SQLite)简单高效,推荐。官方下载地址及文档 百度网盘下载... 阅读全文
posted @ 2018-08-10 17:36 kikajack 阅读(596) 评论(0) 推荐(0) 编辑

OAuth 2.0 综述

摘要: OAuth 2.0 rfc6749 规范 OAuth 2.0 rfc6749 规范-带目录,阅读 RFC 文档的 工具 OAuth 官网OAuth2 核心角色Token 类型access token 访问令牌refresh token 刷新令牌Client ... 阅读全文
posted @ 2018-08-06 11:09 kikajack 阅读(182) 评论(0) 推荐(0) 编辑

PHP 中 Error 和 Exception 两种异常的特性及日志记录或显示

摘要: PHP 文档: Error Exception 参考: 深入理解PHP原理之异常机制 我们什么时候应该使用异常 异常和错误所有示例基于 PHP7。应用中,关于错误的最佳实践是:必须报告错误开发环境要显示错误,生产环境不可显示开发环境和生产环境都要记录错误日... 阅读全文
posted @ 2018-07-31 18:46 kikajack 阅读(2936) 评论(0) 推荐(0) 编辑

mysqldump - 备份 MySQL 数据库

摘要: 参考资料备份备份所有数据库中的所有数据(包括系统数据库) –all-databases通过 --all-databases 选项备份所有的数据库:mysqldump -uroot -p --all-databases >/tmp/all.sql备份指定数据库... 阅读全文
posted @ 2018-07-24 17:25 kikajack 阅读(169) 评论(0) 推荐(0) 编辑

设计模式 - 门面模式(Facade Pattern,也叫外观模式)

摘要: 简介场景将系统划分为若干个子系统有利于降低系统的复杂性,但是这会增加调用者的复杂性。通过引入 Facade 可以对调用者屏蔽系统内部子系统的细节。Java 中有多个日志库,例如 log4j、logback 等。此外,还有一个著名的日志门面库 SLF4j。需要... 阅读全文
posted @ 2018-07-17 19:01 kikajack 阅读(282) 评论(0) 推荐(0) 编辑

设计模式 - 组合模式(Composite Pattern)

摘要: 参考:http://terrylee.cnblogs.com/archive/2006/03/11/347919.html简介树状结构中,对于枝节点和叶节点,接口不同,客户端需要判断处理的节点类型。场景对于规模比较大的公司,其组织架构一般是:总公司,下面有分... 阅读全文
posted @ 2018-07-17 18:22 kikajack 阅读(184) 评论(0) 推荐(0) 编辑

设计模式 - 桥接模式

摘要: 简介场景绘制图形时,可以抽象出一个图形类。然后,增加新的需求,需要给绘制的图形添加颜色,此时系统引入了两个变化维度。有两种方案:每种图形提供一套颜色的实现(继承关系) 组合图形和颜色(关联关系) 对于第一个方案,类的数量会指数级增长,且类之间的继承导致强耦合... 阅读全文
posted @ 2018-07-17 18:17 kikajack 阅读(122) 评论(0) 推荐(0) 编辑

设计模式 - 适配器模式

摘要: 简介场景现实场景:国内电压是 220v,外国部分国家是 110v,如果去出差,会需要携带两个电源适配器,以应对这两种不同的电压。数据库场景:每种编程语言都需要支持多种数据库,通常会抽象一层数据库连接层,例如 Java 的 JDBC,PHP 的 PDO。数据库... 阅读全文
posted @ 2018-07-16 18:55 kikajack 阅读(114) 评论(0) 推荐(0) 编辑

PHP 调试 - Xdebug

摘要: PHP 调试指南.pdf PHP 程序员的调试技术根据要调试的对象的不同,采取的方法也不一样:调试 web 应用:对于 web 应用,可以在浏览器中安装插件,或者在 IDE 中设置,下面的设置二选一即可。 Get/Post 请求或 Cookie 中添加 XD... 阅读全文
posted @ 2018-07-12 19:21 kikajack 阅读(278) 评论(0) 推荐(0) 编辑

PHP 调试 - 方式

摘要: 之前学 Java 的时候,一直使用 IDE 的 console 控制台进行调试。后来搞 PHP 后,习惯在代码里面 echo 和 exit,然后在浏览器刷新看效果,把单步调试、变量值查看等常用的调试方式给忘了。其实通过 IDE 集成的控制台进行调试更高效。下... 阅读全文
posted @ 2018-07-12 14:09 kikajack 阅读(598) 评论(0) 推荐(0) 编辑

Windows 下手工搭建 LNMP 环境

摘要: 参考资料如果想方便,可以直接使用集成的 LNMP 环境(例如 PHPStudy)。下载 PHP下载地址:https://windows.php.net/download根据你的系统选择 32 位或 64 位下载。另外还有个线程安全和非线程安全的差异,对于 N... 阅读全文
posted @ 2018-07-11 18:08 kikajack 阅读(474) 评论(0) 推荐(0) 编辑

设计模式 - 建造者模式 Builder Pattern

摘要: 简介场景在创建复杂对象时,用户无须关心该对象所包含的属性以及它们的组装方式,只需要指定复杂对象的类型和内容就可以构建它们。模式定义建造者模式:将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。模式特点建造者模式包含四个角色:Builder... 阅读全文
posted @ 2018-07-08 22:22 kikajack 阅读(118) 评论(0) 推荐(0) 编辑

设计模式 - 单例模式

摘要: 简介场景系统中,某些类只能有一个实例(例如文件系统管理器、系统计时工具),且需要在系统的任何地方都可以访问到。这时,可以让类自身以静态属性的方式保存其唯一实例,并私有化构造方法,通过指定的方法获取这个实例。模式定义单例模式:确保某个类只有一个实例,而且由这个... 阅读全文
posted @ 2018-07-07 10:42 kikajack 阅读(106) 评论(0) 推荐(0) 编辑

GOF 23种设计模式

摘要: 分类创建型设计模式 Creational Pattern结构型设计模式 Structural Pattern行为型设计模式设计模式 Java 版 图说设计模式设计模式,就是对软件设计中各种常见场景的编码套路。套路知道的多了,代码就敲的轻松。分类创建型设计模式... 阅读全文
posted @ 2018-07-07 09:34 kikajack 阅读(188) 评论(0) 推荐(0) 编辑

设计模式 - 装饰器模式(Decorator)

摘要: 简介场景通过继承和关联都可以给对象增加行为,区别如下:继承是静态的(无法在程序运行时动态扩展),且作用于所有子类。硬编码,高耦合。通过装饰器可以在运行时添加行为和属性到指定对象。关联关系就是在一个类中嵌入另一个类的对象,被嵌入的对象就是装饰器。可以动态决定是... 阅读全文
posted @ 2018-07-05 23:23 kikajack 阅读(133) 评论(0) 推荐(0) 编辑

PHP 数组下标自动转换为整型的坑

摘要: 在做项目时,上线后遇到一个 BUG,有一个数组存储了下标从 ‘01’到‘18’ 总共18组数据。上线前测试了前几组数据,没问题。上线后,在用户选择‘15’时报错,找不到这个数据。查了一下代码,数据是没问题的,只是这里使用了‘===’来判断相等:// $cod... 阅读全文
posted @ 2018-07-05 15:45 kikajack 阅读(203) 评论(0) 推荐(0) 编辑

设计模式 - 观察者模式

摘要: 简介场景如果想实时跟踪某个对象的状态(例如,对于负责下载的对象,想实时跟踪下载进度),有两种方法:定时轮询:定时访问目标对象的接口,获取其当前状态主动通知:在目标对象发生变化时,主动通知需要知道这个变化的对象模式定义观察者模式(Observer Patter... 阅读全文
posted @ 2018-07-02 22:31 kikajack 阅读(124) 评论(0) 推荐(0) 编辑

设计模式 - 策略模式(strategy pattern)

摘要: 简介场景某个功能需要从多种算法中根据条件选择一种时,有两个方案:将所有算法硬编码到代码中,然后通过条件语句进行选择使用策略模式使系统可以灵活地选择算法,并可以灵活添加新算法如果条件是固定的,比如根据星期几来选择算法,则可以通过条件语句硬编码。但是如果条件可能... 阅读全文
posted @ 2018-07-01 21:51 kikajack 阅读(104) 评论(0) 推荐(0) 编辑

设计模式 - 抽象工厂模式

摘要: 简介产品等级结构和产品族产品等级结构 :产品的继承结构。对于电视机,有海尔、海信、TCL 等品牌,抽象电视机与具体品牌的电视机之间构成了一个产品等级结构。产品族 :在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品,如海尔工厂生... 阅读全文
posted @ 2018-07-01 20:35 kikajack 阅读(108) 评论(0) 推荐(0) 编辑

设计模式 - 工厂方法模式

摘要: 简介模式定义在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象。工厂方法模式让类的实例化延迟到子类中。模式特点工厂方法模式包含四个角色:Product:抽象产品ConcreteProduct:具体产品Factory:... 阅读全文
posted @ 2018-07-01 19:50 kikajack 阅读(97) 评论(0) 推荐(0) 编辑

设计模式 - 简单工厂模式

摘要: 简介模式定义简单工厂模式(Simple Factory):根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类,用来创建其他类的实例,被创建的实例通常都具有共同的父类。模式特点简单工厂模式包含三个角色:Factory:工厂,负责实现创建所有实例Prod... 阅读全文
posted @ 2018-07-01 16:29 kikajack 阅读(97) 评论(0) 推荐(0) 编辑

设计模式 - 模板方法设计模式

摘要: 模板方法及各种语言的实现简介模式定义模板方法(Template Method)设计模式中,定义了一个操作中算法的骨架,而将一些步骤延迟到子类中。子类可以复用算法的结构,同时可用重写算法的某些特定步骤。模式特点模板方法将稳定的东西(流程,不需要重写的方法)放在... 阅读全文
posted @ 2018-07-01 14:52 kikajack 阅读(128) 评论(0) 推荐(0) 编辑

PHP 编码规范

摘要: PSR 规范官网 PSR-2 编码风格规范 PSR-1 基础编码规范 CodeIgniter 框架的编码规范类和命名空间每个类都独立为一个文件,且命名空间至少有一个层次:顶级的组织名称(vendor name)。类的命名必须遵循大写开头的驼峰命名规范。 $b... 阅读全文
posted @ 2018-07-01 12:49 kikajack 阅读(201) 评论(0) 推荐(0) 编辑

面向对象的三大特性和五大设计原则

摘要: 特性封装继承多态SOLID 设计原则单一职责原则开放封闭原则里式替换原则接口隔离原则依赖倒置原则台灯和按钮的例子:替换数据库其他设计原则合成复用原则迪米特法则面向对象的 SOLID 原则特性封装隐藏对象的属性和实现细节,通过对外暴露的接口控制程序中属性的读写... 阅读全文
posted @ 2018-06-27 18:44 kikajack 阅读(336) 评论(0) 推荐(0) 编辑

UML 类图快速入门

摘要: UML 图形官方定义UML 类图(Class Diagram)UML 时序图(Sequence Diagram)领域 UML 类图和实现 UML 类图领域 UML 类图实现 UML 类图UML 关系泛化关系(generalization)实现关系(reali... 阅读全文
posted @ 2018-06-27 18:06 kikajack 阅读(513) 评论(0) 推荐(1) 编辑

PHP 开启错误显示并设置错误报告级别

摘要: 警告:生产环境永远都不要显示任何错误信息!显示错误(display_errors)和错误报告(error_reporting)是两回事。PHP 脚本发生错误时,可以根据设置选择是否报告这个错误(记录到错误日志中),如果设置中开启了 display_error... 阅读全文
posted @ 2018-06-16 15:53 kikajack 阅读(463) 评论(0) 推荐(0) 编辑

信用卡和借记卡、储蓄卡

摘要: 功能区别借记卡:不可透支,其中的存款按照活期计算利息。可以用于水电煤气等自动定期扣款,可以用来理财投资,转账结算功能。储蓄卡:功能阉割版的借记卡。只有基本的存取款、转账等功能。信用卡(贷记卡):可以透支,有一定的信用额度,在这个额度内可以先消费后还款,且有免... 阅读全文
posted @ 2018-06-15 18:16 kikajack 阅读(323) 评论(0) 推荐(0) 编辑