- 博客(42)
- 资源 (1)
- 收藏
- 关注
原创 laradock 环境下,PHP 该如何实现本地域名通信啊?
laradock 环境下,PHP 该如何实现本地域名通信啊?知识背景:windows 下使用 laradock 作为开发环境使用 phpstrom IDE,并且通过 ssh 的方式连接 workspace 来实现了单元测试有两个本地域名 a.test 、b.test,在宿主机均可访问(大前提)但是但是但是,在项目中却无法使用 curl 来相互访问,着实令人抓狂为了探索答案,梳理知识的过程,顿悟了以下知识,希望对你们也有所帮助阅读收获:梳理 laradock 环境下, php-fpm、c
2022-04-19 00:58:26 3280 3
原创 phpstrom、laradock、xdebug 进行断点调试
phpstrom、laradock、xdebug 进行断点调试背景:laravel 框架封装太完善,经常搞不明白究竟用的是哪个类复杂一点的算法,使用 dd方法调试时,需要疯狂dd,显得过于鸡肋调试流程:1、发请求、跑调试代码2、安装 xdebug 扩展的 PHP 检查是否有预期参数,有就交给 xdebug 处理3、xdebug 模块根据配置去链接指定主机的特定端口4、然后就开始快乐的调试我们要做的:1、确定自己需要执行的 PHP 模式,如 cli,php-fpm,或者两者都要
2022-03-08 18:38:37 1368 2
原创 linux :invalid option错误
linux :invalid option错误可能原因:格式不对,可能是在windows系统上编辑了 shell 脚本并保存了检查办法:使用 vim 文件并查看输出屏幕的最后一行, 如果存在 [dos] 字眼则说明格式不对解决思路:方法一:使用 vim 打开文件,并在命令函模式下 输入 set ff-unix 来实现格式转化 (dos->unix)方法二:重新下来原来的文件代替就好了...
2021-03-31 23:58:03 7871
原创 Docker 实现容器相互联系
Docker 实现容器相互联系写作背景:由于自己在玩耍 Docker 时,无法分清宿主机端口与容器端口之间的关系,以致于连接失败;最后也是花费大把时间来学习才能搞懂,于是就写下该篇内容记录一下自己的成长连接关键:相互连接的容器,需要在相同的网络下。如 docker-compose.yml设置相同的networks值容器之间的访问,使用容器自己的端口个人经历:宿主机通过laradock安装gitlab与jenkins容器。宿主机通过http://localhost:8989正常访问gi
2021-03-27 23:55:34 1336 2
原创 PHP 匿名函数
PHP 匿名函数它是什么:匿名函数是一个没有名字的函数,也叫闭包函数主要作用:在程序中,经常用来做回调函数callback参数的值在闭包中的程序在赋值等传递过程时被不会运行使用示例:闭包函数的基础代码 function () {}创建一个带需要传参的闭包函数$sum = function($a, $b) { return $a + $b;};创建一个带需要额外传参的闭包函数,使用关键字use 来携带值$c = 1;$sum = function($a,
2021-03-26 23:57:34 638
原创 Laravel框架-迁移文件
Laravel框架-迁移文件它是什么:保存在迁移文件目录database\migrations\中的类文件,并且都继承迁移类Illuminate\Database\Migrations\Migration的类。主要作用:可以让开发者在代码中实现对数据表结构的增删改能力对数据库结构起到版本控制的作用运作原理:如何使用?首先就是创建新建数据表的迁移,执行命令php artisan make:migration create_xx_table。如果要为users表创建迁移,那就执行
2021-03-25 23:55:09 970
原创 GIT-优雅地回滚错误提交
GIT-优雅地回滚错误提交背景:日常开发中,偶尔会因为粗心而将代码提交到错误的分支上且推送到了远程。虽说这种情况可以通过写清单的方式来避免,但是如果真的遇到了,那该怎么办呢?下面写好了两种应对方式必备知识:GIT 有两种回退方式,分别是 git resert 与 gitrevertgit resert 方式,它是向后回退,会导致分支数据丢失git revert 方式,它是向前回退,分支信息会保留下来解决原理:将错误的提交回退到工作区,接着将修改保存 贮藏 起来,最后切换分支并弹出
2021-03-24 23:55:55 589 1
原创 Laravel框架-服务提供者
Laravel框架-服务提供者它是什么:它是一个继承抽象类Illuminate\Support\ ServiceProvider的一个类,类中必须实现register()方法主要作用:1.优雅的绑定服务到服务容器上。基于服务提供者的register()方法来实现使用示例:...
2021-03-23 23:56:08 191 1
原创 Laravel框架-服务容器
Laravel 框架-服务容器背景:Laravel 框架的服务容器文档,内容过于羞涩难懂,即使我我看了5遍,但是依旧搞不懂个所以然搜索过相关资料,基本都是教学如何使用的,一直没能找到正确的资料如今搞懂些许,希望记下来可以帮助更多的人是什么:从容器两字,我们能想到的就是装东西的器皿。加上服务两字,那它就是一个存放各式各样服务的东西了别想太多,就应该把它理解成那么简单主要作用:...
2021-03-22 23:57:32 468 1
原创 PHP设计模式-装饰者模式
PHP设计模式-装饰者模式学习背景:学习 laravel 框架时,发现中间件功能可以即插即用,随意扩展。但又因为其过于灵活,加之没搞明白实现原理,以致于几次工作中碰壁。为搞懂其原理,在揭开其神奇的面纱时,就误打误撞学习了一个新的设计模式,即装饰者模式。模式介绍:装饰者模式是在开放—关闭原则下实现动态添加或减少功能的一种方式装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能代码示例:<?phpinterface Mid
2021-03-21 23:53:50 160
原创 PHP 后期静态绑定
PHP的后期静态绑定理解:用于在继承范围内引用静态调用的类后期静态绑定使用关键字 static 来实现通过这种机制,“static::”不再被解析为定义当前方法所在的类,而是在实际运行时计算得到的,即为运行时最初调用的类...
2021-03-20 23:58:22 153 1
原创 phpstrom、laradock、phpunit 进行单元测试
phpstrom、laradock、phpunit 进行单元测试背景:环境: windows 系统电脑,laradock 套集成环境,phpstrom开发容器中的项目与的本地项目为同一路径,这是基于映射机制实现的,日常开发使用 phpstrom(IDE) 直接打开本地的项目进行开发如今我想实现单元测试,本地修改代码,在IDE中点击运行,就能使用容器中的环境来运行。这想法是可以实现的!!实现原理:IDE 中进行单元测试,IDE 会使用 SSH 命令连接到容器(实现方式很多,这里介绍 SSH
2021-03-20 05:04:51 771 1
原创 Laravel 框架生成模型 property 注释
Laravel 框架生成模型 property 注释背景:在Hyperf框架中使用命令创建模型前,如果数据表存在,就会自动生成 property 注释。有 property 注释的模型,结合 IDE 扩展,就可以实现属性提示功能,开发起来很爽使用 Laravel框架开发时,却发现没有找到相似功能,但是很想实现类似注释,于是上头大哥就给我推荐了这个实现原理:在 laravel框架中创建一个 Artisan命令行在命令的实现中,通过数据表名来获取结构与字段类型,然后循环字段并根据类型匹配对应的
2021-03-19 01:28:25 1886 2
原创 MySQL 查看执行的 SQL 语句
MySQL 查看执行的 SQL 语句背景:查看开发框架最后执行的SQL,以便优化改进SQL实现原理:启用 MySQL 的记录日志功能使用 tail 命令来实时内容示到屏幕上实现流程:在 MySQL 中执行命令 SHOW VARIABLES LIKE "general_log%"; 来查看日志启用状态与日志文件地址。其中 general_log 右侧的 ON 表示启用,如果为OFF则表示关闭; general_log_file 右侧的值就是保存日志的文件了mysql> SHO
2021-03-17 23:54:06 1493
原创 hyperf 自定义分页与多维数组排序的实现
hyperf 自定义分页与多维数组排序的实现背景:需要实现一个优惠卡功能,主表保存优惠卡信息,附表保存用户领取到的优惠卡信息在 APP 首页需要展示优惠卡列表,排序顺序为优先展示未获取的,再到客户端自定义排序字段排序实现:核心函数是 array_multisor() ,专门用来实现多维数据排序的其次是数据工具类Arr,它在 laravel 与 hyperf 框架中都存在,贼好用分页实现:通过集合Collection的 forPage 方法获取对应的分页数据其次通过 分页工具Pa
2021-03-16 23:09:43 1356 1
原创 laravel-admin 权限分配
laravel-admin 权限分配知识点:权限 分配给用户后,用户立即可以访问对应的页面菜单 需要分配给用户拥有的角色,用户才能看到对应的菜单分配权限:首先是添加一个新权限其次添加一个新角色添加新用户并设置为上面添加的新角色此时,用户已经具有了推荐商品的所有权限,此时用户访问路由 /admin/recommends就可以看到具体页面内容了权限分配完,用户就可以访问页面了。但此时用户是没有菜单也不知道路由的,所以,我们还需要分配菜单菜单分配:
2021-03-15 23:23:49 1536
原创 Linux 系统实现 SSH 连接的 3 种 方式
Linux 系统实现 SSH 连接的 3 种 方式密码登入公钥登入私钥登入登入前提服务端安装好 ssh 服务, openssh-server客户端与服务器端均要拥有 ssh-key,可以使用命令 ls ~/.ssh/ 来查看是否拥有 id_rsa 与 id_rsa.pub 文件,如果没有同时拥有这两个文件,那就执行命令ssh-keygen并持续按回车键生成它们前提假设 :客户端 A 远程连接服务端 B,A 的 IP 等于10.10.10.104,B 的 IP 等于172.19.0.2
2021-03-15 00:00:12 6410
原创 六顶思考帽
六顶思考帽是什么?是 爱德华·德·波诺博士 开发的一种思维训练模式是爱德华·德·波诺博士写的一本书的名字,书名就叫做《六顶思考帽》能做什么?六个维度,全面而深度思考提升系统思考和策略思考能力平行思考,开发个人潜能并汇聚团队智慧减少争论和冲突,大大节省沟通和会议时间如何使用?规定时间内,戴上特定的帽子,秉着某个角度思考问题注意什么?同一时间只用一顶帽子思考保持每顶帽子的纯洁度和清新注意时间,15分钟对六顶思考帽理解的最大误区就是仅仅把思维分成六个不同颜色,对六顶思考
2021-03-07 23:22:11 340
原创 trait
Trait 关键字由来:PHP 是一门单继承的语言。为了实现多继承的效果, 在 5.4 以后引入了新的关键字 Trait 来解决多继承问题。作用:以一种优雅的方式解决了多继承问题,提升了代码的复用性。用法:使用 Trait 关键字创建 Trait,然后在需要使用的类中使用 use 来导入就可使用实验:<?phpclass Base{ public function hello() { echo 'method hello from class Base' . PHP_E
2021-03-07 00:03:57 133
原创 include 与 require 关键字
include 与 require 关键字作用:它们都是用来包含并且运行指定文件的。如果被包含的文件包含关键字 return,那么 return后面的代码将不会执行。并且可以使用变量来接收return的返回值。被包含文件没有 return时,也会有结果,那些结果可以用来判断是否导入成功区别:它们包含的文件不存在时所产生的错误级别不同。其中:include产生 E_WARNING 级别错误,脚本继续运行require产生 E_COMPILE_ERROR 级别错误,脚本终止运行用法:(关
2021-03-05 22:09:59 308
原创 hyper 框架嵌入 laradock 中
将 hyper 框架嵌入 laradock背景:公司需要使用 hyper 框架开发项目,但之前都是基于 laradock 开发项目,且习惯了执行 "docker-composer start " 启动所有的服务。然后就萌生了把 hyper 嵌入到 laradock 中具体实现一共六个步骤,也就是改改配置,运行一下程序即可步骤一:在 .env 中添加 hyperf 配置### HYPERF ##################################################HY
2020-10-06 15:33:46 753 1
原创 SourceTree 踩坑集合(完善中)
SourceTree(ST) 踩坑集合1、部分功能异常请使用最新版本 GIT。 安装最新版 GIT触发过的异常功能:1、ST 的‘ 命令行模式’无法使用,点击无效2、ST 无法推送新建的分支到远程2、拉取远程分支在 ST 中找到对应的远程分支,‘双击左键’ 或 右键后选择‘检出 origin/xx 分支’。然后查看本地分支就能看到新建的关联分支了3、解决 无权限 或 需要账号密码问题1、使用 GIT 生成密钥。使用 Git bash 输入以下命令并持续回车:ssh-keygen -o
2020-07-05 00:58:17 708 1
原创 GIT注释规范推荐
GIT释规范推荐为什么需要规范无规矩不成方圆,编程也一样。如果你有一个项目,从始至终都是自己写,那么你想怎么写都可以,没有人可以干预你。可是如果在团队协作中,大家都张扬个性,那么代码将会是一团糟,好好的项目就被糟践了。不管是开发还是日后维护,都将是灾难。这时候,有人提出了何不统一标准,大家都按照这个标准来。于是 ESLint,JSHint 等代码工具如雨后春笋般涌现,成为了项目构建的必备良品。Git Commit 规范可能并没有那么夸张,但如果你在版本回退的时候看到一大段糟心的 Commit,恐怕
2020-06-22 18:10:46 800
原创 Ecshop升级PHP版本到7.0
Ecshop升级PHP版本到7.0背景故事:‘我可以忍受黑暗,如果我未曾见过光明!’ 就看了这么一句话,就下定决心升级了。其实也没啥,就是需要花费一定的时间去升级、维护,并且是一路走到黑的那种。1、请先把调试模式打开,在config.php配置文件中添加如下代码:define('DEBUG_MODE', 3); //显示所有提示 + 禁用缓存2、访问各个页面,先解决一些小错误提示...
2018-12-13 18:11:26 2891
原创 PHP:使用CURL发送请求获取数据(接口必备技能)
PHP:使用CURL发送请求获取数据(接口必备技能)<?php//http请求类:用于调用接口获取数据class Request{ /** * GET方式获取数据 * @param string $url URL * @param bool $ssl 是否为安全访问 https 为 true * @retur...
2018-12-13 18:09:29 811 1
原创 WDlinux:wdCP云主机管理系统无法切换php版本
WDlinux:wdCP云主机管理系统无法切换php版本问题描述:安装多版本PHP,设置Nginx引擎模式,有设置默认版本,有去项目管理设置运行的PHP版本,并且PHP版本提示切换成功。但是无论怎么切换,phpinfo()打印的版本信息都不变,如果把phpinfo中对应的版本关掉,页面提示502,查看错误日志则显示无法找到 /tmp/php-53-cgi.sock问题分析:切换无效...
2018-12-13 18:07:34 1071 1
原创 CentOS 系统安装软件报错:cmake :command not found
cmake :command not found背景:新开机的CentOS系统安装Wdlinux过程报错结论先行:1、报错意思为没有发现cmake命令。正常情况下,系统会自动帮忙安装的,很有可能是yum旧了,更新试一下 2、备份->下载源->清空缓存->生成新缓存。具体步骤:1、备份一下源,防止万一: mv /etc/yum.repos....
2018-08-31 21:40:30 5496
原创 Git:避免更新代码导致被还原或覆盖的解决方案
Git:避免更新代码导致被还原或覆盖的解决方案结论先行:1、明确分工,相同文件,尽可能只由一个人操作 (根本上解决问题) 2、保存储藏-&gt;拉取代码-&gt;弹出储藏-&gt;解决冲突 (推荐,版本记录好看且方便) 3、拉取代码,合并时的必填消息不填或为空!最后检查每一个被修改的文件,确保没有问题后再重新提交白菜实验:人物:小白与小菜 前提:协同开发,关联同一个远程仓...
2018-06-30 19:30:19 7051 3
原创 git pull 与 git push 区别
git pull 与 git push 区别结论先行:1、git pull = git fetch + git merge 2、git fetch 只会将本地库所关联的远程库commit ID 更新到最新 3、git pull 将本地库所关联的远程库commit ID 更新到最新的同时,还自动合并了远程仓库的代码(冲突另外说)白菜实验一:人物:小白与小菜 前提:协同开发,...
2018-06-30 19:28:45 8575 1
原创 安装最新版GIT
CentOS操作系统安装最新版GIT具体步骤:1、安装依赖包yum install perl cpio curl curl-devel zlib-devel openssl-develexpat-devel gettex-devel -y2、找到最新Git 1、访问 https://github.com/git/git ,点击 releases 按钮 ...
2018-04-24 22:50:53 961 2
原创 nginx从http重定向到https
使用nginx把http重定向到https背景: 1、没有加S的网页容易被嵌入广告 2、没有www的网页,微信支付调用不起来,够坑吧!解决方案: 1、将http重定向到https 2、将 domain.com 跳转到 www.domain.com必备知识: 1、http 默认为 80 端口 2、https 默认为 443 端口...
2018-04-24 22:10:43 6795 1
原创 Filezilla拖拽文件出错
Filezilla无法确定拖放操作目标,由于shell未正确安装__解决办法问题描述: 使用filezilla拖拽文件到桌面的时候,提示”无法确定拖放操作目标……”解决思路: 打开cmd去到filezilla安装目录执行如下两条指令后重启即可(regsvr32 fzshellext.dll 、regsvr32 fzshellext_64.dll )解决步骤: 具体解决办法很多,那就来一个小白也能
2017-09-07 21:57:30 3787 2
原创 MVC结构分析与设计
MVC模型: MVC是一种设计模式,它强制的将应用程序的输入、处理、和输出分开。使用了MVC的应用程序被分为3个核心部件:视图(View)、模型(Model)、控制器(Controller)。它们各司其职,既分工明确又相互合作。原理: 首先视图接受用户输入请求,然后将请求传递给控制器,控制器再调用某个模型来处理用户的请求,在控制器的控制下,再将处理后的结果交给某个视图进行格式化输出给用户.这是经
2017-03-18 10:46:52 764
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人