自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 laravel 使用rabbitmq

php laravel rabbitmq

2022-10-27 09:12:08 1053

原创 Laravel 集成swagger

laravel swagger yapi

2022-10-26 09:55:47 489

原创 Git常用命令

查看分支:git branch创建分支:git branch <name>切换分支:git checkout <name>或者git switch <name>创建+切换分支:git checkout -b <name>或者git switch -c <name>合并某分支到当前分支:git merge <name>删除分支:git branch -d <name>...

2022-03-07 17:24:26 237

原创 Yii安装

1.Composer 安装curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer2.改为国内源composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/3.执行 composer create-project --prefer-dist yiisoft/yii2-app

2022-03-07 11:25:39 292

原创 Yii队列(queue)示例

yii2-queue让队列的使用在yii2中变得更轻松,它为各种队列组件的使用提供了一个标准的接口,您只需要配置好需要使用的队列组件,就能轻松使用。安装:php composer.phar require --prefer-dist shmilyzxt/yii2-queue "dev-master"或者添加:"shmilyzxt/yii2-queue": "dev-master" 到 composer.json假设你已经安装好了yii2-queue,下面就说一下怎么使用,本代码基于Yii2.

2022-03-07 10:24:27 841

原创 Yii行为(Behavior)示例

行为行为是 yii\base\Behavior 或其子类的实例。 行为,也称为 mixins, 可以无须改变类继承关系即可增强一个已有的 组件 类功能。 当行为附加到组件后,它将“注入”它的方法和属性到组件, 然后可以像访问组件内定义的方法和属性一样访问它们。 此外,行为通过组件能响应被触发的事件,从而自定义或调整组件正常执行的代码。要定义行为,通过继承 yii\base\Behavior 或其子类来建立一个类。示例代码如下(基于Yii2.0):行为类:<?phpnamespace

2022-03-03 15:14:44 205

原创 Yii事件(Events)的使用

事件(Events)事件可以将自定义代码“注入”到现有代码中的特定执行点。 附加自定义代码到某个事件,当这个事件被触发时,这些代码就会自动执行。Yii 引入了名为 yii\base\Component 的基类以支持事件。 如果一个类需要触发事件就应该继承 yii\base\Component 或其子类。假设订单支付成功后,通过事件通知订单修改状态,代码实现如下。本示例基于Yii2.0订单类:<?phpnamespace common\services;use Yii;use

2022-03-03 14:26:42 467

原创 PHP模板模式

模板模式定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,不同的子类可以以不同的方式实现这些抽象方法。模板模式角色:抽象模板角色:定义了一个具体的算法流程和留给子类必须实现的抽象方法。具体子类角色:实现父类的抽象方法。假设PC端和APP端都有订单列表,显示的字段和查询条件不一样,但是获取数据都是一样的流程,那么可以定义一个父类,PC端和App端作为子类。抽象模板角色:<?phpnamespace common\services;use Yii;/...

2022-02-23 17:59:20 501

原创 PHP建造者模式

建造者模式:将一个产品的内部表象和产品的生产过程分离,使同样的构建过程可以创建不同的产品。建造者模式角色:抽象建造者角色:定义一个抽象接口,规范产品各个组成成分的建造以及如何返回一个产品。具体建造者角色:实现抽象建造者角色所定义的方法。导演者角色:调用具体的建造者角色建造产品。产品角色:在指导者的指导下由建造者所创建的那个对象。在电商系统,需要导出商品数据,订单数据,客户数据等等数据,可以将导出的文件看作产品角色,导出商品数据,订单数据,客户数据等看作具体建造者角色。本示例是Yii2.

2022-02-23 15:49:14 218

原创 PHP装饰模式

装饰模式定义:装饰模式是在不改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。装饰模式角色:抽象构件(Component)角色:定义一个对象接口,可以给这些对象动态地添加职责。具体构件角色:定义一个将要接收附加职责的类。装饰角色:持有一个Component对象,并定义一个与Component接口一致的接口。具体装饰角色:负责给构件对象增加额外的职责。在电商平台,常常会用到红包,优惠券,打折等促销活动,客户在实际支付时需要减去促销部分的金额,这里只考虑一次支付只能使用一种...

2022-02-23 10:23:45 320

原创 PHP简单工厂模式

简单工厂模式订定义:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例,是工厂模式的一个特殊实现。简单工厂模式角色: 工厂角色:负责实现创建所有实例的内部逻辑,可以被外界直接调用,创建所需的产品对象。 抽象产品角色:工厂角色所创建的所有对象的父类,负责定义所有实例的公共接口。 具体产品角色:是工厂角色创建的具体对象。有一个电商平台,需要导出客户,订单等各种数据,那么我们可以将这些数据定义为具体的产品类。本代码基于Yii2.0抽象产品角色:<?phpn...

2022-02-22 16:28:55 298

原创 PHP观察者模式

观察者模式定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。观察者模式有四个角色:抽象通知者角色(Subject):定义了通知的接口规则。具体通知者角色(ConcreteSubject):实现抽象通知者的接口,接到状态改变向观察者下发通知。抽象观察者角色(Observer):定义接到通知后所做的操作接口规则。具体观察者角色(JingDong):实现具体操作方法。考虑这样一种场景,有个电商平台,每天都要统计客户数据和订单数据,那么就

2022-02-22 14:57:08 275

原创 PHP导出csv

$filename = '订单数据.csv';//清空之前的数据ob_clean();ob_end_clean();header("Content-Type:application/vnd.ms-excel;charset=utf-8");header("Content-Disposition:attachment;filename=\"" . urlencode($filename) . "\"");header("Content-Type:application/octet-stream.

2022-02-21 14:45:20 420

原创 PHP接口和抽象类

接口:接口是为了定规范,保持统一性;接口可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容;接口是通过 interface 关键字来定义的,接口中定义的所有方法都必须是公有;接口不能实例化;接口的属性必须是常量;类必须实现接口的所有方法;一个类可以同时实现多个接口,用逗号隔开;接口可以继承接口。抽象类:类中只要有一个方法声明为abstract抽象方法,那么这个类就必须声明为抽象类;使用关键字: abstract;抽象方法只允许有方法声明与参数列表,不允许有方法体;抽象

2022-02-17 16:24:13 616

原创 Sql的执行顺序

sql并不是按照我们的书写顺序来从前往后、左往右依次执行的,它是按照固定的顺序解析的,一般是按照如下顺序:1.from2.on3.join4.where5.group by6.having7.select8.distinct9.order by10.limitfrom:第一步就是选择出from关键词后面跟的表join on:join是表示要关联的表,on是连接的条件。通过from和join on选择出需要执行的数据库表,产生笛卡尔积,生成合并的临时中间...

2022-02-16 17:23:39 1572

原创 Yii Mysql/SQLSERVER/Mongo/Redis配置

在项目common/config/main-local.php添加:<?phpreturn [ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;port=3306;dbname=testdb', 'username' => 'root',...

2022-02-16 15:57:40 389

原创 Swoole 多进程简单例子

本例基于Yii2实现。$params= [];$num = 5;for($i=1; $i<=$num; $i++){ $process = new \swoole_process(function(\swoole_process $process) use ($params){ $data= $process->read(); },true); $pid = $process->start(); $process->wri...

2022-02-16 15:41:41 313

原创 Swoole Websocket应用简单例子

本例子基于Yii2。Websock服务端:$server = new \swoole_websocket_server("0.0.0.0", 8001);$server->set([ 'task_worker_num' => 1,]);$server->on('Open', function ($server, $req) { echo "连接服务器: {$req->fd}\n";});$server->on('Message', func...

2022-02-16 15:25:50 1213

原创 Swoole TCP服务端和客户端简单例子

本例基于Yii2实现。服务器端:$this->server = new \swoole_server("0.0.0.0", 8005);//IP和port根据自己的来$this->server->set(array( 'worker_num' => 2,//设置启动的worker进程数,设置为CPU的1-4倍最合理 'task_worker_num' => 4,//配置task进程的数量,配置此参数后将会启用task功能)); $pollPr..

2022-02-16 14:58:16 1530

原创 Swoole进程与运行流程简析

先看一下官方文档的运行流程图和进程/线程结构图,对swoole有个大概的了解。运行流程图进程/线程结构图结合上图,大概说一下我的理解。1.Master进程Master是swoole的主进程,用于处理swoole的核心事件驱动,它拥有一个MainReactor线程以及若干个Reactor线程。2.Reactor线程处理TCP连接,收发数据的线程。Reactor主线程监听到新的连接accept,会评估每个Reactor线程的连接数量,将此连接分配给连接数最少的react

2022-02-16 13:48:48 744

空空如也

空空如也

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

TA关注的人

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