- 博客(684)
- 资源 (40)
- 论坛 (1)
- 收藏
- 关注
原创 php语法问题empty($id) && $this->error(‘参数不能为空!‘);
empty($id) && $this->error('参数不能为空!');请问这句话怎么解释!多谢了!a && b与逻辑运bai算符,当a、b都为dutrue时才为true,因zhi此,当a为False时,b则不执行,直接跳过。如dao果empty($id)为空返回true时,才zhuan会执shu行$this->error('参数不能为空!')。否则直接跳过...
2020-12-07 10:38:33
146
原创 php适配器模式
把实现了不同接口的对象通过适配器的方式组合起来放在一个新的环境<?phpnamespace adapter;/** * 高级媒体接口 */interface MediaAdvanceInterface{ public function playMp4($file=''); public function playWma($file='');}<?phpnamespace adapter;/** * mp4高级播放器实体 */class Advan
2020-12-02 17:17:11
115
原创 php外观模式
把系统中类的调用委托给一个单独的类,对外隐藏了内部的复杂性,很有依赖注入容器的感觉哦<?phpnamespace facade;/** * 动物接口 */interface AnimalInterface{ /** * 生产方法 * * @return string */ public function produce();}<?phpnamespace facade;/** * 实体鸡工厂 */class Chicke.
2020-12-02 15:59:23
56
原创 php享元(轻量级)模式
结构型模式php享元(轻量级)模式就是缓存了创建型模式创建的对象,不知道为什么会归在结构型模式中,个人觉得创建型模式更合适,哈哈~其次,享元强调的缓存对象,外观模式强调的对外保持简单易用,是不是就大体构成了目前牛逼哄哄且满大的街【依赖注入容器】下面我们借助最简单的’工厂模式‘来实现享元模式,就是给工厂加了个缓存池<?phpnamespace flyweight;/** * 动物接口 */interface AnimalInterface{ /** ...
2020-12-02 15:37:26
69
1
原创 php桥接模式
结构型模式php桥接模式基础的结构型设计模式:将抽象和实现解耦,对抽象的实现是实体行为对接口的实现例如:人 => 抽象为属性:性别 动作:吃 => 人吃的动作抽象为interface => 实现不同的吃法<?phpnamespace bridge;/** * 吃接口 */interface EatInterface{ /** * 吃 * * @param string $food 食物 * @return mixed ...
2020-12-02 14:57:04
113
原创 建造者模式
创建型模式php建造者模式简单对象构建复杂对象基本组件不变,但是组件之间的组合方式善变下面我们来构建手机和mp3手机简单由以下构成 手机 => 名称,硬件, 软件硬件又由以下硬件构成 硬件 => 屏幕,cpu, 内存, 储存, 摄像头软件又由以下构成 软件 => android, ubuntump3简单由以下构成 手机 => 名称,硬件, 软件硬件又由以下硬件构成 硬件 => cpu, 内存, ...
2020-12-02 14:15:55
106
原创 原型模式
php原型模式用于创建对象成本过高时1.原型模式与工厂模式作用类似,都是用来创建对象2.与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时重复的初始化操作3.原型模式适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可<?phpnamespace prototype;/** * 原型实体 */class Prototype extends PrototypeA
2020-12-02 11:56:52
99
原创 抽象工厂模式
php抽象工厂模式说说我理解的工厂模式和抽象工厂模式的区别:工厂就是一个独立公司,负责生产对象;抽象工厂就是集团,负责生产子公司(工厂);<?phpnamespace factoryAbstract;interface Factory { public function createFarm(); public function createZoo();}<?phpnamespace factoryAbstract;class AnimalFac
2020-12-02 11:25:27
109
原创 工厂模式
创建型模式工厂方法模式和抽象工厂模式的核心区别工厂方法模式利用继承,抽象工厂模式利用组合工厂方法模式产生一个对象,抽象工厂模式产生一族对象工厂方法模式利用子类创造对象,抽象工厂模式利用接口的实现创造对象工厂方法模式可以退化为简单工厂模式(非23中GOF)<?phpnamespace factory;/** * 动物接口 */interface AnimalInterface{ }<?phpnamespace factory;/** * 实体鸡
2020-12-02 10:50:47
38
原创 单例模式
<?phpnamespace singleton;/** * 单例 */class Singleton{ /** * 自身实例 * * @var object */ private static $_instance; /** * 构造函数 * * @return void */ private function __construct() { } /** * 魔法方法 * 禁止c.
2020-11-24 10:50:44
70
原创 php二维数组中插入一个元素
$arr['uid'] = $uid; array_walk($address, function (&$value, $key, $arr) { $value = array_merge($value, $arr); }, $arr);
2020-11-23 14:06:23
344
原创 mac安装Kafka
在自己的mac上安装Kafka,直接执行命令brew install kafka,结果报了如下提示:kafka: Java 1.8 is required to install this formula.JavaRequirement unsatisfied!You can install with Homebrew Cask: brew cask install homebrew/cask-versions/java8You can download from: https://www.o
2020-10-15 09:52:36
113
原创 brew安装RabbitMQ
brew install rabbitmqMQ的安装目录在/usr/local/Cellar/rabbitmq安装RabiitMQ的可视化监控插件 // 切换到MQ目录,注意你的安装版本可能不是3.7.4 cd /usr/local/Cellar/rabbitmq/3.7.4/ // 启用rabbitmq management插件 sudo sbin/rabbitmq-plugins enable rabbitmq_management配置环境变量...
2020-10-14 18:42:22
80
原创 git commit之后,想撤销commit
写完代码后,我们一般这样git add . //添加所有文件git commit -m "本功能全部完成"执行完commit后,想撤回commit,怎么办?这样凉拌:git reset --soft HEAD^这样就成功的撤销了你的commit注意,仅仅是撤回commit操作,您写的代码仍然保留。...
2020-10-14 12:47:40
133
原创 git add后撤销
所有文件git reset HEAD .单个文件git reset HEAD -filenamegit add *多个文件可以 git reset HEAD .单个文件git reset HEAD 文件名
2020-10-14 12:27:59
286
原创 php数组函数array_column用法
一般array_column是获取二维数组的制定列,组成新的数组输出。今天看到有可以制定第三个参数,制定输出数组的key。<?php$arr = [ [ 'id' => 1, 'name' => 'a' ],[ 'id' => 2, 'name' => 'b', ], [ 'id' => 4, 'name' => 'c' ], [
2020-10-13 20:31:37
106
原创 MacOS 的 zsh 和 bash 切换
zsh、bash 都是 shell,zsh 比 bash 更加强大,功能也更加完善,此篇文章说明 zsh 和 bash 之间的切换。Linux/Unix 产品一般默认的都是使用 bash。1. 从 bash 切换到 zsh1.1 使用系统自带的 zshchsh -s /bin/zsh输入密码成功切换,重启终端即可使用 zsh。1.2 使用第三方的 zsh如从 github安装的zsh;1.2.1 Clone代码到本地:git clone https://github.c
2020-10-13 19:55:55
191
原创 git如何新建分支,提交分支到远程服务器
1) 切换到基础分支,如主干git checkout master2)创建并切换到新分支git checkout -b pandagit branch可以看到已经在panda分支上3)更新分支代码并提交git add .git commit -m "init panda"git push origin panda4)在git代码管理界面经可以看到panda分支了,成功~~...
2020-10-13 19:44:47
267
原创 please install the ext-async extension, using SwooleAsyncClient报错?
swoole版本在4.0以上后,swoole不在支持$client = new Swoole\Client(SWOOLE_SOCK_TCP,SWOOLE_SOCK_ASYNC);这种写法,需要安装另一个异步扩展。swoole_async.so这个扩展依赖swoole,比如说,swoole版本是4.1.1,那么async版本也的是4.1.1,否则编译不过。安装如下:扩展编译git clone https://github.com/swoole/async-ext.gitcd asyn
2020-10-05 09:00:25
364
原创 Kafka使用Connect来导入/导出数据
首先看官方文档:从控制台读出数据并将其写回是十分方便操作的,但你可能需要使用其他来源的数据或将数据从Kafka导出到其他系统。针对这些系统, 你可以使用Kafka Connect来导入或导出数据,而不是写自定义的集成代码。Kafka Connect是Kafka的一个工具,它可以将数据导入和导出到Kafka。它是一种可扩展工具,通过运行connectors(连接器), 使用自定义逻辑来实现与外部系统的交互。 在本文中,我们将看到如何使用简单的connectors来运行Kafka Connect,这些c
2020-09-29 14:17:47
181
原创 MQ理解……消息队列的使用场景是怎样的?
个人认为消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。使用场景的话,举个例子:假设用户在你的软件中注册,服务端收到用户的注册请求后,它会做这些操作:校验用户名等信息,如果没问题会在数据库中添加一个用户记录 如果是用邮箱注册会给你发送一封注册成功的邮件,手机注册则会发送一条短信
2020-09-29 10:06:25
93
原创 消息队列的使用场景是怎样的?
小红是小明的姐姐。小红希望小明多读书,常寻找好书给小明看,之前的方式是这样:小红问小明什么时候有空,把书 给小明送去,并亲眼监督小明读完书才走。久而久之,两人都觉得麻烦。 后来的方式改成了:小红对小明说「我放到书架上的书你都要看」,然后小红每次发现不错的书都 放到书架上,小明则看到书架上有书就拿下来看。书架就是一个消息队列,小红是生产者,小明是消费者。这带来的好处有:1.小红想给小明书的时候,不必问小明什么时候有空,亲手把书交给他了,小红只把书放到书架上 就行了。这样小红小明的时间都更自由。
2020-09-29 09:45:05
99
原创 kafka设置多代理集群
到目前为止,我们一直在使用单个代理,这并不好玩。对 Kafka来说,单个代理只是一个大小为一的集群,除了启动更多的代理实例外,没有什么变化。 为了深入了解它,让我们把集群扩展到三个节点(仍然在本地机器上)。首先,为每个代理创建一个配置文件 (在Windows上使用copy命令来代替): 1 2 > cp config/server.properties config/server-1.properties > cp config/server.
2020-09-28 17:57:58
226
原创 laravel 请求request 接收参数
今天在二次开发得时候看到$request->has(),发现了一个修改方法解耦得操作,于是,查询了关于laravel这方面得资料。如下:获取所有输入值$input = $request->all();获取单个输入值使用一些简单的方法,就可以从Illuminate\Http\Request实例中访问用户输入。你不需要关心请求所使用的 HTTP 请求方法,因为对所有请求方式的输入都是通过input方法获取用户输入:$name = $request->input...
2020-09-28 14:23:00
291
原创 HTTP提交方式之PATCH
在使用postman请求接口得时候,使用get,post得时候我们是使用body下form-data来传输数据得,但是使用patch时候就不是了,默认是以x-www-form-urlencoded的contentType来发送信息,并且信息内容是放在request的body里。PUT方法和PATCH方法的提交目的地都是直接指向资源,而POST方法提交的数据的目的地是一个行为处理器。PUT方法用来替换资源,而patch方法用来更新部分资源,然而PATCH和POST都是非幂等的,POST请求服务器执行一
2020-09-28 14:18:35
1133
原创 kafka生产/消费消息
发送一些消息Kafka自带一个命令行客户端,它从文件或标准输入中获取输入,并将其作为message(消息)发送到Kafka集群。默认情况下,每行将作为单独的message发送。运行 producer,然后在控制台输入一些消息以发送到服务器。 1 2 3 > ./kafka-console-producer.sh --broker-list localhost:9092 --topic test This is a message...
2020-09-27 17:30:43
64
原创 kafka创建一个 topic(主题/分片)
让我们创建一个名为“test”的topic,它有一个分区和一个副本: 1 > ./kafka-topics.bat--create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 现在我们可以运行list(列表)命令来查看这个topic: 1 2 > ./kafka-topics.bat--list..
2020-09-27 17:14:58
364
原创 laravel 软链接创建
当你想在laravel下使用软链接来访问静态资源时,不需要跳转目录,应为laravel支持软链接。如下微软电脑得软链接更像快捷方式:但是呢,使用命令比较好一点,运行cmd(管理员身份运行):windows命令: mklink /d C:\phpstudy_pro\WWW\zp.doitba.com\public\spa C:\phpstudy_pro\WWW\zp.doitba.com\resources\spa\dist语法:mklink [[/D] | [/H] | [/...
2020-09-27 16:35:41
180
原创 win下kafka启动服务器
Kafka 使用ZooKeeper如果你还没有ZooKeeper服务器,你需要先启动一个ZooKeeper服务器。 您可以通过与kafka打包在一起的便捷脚本来快速简单地创建一个单节点ZooKeeper实例。 1 2 3 >./zookeeper-server-start.bat config/zookeeper.properties ... 现在启动Kafka服务器: 1 2 3 4...
2020-09-27 14:21:29
52
原创 win下kafka安装
安装kafka下载需要的软件并解压,下载地址:http://kafka.apache.org/downloads.html进入kafka安装目录的config目录,修改server.properties文件,如修改的地方如下:把log.dirs改成自己的目录,一般在kafka安装目录下新建文件夹来存放日志文件Kafka会按照默认,在9092端口上运行,并连接zookeeper的默认端口:2181运行kafka服务器进入kafka安装目录,按下shift +右键,选择 "在此处打开命令窗口",输
2020-09-27 14:16:18
32
原创 kafka启动,文件被使用或者无法访问
清除C:\Users\86152\phpstudy_prokafka_2.12-1.0.0log 目录下日志,然后再次启动,可能目录不一样,根据上图返回得不可访问得路径来清理
2020-09-27 14:13:48
73
原创 Target [Medz\Cors\CorsInterface] is not instantiable while building [Medz\Cors\Laravel\Middleware\Co
laravel框架更新项目后,报错如标题Target [Medz\Cors\CorsInterface] is not instantiable while building [Medz\Cors\Laravel\Middleware\Cors].(目标[Medz\Cors\CorsInterface]在构建[Medz\Cors\Laravel\中间件\Cors]时不能实例化。)各种类包加载不上,这个时候可能时默认加载缓存的问题。清除绿色框下的缓存文件即可...
2020-09-25 16:24:05
259
原创 Laravel错误:用于反序列化‘Symfony \ Component \ Routing \ CompiledRoute‘的错误数据格式
项目二次开发时,第一次运行报错,如标题,请看下面解决方式在与Laravel Envoy进行实验时,我遇到了同样的错误。我认为我将7.0版的Envoy拉到了我的Laravel 5.8版应用程序中。为我解决此问题的方法是rm -fr bootstrap/cache/*使用根Laravel目录中的命令清除应用程序的bootstrap / cache目录。一旦这样做,我便能够正常使用我的应用程序,并且所有工匠命令都开始起作用。...
2020-09-25 15:41:21
219
原创 Windows里正确安装Zookeeper以服务运行
1.zookeeper下载地址:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.8/2.修改zookeeper-3.4.8\conf下的:zoo_sample.cfg文件名,改为:zoo.cfg3.主要修改配置中的 dataDir ,根据自己实际修改即可,如下比如我这里是dataDir=D:\SoftWare\zookeeper-3.4.8\data4.下载的Zookeeper是.cmd的批处理命令运行的,默认没有提供以.
2020-09-24 15:32:13
139
原创 tp6中kafka使用
<?phpnamespace app\util;use \RdKafka\Conf;use \RdKafka\Producer;class Kafka{ public $kafkaConfig; public $kafkaResource; //初始化 public function __construct(){ $this->connect(); } /** * 连接 */ pri.
2020-09-24 15:03:46
172
原创 easywechat报错:Failed to cache access token
overtrue/wechat 默认使用的是 symfony/cache 来进行缓存操作,ubuntu中,symfony/cache会在/tmp目录下建立symfony_cache来储存临时缓存。ps:如果不是/tmp目录,可以使用 sys_get_temp_dir() 方法获取你的临时文件目录。因为之前使用www-data用户运行的项目,所以symfony_cache目录已被www-data创建,且其他用户不可写,直接删掉这个目录或者修改权限就可以了!然后再运行得时候可能会出现easywecha
2020-08-20 09:56:14
676
原创 登录接口的安全
前言大家学写程序时,第一行代码都是hello world。但是当你开始学习WEB后台技术时,很多人的第一个功能就是写的登录但是我在和很多工作经验较短的同学面试或沟通的时候,发现很多同学虽然都有在简历上写:负责项目的登录/注册功能模块的开发和设计工作,但是都只是简单的实现了功能逻辑,在安全方面并没有考虑太多。这篇文章主要是和大家聊一聊,在设计一个登录接口时,不仅仅是功能上的实现,在安全方面,我们还需要考虑哪些地方。暴力破解!只要网站是暴露在公网的,那么很大概率上会被人盯上,尝试爆破这种简单且有效
2020-08-12 10:14:53
140
原创 mysql隐蔽的索引规则导致数据全表扫描
索引是为了加速数据的检索,但是不合理的表结构或适应不当则会起到反作用。我们在项目中就遇到过类似的问题,两个十万级别的数据表,在做连接查询的时候,查询时间达到了7000多秒还没有查出结果。 首先说明,关联的字段都已经建立了相对应的索引,在执行计划的时候发现另外一张表没有走索引,结果如下图:具体描述为:Range checked for each record (index map: 0x1); Not exists优化:1、当然最直接的想法就是修改两个表的request_id字段的定义,
2020-08-10 14:29:04
196
原创 php开发项目运行报错division by zero或者Warning: Division by zero
Division by zero 在百度翻译中是除以0,实际情况是在代码运行中,有运算,但是除数为0,我们知道,除数是不能为0得,所以这个地方得做判断。看代码:处理错误得方式有2中,上图代码是处理问题得一种,第二种是直接用@屏蔽掉错误,不建议这样处理。...
2020-08-06 10:05:43
379
原创 解决跨域携带Cookie问题(如tp6验证码)
php接口,解决跨域的构造函数/* * 解决跨域,并统一接收参数--析构方法 */ protected function _initialize() { //比其他跨域多了Access-Control-Allow-Credentials,允许携带Cookie header('Access-Control-Allow-Credentials: true'); header('content-type:text/html;
2020-07-28 11:33:26
384
2018全新无限流量卡充值官网PHP源码
2019-03-20
云尚在线发卡系统PHP源码|专门为个人或小型企业提供在线售卡,订单处理系统
2019-03-20
抖音无水印短视频在线解析网站PHP源码
2019-03-20
后台模板.7z
2019-08-22
dayrui-book-master.zip
2019-08-22
xlggg-http-notification-master.zip
2019-08-22
程序员的基本素质是什么?
发表于 2019-05-23 最后回复 2019-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝