![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
文章平均质量分 78
come11234
有道无术,术尚可求。有术无道,止于术也。
展开
-
PhpStorm中常用快捷键整理
根据英文的方法名生成代码1.AIcode插件Fitten Code与GitHub Copilot 或CoCopilot2.一键转驼峰写法 ( CamelCase 插件)3.translater 中汉语翻译4.提示代码相关插件(自带)Php Inspections,它其一的功能是会提示你哪些过时的写法,然后点击自动帮您修正。原创 2024-01-26 09:42:42 · 476 阅读 · 0 评论 -
Ubuntu 安装php环境
直接用官方PPA源sudo add-apt-repository -y ppa:ondrej/phpsudo apt-get update显示软件安装包列表,是否已经有了PHP 7.1,可选apt-cache pkgnames | grep php7.2安装,2018年05月08日 星期二,现在的最新版是7.2sudo apt-get install php7.2-fpm安装pecl工具apt-get install peclbash: phpize: command not f原创 2022-04-01 18:09:26 · 2007 阅读 · 0 评论 -
PhpStorm Git 操作
本教程适用于以下产品:AppCode、CLion、Datalore、DataGrip、GoLand、IntelliJ IDEA、PhpStorm、PyCharm、Rider、RubyMine、WebStorm 等 JetBrains 的 IDEs下面以 PhpStorm 为例进行介绍 一、前提1、下载并安装好 PhpStorm2、下载并安装好 Git3、熟悉 Git 相关命令行操作 二、Git pull &am...转载 2022-04-01 13:11:57 · 2176 阅读 · 0 评论 -
Composer 版本号
Composer 的版本约束可以分为 版本号约束 和 稳定性约束,两者结合共同影响着 Composer 的版本约束。版本号从大到小排列,稳定性从 stable、RC、beta、alpha、dev 排列,先排版本号后稳定性。排列例如:v1.3 > v1.2.5 > v1.2.3 > v1.2.3-beta > v1.2.1 > v1.2.0-rc > v1.2.0-beta > v1.2.0-dev > v1.2.0运算符Composer 可以通过转载 2022-04-01 10:15:32 · 1530 阅读 · 0 评论 -
Vue 学习笔记
基本概念node 简单的说 Node.js 就是运行在服务端的 JavaScript。 node stript.js // 执行 node -v / -hnpm包管理器(Package Manager)npm 最初它只是被称为 Node Package Manager,用来作为Node.js的包管理器。但是随着其它构建工具(webpack、browserify)的发展,npm已经变成了 “the package manager for JavaScript”,它用来安装、管理和分享原创 2022-03-31 10:21:45 · 1025 阅读 · 0 评论 -
PHP 使用非对称加密算法(RSA)
加密的类型:在日常设计及开发中,为确保数据传输和数据存储的安全,可通过特定的算法,将数据明文加密成复杂的密文。目前主流加密手段大致可分为单向加密和双向加密。单向加密:通过对数据进行摘要计算生成密文,密文不可逆推还原。算法代表:Base64,MD5,SHA;双向加密:与单向加密相反,可以把密文逆推还原成明文,双向加密又分为对称加密和非对称加密。对称加密:指数据使用者必须拥有相同的密钥才可以进行加密解密,就像彼此约定的一串暗号。算法代表:DES,3DES,AES,IDEA,RC4,RC5;非对称加转载 2022-01-11 19:30:41 · 915 阅读 · 0 评论 -
QConf介绍
王康,奇虎360基础架构组资深工程师 目前负责分布式配置管理服务QConf的研发和维护,并推动其在奇虎360的应用。专注于服务端底层通用工具、框架和系统的研发,为公司的Web服务端及服务端提供易用、可靠的基础服务支持。QConf是奇虎360广泛使用的配置管理服务,现已开源,欢迎大家关注使用。https://github.com/Qihoo360/QConf本文从设计初衷,架构实现,使用情况及相关产品比较四个方面进行介绍。设计初衷在分布式环境中,出于负载、容错等种种需要,几乎所有的服务都会在不同的机转载 2021-11-15 19:46:18 · 798 阅读 · 0 评论 -
php捕获致命错误
记录php错误日志可以有力的帮我们查找问题、修复bug,php提供了set_error_handler、set_exception_handler来捕获错误和异常。但是set_error_handler并不能捕获E_ERROR、 E_PARSE、 E_CORE_ERROR、E_CORE_WARNING、E_COMPILE_ERROR、E_COMPILE_WARNING、E_STRICT等错误。一般来讲,如果是致命错误,会导致php解释器都无法编译通过,自然不能捕获这些错误,但是,我们可以通过一些方法来巧原创 2020-12-08 20:50:33 · 921 阅读 · 0 评论 -
设计模式原则(下)
参考链接:https://www.imooc.com/read/53/article/1079 1、基本概念 本节继续介绍设计模式的七大原则的基本概念,上一节重要讲了开闭原则、单一职责原则、里氏替换原则、依赖倒置原则,这一节我们主要了解下接口隔离原则、迪米特法则以及合成复用原则。 本节以介绍基本概念为主,其中会加入部分演示代码、uml 类图讲解,能理解基本概念即可。后续章节设计模式的讲解会详...转载 2020-10-12 21:20:27 · 161 阅读 · 0 评论 -
PHP安装zookeeper扩展(最新基于zookeeper-3.5.8)
PHP安装zookeeper扩展一、安装依赖(已Centos为例)二、安装Cppunit测试库三、安装zookeeper-cl...转载 2020-09-10 20:06:41 · 319 阅读 · 0 评论 -
新浪微博 发微博消息的处理
1.普通小众用户采用pull推送模式往粉丝消息队列里分别异步推送消息ID。lpush和 lpop 使用。模拟栈数据结构。先进后出。lpush user:1 1001lrange user:1 1 10取出10条最新消息同理:微信朋友圈。也可以这办。展示的时候取最近的数据。2 微博大V粉丝都有500w+,发微博时,数据到底是怎么处理的?之前了解, 微博一个大V 粉色都有500w+...原创 2020-02-27 19:12:47 · 775 阅读 · 0 评论 -
YII model学习笔记
块赋值只用一行代码将用户所有输入填充到一个模型,非常方便, 它直接将输入数据对应填充到 yii\base\Model::attributes() 属性。 以下两段代码效果是相同的, 都是将终端用户输入的表单数据赋值到 ContactForm 模型的属性, 明显地前一段块赋值的代码比后一段代码简洁且不易出错。$model = new \app\models\ContactForm;$model...原创 2020-02-07 11:56:17 · 399 阅读 · 0 评论 -
php包管理器composer使用手册
//配置国内源composer config -g repo.packagist composer https://packagist.phpcomposer.com//恢复国外源composer config -g repo.packagist composer https://repo.packagist.org//查看全局composer配置composer config -g -...原创 2020-02-07 11:52:05 · 294 阅读 · 0 评论 -
ffmpeg视频切片
ffmpeg视频切片.安装FFmpeg1.下载资源: wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz2.解压:tar -zxvf ffmpeg-3.1.tar.gz配置:cd ffmpeg-3.1./configure --prefix=/usr/local/ffmpeg编译:make && make inst...原创 2020-01-02 15:55:12 · 6135 阅读 · 1 评论 -
关于衡量网站性能的专业术语 PV、UV、IP、TPS、QPS等介绍
我们在日常工作中,特别是在互联网行业经常可以听到数据分析之类的专有名词,如pv多少、ip多少、tps多少之类的问题。下面就这些常见的数据给出英文全称及其释义。QPS:即Queries Per Second的缩写,每秒能处理查询数目。是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。每秒钟处理完请求的次数;注意这里是处理完,具体是指发出请求到服务...转载 2019-12-31 11:32:12 · 512 阅读 · 0 评论 -
压力测试工具ab&jmeter的使用
【测试环境的安装】【ab】ab就是Apache Benchmark的缩写,顾名思义它是Apache组织开发的一款web压力测试工具,优点是使用方便,统计功能强大。ab作为一款非常流行的压测工具,使用细节这里就不多介绍了,直接给出个人的使用体会:首先是安装,Ubuntu和CentOS目前都提供自动安装命令 (至少ubuntu 14, centos 6可以)ubuntu:sudo apt-g...转载 2019-12-31 11:28:28 · 1017 阅读 · 0 评论 -
phpize安装php扩展
应用场景在使用php的过程中,我们常常需要去添加一些PHP扩展库。但是重新对php进行编译是比较蛮烦的,所以这时候我们可以使用phpize对php进行添加扩展。并且phpize编译的扩展库可以随时启用或停用,比较灵活。使用方法extention为要挂载的扩展包 wget extension.tar.gz下载相应的扩展包并解压。cd extension/切换到扩展extension的目录中...原创 2019-12-30 15:12:08 · 518 阅读 · 0 评论 -
git reflog 恢复已删除分支
语法: git reflog --date=[iso | local | relative] | grep [-w 全词匹配] <branchname>iso:格式化后的时间时间local:实际时间relative:相对时间, 多少天之前本案例以恢复remove_branch为例 ...转载 2019-11-29 16:02:13 · 340 阅读 · 0 评论 -
接口设计的原则
程序接口设计的六大原则一.单一职责原则 Single Responsibility Principle, 简称SRP。定义:There should never be more than one reason for a class to change. 应该有且仅有一个原因引起类的变更。职责的划分?单一的定义和级别?应该根据实际业务情况而定。关注变化点。实际使用时,类很难...转载 2019-11-22 09:34:32 · 253 阅读 · 0 评论 -
Dockerfile详解
Dockerfile详解环境介绍指令介绍FROMMAINTAINERLABELADDCOPYEXPOSEENV在Dockerfile中...原创 2019-11-21 17:27:36 · 125 阅读 · 0 评论 -
Docker入门基础知识(一)
会查看命令帮助 --help>docker start --help>docker run --help>docker container run --help查看镜像docker images查看容器docker ps -adocker container ls -a进入到容器docker container exec -it containerID ...原创 2019-11-15 15:08:26 · 371 阅读 · 2 评论 -
PHP 使用非对称加密算法
PHP 使用非对称加密算法(RSA)加密的类型:在日常设计及开发中,为确保数据传输和数据存储的安全,可通过特定的算法,将数据明文加密成复杂的密文。目前主流加密手段大致可分为单向加密和双向加密。单向加密:通过对数据进行摘要计算生成密文,密文不可逆推还原。算法代表:Base64,MD5,SHA;双向加密:与单向加密相反,可以把密文逆推还原成明文,双向加密又分为对称加密和非对称加密。对称加密:...转载 2019-11-12 20:21:33 · 346 阅读 · 0 评论 -
http http2和https的区别
作为一个经常和web应用程序打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处还请指出。一. web始祖HTTP全称:超文本传输协议(HyperText Transf...转载 2019-11-12 15:56:41 · 5061 阅读 · 1 评论 -
rsa 非对称加密和openssl用法详解
OpenSSL 是一个开源项目,其组成主要包括一下三个组件:openssl:多用途的命令行工具libcrypto:加密算法库libssl:加密模块应用库,实现了ssl及tlsopenssl可以实现:秘钥证书管理、对称加密和非对称加密 。1、对称加密对称加密需要使用的标准命令为 enc&nb...转载 2019-11-12 15:44:03 · 1243 阅读 · 0 评论 -
快速搭建vagrant环境-- 入门教程
Vagrantfile 文件Vagrant.configure("2") do |config| config.vm.box = "laravel/homestead" config.vm.box_version = "8.2.1"endbox镜像下载地址:https://www.vagrantup.com/http://www.vagrantbox.es/https:...转载 2019-11-08 11:45:11 · 259 阅读 · 0 评论 -
Linux搭建个人git版本仓库
1. 安装gitLinux 做为服务器端系统,Windows 作为客户端系统,分别安装 Gityum install -y git安装完后,查看版本git -versionwindows下就是一键安装了2. 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 创建用户 git[root@localhost /]# id git # 查看用户[root...转载 2019-11-07 17:07:04 · 1429 阅读 · 0 评论 -
PHP实现二叉树的链式和数组存储结构
PHP数组实现二叉树的数据结构class treearray{ private $size; private $p_array; public function __construct($size,$n_root) { $this->size=$size;// 初始化根节点 $this->p_arra...原创 2019-10-30 18:41:32 · 228 阅读 · 0 评论 -
思维导图(一)php需要掌握的技术汇总
使用xmind汇总php需要掌握的知识点原创 2019-10-21 17:44:06 · 257 阅读 · 0 评论 -
YII学习笔记 服务定位器(service locator)(二)
服务定位器(service locator)注册服务(注册组件 ) 也就单例组件可能没有注入DI,DI解析没有注入依赖的时候直接用反射解析组件的单例是在组件中 规定的、 public function get($id, $throwException = true) { if (isset($this->_components[$id])) { ...原创 2019-10-16 17:43:26 · 268 阅读 · 0 评论 -
Yii学习笔记 依赖注入和依赖注入容器(一)
依赖注入和依赖注入容器DI容器的数据结构在DI容器中,维护了5个数组,这是DI容器功能实现的基础: // 用于保存单例Singleton对象,以对象类型为键 private $_singletons = []; // 用于保存依赖的定义,以对象类型为键 private $_definitions = []; // 用于保存构造函数的参数,以对象类型为键 private $_pa...原创 2019-10-16 17:00:01 · 222 阅读 · 0 评论 -
Laravel Pipeline 组件的实现
Laravel 框架中有一个非常有趣的功能,就是 HTTP 中间件,我们在定义路由的时候,通过中间件对访问进行过滤。来自外部的请求首先经过全局中间件,若通过,则会继续穿过层层路由组所设置的中间件,在到达目的路由,当然,目的路由也可能定义了个中间件,通过后,该路由的处理对象(如控制器),得到的就是一个经过过滤的请求了。开始本文当然不是讨论中间件如何使用,而是其实现的基础。Laravel 框架中有...转载 2019-10-15 18:44:43 · 314 阅读 · 0 评论 -
thinkphp monolog日志写入失败问题解决
try catch 捕获异常发现没有写入权限。分析原因:linux的添加定时任务时默认是当前登录用户,我定时任务会生成日志方案:1.定时任务用户和php-fpm用户统一成一个。crontab -u root -l //复制crontab -u nobody -e //添加crontab -u root -r //删除2. 修改日志类的参数$handler = n...原创 2019-10-15 17:09:09 · 525 阅读 · 0 评论 -
Laravel框架学习笔记(一)
https://laravel.com/docs/5.8 翻译成中文核心架构契约contracts(定义接口)facades(门面模式) 可静态代用的封装服务提供者(注册服务 服务组件) 解析服务服务容器($app)加载流程(请求周期)https://learnku.com/docs/laravel/5.6/lifecycle/1358模仿。参考框架复杂逻辑的实现方案。Lara...原创 2019-10-14 15:51:35 · 338 阅读 · 0 评论 -
Thinkphp5.1 Session失效问题解决方案
问题描述:Thinkphp5.1 启用session生效时间为1天。偶发性session没有到一天就失效了。解决过程:session不设置失效时间是。正常。继续查找发现session设置生效时间,cookie级联设置了生效时间为1小时。(用谷歌浏览查看cookie)图分析可能是是cookie到期后失效,导致cookie里sessionId没有了。导致session失效。尝试解决:...原创 2019-10-12 14:36:00 · 5675 阅读 · 2 评论 -
PHP基础知识笔记(一)
任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。对于代码的理解,不同人能到达不同的层次。刚开始学习,停留在行级。入门之后,进步到方法级。工作之后,可以到达类级和模块级。经验积累足够多了,会精进到架构级,甚至是更高的级别。1.call 和new 区别call_user_func_array 调用类的静态方法与实例方法很多场景是这样的:1、你要调用...原创 2019-10-11 15:11:08 · 194 阅读 · 0 评论 -
Thinkphp源码阅读笔记(一)
app container 容器和依赖注入类facde 注册门面方法 可以静态调用他们内部的普通方法。validate 验证类 写入验证规则和提示,可动态添加和删除 定制场景的 穿入数组 验证类。Middleware 切面类。 定义中间件类 handle 方法 注册到controller ,会被自动执行。 类似于监听者模式。obRoute 路由类。所有从容器出来的...原创 2019-10-11 15:07:12 · 438 阅读 · 0 评论