自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

姜海强

share

  • 博客(129)
  • 资源 (6)
  • 收藏
  • 关注

原创 我的个人官方网站

姜海强的官方网站作者本人搭建了一个个人官方网站,内容和CSDN博客同步更新,欢迎客官就坐观看。https://404.360tryst.com/

2020-07-01 22:28:57 304

原创 数据结构

1. 数据结构提到算法不能不提数据结构,数据结构就是数据元素按照一种或多种关系的集合,按照逻辑结构划分,可以分为:1.1 集合集合是由一堆无序的、相关联的,且不重复的数据元素组成的集合。1.2 线性结构线性结构是数据元素之间存在“一对一”关系的线性关系的集合。1.3 树树是数据元素之间存在”一对多“关系的集合。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qk5EYuPI-1597892231495)(https://404.360try

2020-08-20 11:00:56 360

原创 db封装

db封装以下Connection类封装支持以下几个特性1.参数绑定防止sql注入2.读写分离3.多主多从,多节点负载均衡4.故障自动摘除及自动恢复代码实现<?phpclass Connection{ /** * @var array * @datetime 2020/7/5 10:20 AM * @author roach * @email [email protected] */ public $master

2020-08-19 10:25:32 912

原创 pdo-mysql

pdo-mysqlPHP连接数据库推荐使用PDO,PDO扩展为PHP访问数据库定义了一个轻量级接口。我们可以通过实现PDO接口的每个数据库驱动来访问数据库服务。访问mysql数据库服务,我们使用PDO_MYSQL驱动1.PDO实现CRUD在192.168.1.13:3306的mysql实例上创建数据库roach,创建roach用户并授权,在roach库中创建表t_user,sql如下CREATE TABLE `t_user` ( `id` int(10) unsigned NOT

2020-08-17 11:10:47 1183

原创 模板模式

模板模式模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。讲到模板模式,我不得不提的就是我们著名的PSR-3规范,PSR-3为我们提供了模板的接口<?phpnamespace Psr\Log;/** * Describes a logger instance. * * The me

2020-08-13 18:37:25 182

原创 观察者模式

观察者模式观察者模式又称发布订阅模式,我们常用的redis、rabbitmq和kafka等都支持发布订阅,那么这个模式是怎么回事儿呢?观察者模式主要有通知者和观察者等角色,观察者一般有多个。我们看下面代码示例<?php/** * Class Controller * @datetime 2020/7/17 6:46 PM * @author roach * @email [email protected] */class Controller{ /**

2020-08-10 10:28:40 392

原创 策略模式

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化,即封装变化的算法。策略模式的本质是将算法封装起来。下面看一个常见的代码<?php/** * @param string $driver * @param string $msg * @datetime 2020/7/17 5:42 PM * @author roach * @email [email protected] */function log($dr.

2020-08-07 18:20:10 174

原创 简单工厂

简单工厂简单工厂让对象的调用者和对象创建过程分离,当对象调用者需要对象时,直接向工厂请求即可。从而避免了对象的调用者与对象的实现类以硬编码方式耦合,以提高系统的可维护性、可扩展性。<?php/** * Class IPay * @datetime 2020/7/15 8:29 下午 * @author roach * @email [email protected] */abstract class IPay{ /**创建订单号 * @param int

2020-08-06 11:23:12 134

原创 单例

单例模式每一种设计模式都是为了解决特定的问题,单例模式从名字就可以看出,是软件系统中只需要一个对象时使用。如果一个类在系统中只能有一个实例,可以通过如下代码实现<?php/** * Class Singleton * @datetime 2020/7/12 10:08 PM * @author roach * @email [email protected] */class Singleton{ /** * @var Singleton * @da

2020-08-02 17:30:38 153

原创 设计模式

1.什么是模式设计模式是对某些典型易变问题的特定解决方案,这些问题和解决方案经过分类总结,并且为了方便交流给每个解决方案都起了特定的名字。模式是为了解决变化的问题,将变化的问题进行封装,让变化单独变化而互不影响,以达到项目系统的扩展性,模式是一种更高层次的代码复用。设想一下,假如我们的项目是一次性项目,一旦发布,以后再也不会修改,那么我们完全没有必要使用设计模式,反而使用了设计模式会增加系统的复杂度,但是一次性的项目在我们实际工作环境中是极少的,如果实际工作环境中都是一次项目,那个时候我们开

2020-08-01 09:55:56 326 2

原创 seaslog

seaslog是一个第三方提供的高性能日志扩展,是性能最好的PHP日志框架之一,其代码库地址https://github.com/SeasX/SeasLog1.安装下载安装包时注意版本兼容性,即seaslog版本与PHP版本的兼容性,在seaslog的release日志里会有PHP版本的支持说明。预编译与安装,安装方式和其他扩展一样,不清楚可以参考http://404.360tryst.com/views/7.html#layout./configure --with-php-co.

2020-07-31 18:36:24 571

原创 openssl

openssl是一个加解密相关的库,这个库在计算机领域得到了广泛的应用。1.操作系统中安装openssl安装openssl扩展之前,你的操作系统需要先安装openssl,centos操作系统安装方式yum install openssl openssl-devel执行一下命令,如果可以输出版本信息表示安装成功openssl version -a作者环境输出OpenSSL 1.0.2k-fips 26 Jan 2017built on: reproducible buil.

2020-07-30 16:53:39 1268

原创 bcmath

bcmath对于任意精度的数学,bcmath提供了支持用字符串表示的任意大小和精度的数字的二进制计算,最多为2147483647-1在编译PHP时加上参数--enable-bcmath即可启用改扩展,也可以在编译安装完成后,通过phpize方式安装,源码目录位于PHP的源码目录中的ext目录。phpize安装方式可以参考http://404.360tryst.com/views/7.html#layout1.浮点型计算问题也许有人会说,PHP不是提供了数学运算的符号,比如说+,-,*

2020-07-29 17:59:12 712

原创 密码散列算法

密码散列算法是password扩展,他是PHP核心的一部分,不需要单独安装这个库是专门对密码做hash运算与校验的。大家都知道,用户注册设置的密码需要存储在数据库,很多老项目都是把密码就行md5运算然后存储到数据库表中,但是由于现在计算机硬件性能提升,md5算法已经不再安全,那么应该用什么算法呢?对密码进行hash运算并校验<?php//对密码进行hash运算,算法采用PASSWORD_BCRYPT$hash = password_hash('jhq2312.

2020-07-28 11:54:11 668

原创 hash扩展

hash扩展是PHP核心的一部分,使用hash扩展中的函数不需要安装扩展hash是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值,PHP的hash扩展提供一些hash算法hash算法一般是非可逆的,常用作数据签名1.查看自己的PHP环境支持的hash算法<?php/** * Created by PhpStorm. * User: Jiang Haiqiang * Date: 2020/7/7 * Time: 10:53 PM */$algoLi.

2020-07-27 15:28:00 303

原创 php扩展

php扩展1.安装PHP生产环境PHP都是运行在Linux操作系统中,如:Centos操作系统,在Centos操作系统中安装PHP需要经过预编译、编译和安装等阶段。安装步骤如下:1.从PHP官方网站下载某个版本的PHP源码包,如:7.2.31PHP官网地址:https://www.php.net/2.创建php-fpm运行用户组与用户 # 创建www用户组 groupadd www #创建www用户,且www用户不能登录 useradd www -g w

2020-07-26 19:05:09 331

原创 composer

composercomposer是PHP依赖管理工具,composer集成了PSR-4规范的类自动加载,composer官网地址:https://www.phpcomposer.com/composer包托管在https://packagist.org/,当我们需要检索某项功能的依赖包时可以到这里自行检索,目前这里包含了很多著名的依赖框架和库,如:phpunit、guzzle、elasticsearch、phpoffice等。1.composer的安装下载前请确保您的电脑能够成功连接互联

2020-07-25 11:06:42 552

原创 异常与错误处理

异常与错误处理PHP的异常与错误是分开的,当程序出现异常时会throw一个\Exception(或子类)对象,但是当出现错误时会触发一个错误。1. 异常处理1.1 通过try...catch主动处理异常<?php/** * Class UserNotExistsException * @datetime 2020/7/2 5:11 下午 * @author roach * @email [email protected] */class UserNotExistsExc

2020-07-24 14:43:40 406 1

原创 反射

反射反射是一种动态获取类成员属性和成员方法,并且可以动态创建对象进行调用的一种技术。Java语言有一个特别著名的框架叫Spring,几乎任何Java程序员对这个框架非常熟悉,这个框架早期最核心的思想就是DI(依赖注入),底层的技术实现核心就是依赖反射技术。PHP本身其实不通过反射也能动态创建对象,通过new关键字就可以创建对象,如下例程:<?phpnamespace popo;class User{ /** * @var string * @da

2020-07-23 12:21:03 135

原创 自动加载

类自动加载在编写面向对象程序时,每个类新建一个PHP文件,这会带来一个烦恼:每个脚本的开头,都需要require一个长长的列表。这就需要一种自动加载机制。所谓类自动加载就是当我们想使用某个命名空间下的某个类时,直接use某个类,然后在使用这个类时自动按照某个规则将文件require,不用自己显示的require相应的代码文件。我们在使用一些开源框架时,一般都引入了类自动加载。在PHP早期版本中通过__autoload()函数完成自动加载,在PHP5以后,官方推荐使用spl_autoload_

2020-07-20 13:06:16 412 1

原创 面向对象

面向对象不管你是商城、直播或者其他任何类型的项目,都需要面向对象编程。面向对象来源于生活,同时解决的也是生活中的问题,面向对象模拟真实生活中解决问题的方式来解决问题,比如,当我们生病需要就医时,我们会到某个医院或者诊所去看医生,医生就是个类,某个科室的某××医生就是我们new出来的对象。生活中类似的例子还有很多,就不再一一列举。关于面向对象编程,是一个非常能够考察一个开发人员编码功底的技术点。刚走出校园的应届毕业生、做过2年左右的业务开发和具有5年以上底层框架开发经验的三个人对面向对象的理解是完全

2020-07-18 14:56:28 286

原创 编码规范

编码规范1. 代码清晰度无规矩不成方圆,编程也是有套路的,好的代码不仅要好的性能,还要有好的规范。如果代码没有按照一定的规范进行编写,那么代码的可维护性就会很差,相信任何人都不太愿意接手不规范的代码。代码的清晰度是一个衡量开发人员编码素质的重要标准。2. PSR规范每一个编程语言都有自己的编码规范,PHP也不例外,PHP语言公认的编码规范就是PSR规范,PSR规范官方网址https://www.php-fig.org/psr/。PSR 是PHP Standard Recommendat

2020-07-17 20:11:54 517

原创 golang语言rsa加解密及签名验签

golang语言rsa加解密及签名验签`rsa`算法概述`Rsa`结构体封装封装的优点使用案例rsa算法概述rsa是一种非对称的可逆的加密算法,对加密数据长度有限制,同时rsa也提供了数据的签名与验签的支持,在实际项目中被广泛应用,如:支付宝等。golang语言对于rsa算法的实现在crypto/rsa包中,rsa包实现了PKCS#1标准的rsa加密算法。rsa算法依赖一对公钥私钥,私钥...

2020-03-06 11:19:54 4908 1

原创 php成长之路--1.composer下载依赖

composercomposer1.composer1.1 安装1.2 packagist[yaf+yar企业微服务解决方案](https://edu.csdn.net/course/detail/9933)composer1.composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你...

2019-05-25 11:57:56 1084

原创 基于yaf+yar微服务解决方案教程

基于yaf+yar微服务解决方案教程大纲主要内容[课程地址](https://edu.csdn.net/course/detail/9933)大纲主要内容课程地址

2019-04-01 10:46:09 1502

原创 Redis入门到精通-姜海强-专题视频课程

本课程涵盖企业中绝大部分Redis安装、使用和维护的具体内容,细致将讲解Redis是什么?为什么要使用Redis?如何使用和维护Redis,合理利用Redis优化服务器系统架构...

2017-01-19 20:06:28 269

转载 PSR-4

Autoloader关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、 “将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、 “推荐”("RECOMMENDED")、“可以”("MAY")和”可选“("OPTIONAL")的详细描述可参见 [RFC 21

2016-12-04 11:17:17 940

转载 PSR-7

HTTP消息接口本文档描述了在RFC 7230和RFC 7231中被描述来代表HTTP消息通用接口,以及在RFC 3986中规定的URIs语法。HTTP消息是Web开发的基础。Web浏览器和HTTP客户端之间,例如使用cURL创建一个发送到Web服务器的HTTP请求,Web服务器会返回一个HTTP响应。服务器端代码收到一个HTTP请求消息,并返回一个HTTP响应消息。HTTP消息通常对与最终的消费

2016-12-04 11:13:21 3279

转载 PSR-3

日志接口规范本文制定了日志类库的通用接口规范。本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。 框架以及CMS内容管理系统如有需要,可以对此接口进行扩展,但需遵循本规范, 这才能保证在使用第三方的类库文件时,日志接口仍能正常对接。关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、

2016-12-04 11:10:16 653

转载 PSR-2

代码风格规范本篇规范是 PSR-1 基本代码规范的继承与扩展。本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。当多名程序员在多个项目中合作时,就需要一个共同的编码规范, 而本文中的风格规范源自于多个不同项目代码风格的共同特性, 因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。关键词 “必须”("MUST")、“一定不可/一定

2016-12-04 11:08:26 711

转载 PSR-1

基本代码规范本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性。关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、 “将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、 “推荐”("RECOMMENDED")、“可以

2016-12-04 11:07:08 605 1

转载 PSR-0

PSR-0:自动加载规范此规范已被弃用 - 本规范已于2014年10月21日被标记为弃用,目前最新的替代规范为 [PSR-4] 。本文是为自动加载器(autoloader)实现通用自动加载,所需要遵循的编码规范。规范说明一个标准的 命名空间(namespace) 与 类(class) 名称的定义必须符合以下结构: \\(\)*;其中Vendor Name为每个命名空间都必须要有的一个顶级命名空间名

2016-12-04 11:04:20 618

原创 Hadoop生态系统常用组件导图

Hadoop生态系统主要组件导图:看大图

2016-11-26 13:19:32 2489

原创 Yii2.0 PHP框架-姜海强-专题视频课程

具体实例讲解Yii框架的核心内容。

2015-11-16 08:32:59 265

原创 PHP设计模式——职责链模式

声明:本系列博客参考资料《大话设计模式》,作者程杰。       职责链模式(又叫责任链模式)包含了一些命令对象和一些处理对象,每个处理对象决定它能处理那些命令对象,它也知道应该把自己不能处理的命令对象交下一个处理对象,该模式还描述了往该链添加新的处理对象的方法。       UML类图:                  角色:        

2015-06-11 10:41:15 5614 4

原创 PHP设计模式——访问者模式

声明:本系列博客参考资料《大话设计模式》,作者程杰。      访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。      UML类图:                   角色:                 1.抽象访问者(State):为该对象结构中具体元素角色声明一个访问

2015-06-11 10:12:07 3828 2

原创 PHP设计模式——模板模式

声明:本系列博客参考资料《大话设计模式》,作者程杰。             模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。        UML类图:       

2015-06-10 11:25:42 3293

原创 PHP设计模式——状态模式

声明:本系列博客参考资料《大话设计模式》,作者程杰。        状态模式当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。        UML类图:                 角色

2015-06-10 10:53:27 5457

原创 PHP设计模式——备忘录模式

声明:本系列博客参考资料《大话设计模式》,作者程杰。                备忘录模式又叫做快照模式或Token模式,在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。             UML类图:                             角色:      

2015-06-10 10:26:16 2434

原创 PHP设计模式——中介者模式

声明:本系列博客参考资料《大话设计模式》,作者程杰。       中介者模式用一个中介者对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其松散耦合,而且可以独立地改变它们之间的交互。        UML类图:                   角色:                  中介者接口(UnitedNations):在里

2015-06-09 21:40:49 3318

HTML5 API帮助文档

HTML5帮助文档,最新最牛最跨平台技术的帮助文档,能少了他吗

2013-08-22

JQuery 1.9.1 API 帮助文档

JQuery 1.9.1 API 帮助文档,有了它,Web开发就变得轻松无比,无所不能

2013-08-22

DHTML API 帮助文档

动态网页技术的好帮手,使你的网页更具新鲜的活力。有了它就有了新的未来

2013-08-22

Visual.C++.实践与提高数据库篇

本书是最具特色最具亮点的专业性教材,能够激发你做开发的兴趣,同时本书又是开发潜能的教材,绝佳之本。

2012-09-26

数据库系统教程

数据库的经典教程,大家可以学习一下,是很值得学习的。

2012-05-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除