- 博客(59)
- 资源 (8)
- 收藏
- 关注
原创 CSRF 跨站请求伪造
CSRFCSRF全称Cross-Site Request Forgery跨站请求伪造,也被称为One Click Attack或Session Riding,通常缩写为CSRF或XSRF。CSRF攻击原因CSRF攻击是冒充信任用户向服务器发送非预期请求的一种攻击方式例如:CSRF攻击者在用户已经登录目标站点后,诱使用户访问一个攻击页面,利用目标站点...
2019-04-30 12:50:26 224
原创 HTTP Request 请求
HTTP Request在HTTP连接中消息报文分为Request请求和Response响应两种,每种报文在HTTP首部会有不同的字段来标识不同的用途。HTTP协议使用TCP协议进行传输,在应用层协议发起交互之前,首先是TCP的三次握手。完成TCP三次握手后,客户端会向Web服务器发出一个请求报文。典型的HTTP请求消息格式HTTP请求消息结构请...
2019-04-29 15:33:35 573
原创 Docker Nginx
启动虚拟机并进入$ docker-machine ls$ docker-machine start default$ docker-machine ip192.168.99.100$ docker-machine ssh defaultdocker@default ~$从DockerHub中搜索Nginx镜像docker@default ~$ docker ...
2019-04-28 17:50:29 105
原创 Swoft Bean
Bean什么是Bean呢?Swoft中Bean是一个类的对象实例每个被Swoft管理的PHP对象称之为BeanSwoft提供了一个IoC容器来初始化对象和获取对象,用来解决对象之间的依赖管理。以前当我们要调用一个类的时候是需要先使用new关键字对类进行实例化后才能使用,现在有了Bean,当Swoft启动的时候就给实例化并一直存在,当你使用时不再需要再去ne...
2019-04-28 12:16:39 548
原创 IoC 控制反转
什么是IoC呢?控制反转(Inversion of Control, IoC)是面向对象编程中的一种设计原则,由于理论和实践成熟的相对较晚,所以并没有包含在GoF中。早在2004年,Martin Fowler提出“哪些方面的控制被反转了?”这个问题。他总结出的结果是依赖对象的获得被反转了,因为大多数应用程序都是由许多类通过彼此协作来实现业务逻辑,这使得每个对象都需要获取与其合作...
2019-04-28 11:53:18 180
原创 数据库连接池
连接池什么是数据库连接池呢?数据库连接池(Connection Pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地分配池中的连接进行申请、使用、释放。由于数据库连接的创建和断开是一个耗时性的操作,同时对数据库会造成安全隐患。因此,在程序初始化时集中创建多个连接,并将其集中管理供程序使用,可以保证较快的数据读写速度且提高系统的安...
2019-04-27 18:24:54 340 1
原创 Swoft HTTP Validator 验证器
HTTP请求参数验证可使用参数验证器Validator实现,参数验证器可为PATH路径参数、GET请求参数、POST请求参数提供验证,并且都已经通过注解实现。目前,已经实现的常见数据类型的参数验证,具体包括:整数、正整数、浮点数、字符串、枚举...例如,在控制器的动作方法中使用注解的方式对参数进行验证/** * @RequestMapping("string/{name}")...
2019-04-27 16:28:49 504
原创 Swoft HTTP Middleware 中间件
什么是HTTP中间件呢?中间件Middleware用于控制请求到达和响应请求的整个流程,可对请求进行过滤验证,当需要对请求或响应做出修改或处理,或是想要调整请求处理流程时均可使用中间件来实现。简单来说,中间为过滤进入应用的HTTP请求提供了一套便利的机制。HTTP 中间件中间件作为请求和响应之间的中间人,本质上是HTTP的一种过滤机制。由于中间件可对路由进行拦截,...
2019-04-27 14:58:09 451
原创 Docker Redis
参考资料Redis下载地址 http://download.redis.io/releases/目标:使用Docker安装Redis准备准备工作# 查看当前docker虚拟机列表$ docker-machine ls# 启动默认docker虚拟机$ docker-machine start default# 进入默认docker虚拟机$ docker-...
2019-04-27 12:36:35 260
原创 Swoft HTTP Session 会话控制
Session组件提供HTTP服务下的会话支持,Swoft实现了Redis驱动的Session存储支持,由于Swoft设计理念更倾向于分布式和集群,所以不建议使用文件的方式来进行会话存储。依赖PHP 7.0 +Swoft Framework 1.0 beta +Swoole 2.0.11 +安装检查项目根目录下composer.json文件中是否已经安装swoft/...
2019-04-27 12:11:17 661 2
原创 Swoft 生成命令
准备工作$ docker-machine ls $ docker-machine start default$ docker-machine ssh defaultdocker@default ~$ docker ps -adocker@default ~$ docker exec -it myswoft bashroot@2e7ca4e64edf:/var/www/s...
2019-04-27 11:00:30 1001
原创 Swoft View 视图
参考资料swoft-view https://github.com/swoft-cloud/swoft-viewSwoft提供PHP原生语法的视图渲染支持,并提供基础的布局以及内部引入文件等功能。视图安装Swoft视图渲染可作为额外单独组件使用,首先检查当前Swoft项目是否已经安装了swoft-view组件。$ vim composer.json"require...
2019-04-27 10:16:07 894
原创 Swoft SQL与事务
Swoft提供使用原生SQL查询,主要使用Swoft\Db类中方法。原生SQL使用Db类的静态方法query()方法,执行原生SQL语句,获取多为数组结果。query( string $sql, array $params = [], string $instance = Pool::INSTANCE, string $className = '', ...
2019-04-26 18:51:45 624
原创 MySQL 事务
什么是事务(Transction)呢?事务(Transaction)是各大单机SQL数据库厂商(Oracle、IBM DB2...)于上世纪80年代提出的一个用于解决“数据并发操作处理的模型”,旨在满足多用户(多进程、多线程)数据操作场景下,依然能保证逻辑的正确执行,状态持久。事务(Transaction)是一个最小且不可再分的工作单元,一个事务对应一个完整的业务。一个完整的业...
2019-04-26 18:42:10 125
原创 Swoft 查询器
查询构造器Swoft查询器使用Swoft\Db\Query类class Query{ public static function table(string $tableName, string $alias = null): QueryBuilder { $query = new QueryBuilder(); $quer...
2019-04-26 16:59:34 741
原创 MySQL 主从复制 读写分离
MySQLMySQL的主从复制与读写分离两者有着紧密联系,首先需要先部署主从复制,才能在此基础上进行数据的读写分离。简单来说,读写分离是在主库写从库读。基本的原理是让主库处理事务性操作,从库处理查询操作。当业务量非常大的时候,配置主从复制实现分离来分摊负载,避免负载过大造成无法及时响应的状况。读写分离主从复制主从复制MySQL主从复制的原理是什么?...
2019-04-26 15:43:41 192
原创 Swoft ORM AR 活动记录
什么是ORM?ORM(Object Relational Mapping, ORM, O/RM, O/R mapping)对象关系映射用来实现面向对象编程语言中不同类型系统的数据之间的转换。ORMORM是一种为了解决面向对象与关系数据库存在互补匹配现象的技术。ORM简单来说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化...
2019-04-25 19:08:40 255
原创 Swoft 日志
Swoft日志依赖monolog/monolog组件进行扩展,并兼容PSR-3规范。Swoft日志系统由两部分组成:日志主体:Swoft\Log\Logger通过Swoft\Log\Log对Logger进行了一层封装,使调用更加方便。日志输出:Swoft\Log\FileHandler开发调试若在Swoft项目中使用var_dump等PHP原生打印,此时直接访问S...
2019-04-25 16:39:43 1444 1
原创 Swoft MySQL
注意事项要使用MySQL前提条件必须安装了MySQL,由于目前采用的是Docker的使用,所以提前需要使用Docker安装MySQL,具体操作参见《Docker MySQL》。基础概念数据库实例:数据库实例相当于分配,默认节点分为master和slave,属于默认实例default。master和slave是两个特殊的名称,他们会归纳到default实例中,表现为def...
2019-04-24 23:21:55 351
原创 Docker MySQL
参考资料DockerHub MySQL:https://hub.docker.com/_/mysql/Docker搭建MySQL服务操作步骤拉取MySQL镜像创建并启动MySQL容器连接测试MySQL准备工作$ docker-machine ip192.168.99.100$ docker-machine ls$ docker-machine ssh...
2019-04-24 22:52:39 877
原创 Swoft HTTP Request Response 请求响应
参考资料PHP-FIG https://www.php-fig.org/psr/psr-7/<?phpnamespace App\Controllers\Admin;use Swoft\Http\Server\Bean\Annotation\Controller;use Swoft\Http\Server\Bean\Annotation\RequestMap...
2019-04-24 18:46:55 921
原创 Swoft Annotation 注解
什么是注解(Annotation)呢?注解也叫元数据,用于对代码进行说明,可以对类、接口、字段、方法、参数等进行注解。注解是一种分散式的元数据,与源代码紧密绑定。注解有什么用途呢?生成文档,通过代码中标识的元数据生成文档,比如Java使用注解生成的javadoc文档。编译检查,通过代码中标识的元数据让编译器在编译期间进行检查验证。编译时动态处理,编译时通过代码中的元数据...
2019-04-24 16:27:56 665
原创 Swoft HTTP Controller 控制器
Swoft控制器Controller作为HTTP服务的核心组件,串接起一次请求的整个生命周期。Swoft控制器可通过注解Annotation的方式访问路由,简化代码。创建控制器$ docker-machine ls$ docker-machine ip default192.168.99.100$ docker-machin ssh defaultdocker@d...
2019-04-24 16:00:53 805
原创 Swoft应用基础
Swoft与Swoole有什么关系呢?Swoole是一个异步引擎,核心是为PHP提供异步IO执行的能力,同时提供一套异步编程可能会用到的工具及。Swoole HTTP Server是Swoole中的一个组件,是Swoole Server中的一种服务器,提供了一个适合在Swoole上直接运行HTTP Server的环境。Swoft作为现代的Web框架和Swoole亲和性很高,同时也...
2019-04-24 12:10:28 676
原创 Docker Volume
什么是数据卷Volume呢?首先需要明确Docker内的文件系统是如何工作的,Docker镜像被存储在一系列的只读层。Docker镜像是由多个文件系统(只读层)叠加而成,当启动一个容器的时候,Docker会加载只读镜像层并在其上(镜像栈顶部)添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只...
2019-04-23 15:48:06 141
原创 Docker镜像分层
假如你拥有100平米的房子(服务器),由于你(PHP应用)需要吃喝拉撒睡,所以整个房子分隔出卧室、厨房、卫生间等,供你一个人使用。其实挺浪费的,因为一个人并不真正需要100平米那么大,可能真正只需要20平就可以了。image.png后来,又来了一个人(Java应用)也被安排到这个房子里生活,同样需要吃喝拉撒睡,所以你们挤在一个床上,共用一个卫生间(如HTTP服务器...
2019-04-23 11:59:20 513
原创 docker-compose.yml
什么是YAML呢?YAML全称YAML Ain't Markup Language表示“YAML不是一种标记语言”的缩写,为了强调YAML语言以数据作为中心,不是以标记语言为重点,使用返璞词重新命名。YAML是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。YAML是一种类似于标准通用标记语言的子集XM...
2019-04-22 18:54:40 234
原创 docker-compose命令
帮助文档docker@default:~$ docker-compose --helpDefine and run multi-container applications with Docker.Usage: docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...] docker-compo...
2019-04-22 16:50:46 210
原创 Docker Compose
Docker Compose参考资料Docker Compose的Github地址 https://github.com/docker/compose/什么是Docker Compose呢?Compose是Docker官方开源项目,负责实现对Docker容器集群的快速编排。Compose项目源自于Fig项目,与Docker/Swarm配合度很高。Co...
2019-04-21 12:26:35 220
原创 简书被锁文章
shit你的文章《Nginx 反向代理》已转为仅自己可见,如有疑问请查看《为什么文章会被锁定?》或邮件联系 help@jianshu.com,谢谢你的分享2019.04.28 23:03堕落吧你的文章《PHP生命周期与结构体系》已转为仅自己可见,如有疑问请查看《为什么文章会被锁定?》或邮件联系 help@jianshu.com,谢谢你的分享2019...
2019-04-21 11:52:47 236
原创 PHP生命周期与结构体系
PHP作为开源脚本语言,具有C、Perl、Java等编程语言的特性,由于引入了中间解释层(Zend引擎),所以PHP是一门动态语言。早期PHP是基于多进程模式,也就是单独的请求绑定唯一的进程,但在处理异步请求类的业务时则显得力不从心。随着发展,现在的PHP已经可以很好的支持多线程模型。PHP依托Zend引擎、ZendExtensions扩展、SAPI隔绝层,实现了标准架构设计的...
2019-04-20 22:40:59 217
原创 Docker Dockerfile
Dockerfile如果你想从一个基础镜像开始构建一个自定义的镜像,可以选择一步步的操作,也可以选择编写一个配置脚本,然后一条docker build命令完成构建,显然使用配置脚本的方式能更好地应对需求的变更,这里的配置脚本也就时Dockerfile。Dockerfile文件用于构建镜像Dockfile语法由两部分构成分别是注释、指令+参数Dockerfile...
2019-04-20 22:36:47 197
原创 Swoft环境搭建
参考资料VirtualBox 下载地址 https://www.virtualbox.org/Docker Desktop 下载地址 https://hub.docker.com/editions/community/docker-ce-desktop-windowsDocker Toolbox 下载地址 https://docs.docker.com/toolbox/...
2019-04-20 01:06:18 1198
原创 Docker三剑客
参考资料Docker仓库地址:https://download.docker.com/linux/ubuntuDocker Compose:https://github.com/docker/compose/releasesVitualBox:https://www.virtualbox.org/wiki/Linux_DownloadsDocker Machine:...
2019-04-19 00:54:15 151
原创 Docker命令
Docker命令参考资料Docker文档 https://docs.docker.com命令格式docker <选项><命令><参数>Docker命令选项说明[] 表示设置选项时可以设置不同的值,并且可以多次使用。=false表示默认值为false=""表示默认是为空帮助文档$ d...
2019-04-18 18:43:20 381
原创 Docker是什么
DockerDocker是一个开源项目诞生于2013年初,最初是dotCloud公司内部的一个业余项目,基于Google公司的Go语言实现,项目后来加入Linux基金会,遵从Apache2.0协议,项目代码在Github上维护。Docker的目标是实现轻量级的操作系统虚拟化解决方案,Docker的基础是Linux容器LXC等技术,在LXC基础上Docker做了进一步...
2019-04-18 02:21:09 146
原创 Docker Machine
Docker Machine是Docker官方Orchestration项目之一,负责在多种平台上快速安装Docker环境。Docker Machine是一个工具,它允许你在虚拟宿主机上安装Docker Engine引擎,并使用docker-machine命令管理宿主机。你可以使用机器在本地的Mac或Windows上创建和使用Docker宿主机。Mac或Windows...
2019-04-18 00:02:50 532
原创 PHP Swoole Swoft
参考资料Swoole文档中心 https://wiki.swoole.com/Swoft官方文档 https://doc.swoft.org/DockerHub官网 https://hub.docker.comDocker For Windows地址 https://hub.docker.com/editions/community/docker-ce-deskto...
2019-04-17 12:10:29 820
原创 CentOS Vsftp
FTP服务是早期应用级协议之一,是基于C/S结构的双通道协议。FTP服务器软件很多,如Wu-ftpd、Pureftpd、Vsftpd等。vsftpd是CentOS默认的FTP服务器。由于FTP服务是基于C/S结构,在Linux上FTP客户端软件也有很多,如ftp、lftp、wget、curl等。FTP# 查看CentOS系统版本$ cat /etc/redhat-...
2019-04-16 22:37:02 266
原创 PHP FPM
PHP-FPMFPM(FastCGI Process Manager)是PHP FastCGI运行模式的进程管理器,用于管理PHP进程池中的软件,并接收Web服务器的请求。FastCGI是Web服务器和处理程序之间的一种通信协议,与HTTP类似是一种应用层通信协议。PHP是一个脚本解析器,它输入的是PHP脚本,输出的是执行结果。为什么会出现PHP-FPM呢?...
2019-04-16 02:30:21 130
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人