自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通过laravel了解DI/IoC

高级模块不应该依赖于低级模块,两者都应该依赖于抽象对象。抽象不应该依赖于细节,细节应该取决于抽象。—Robert C. Martin「ioc 依赖注入」的结果就是「DI 控制反转」的目的,也就说 控制反转 的最终目标是为了 实现项目的高内聚低耦合,而 实现这种目标 的方式则是通过 依赖注入。说白了 DI/ioc 其实是抽...

2019-07-19 19:07:27 214

原创 Debug 远程调试

1.服务器上安装xdebug,参考https://xdebug.org/wizard.php2.添加server上面php.ini配置其中xdebug.remote_host 是本地IDE的ipxdebug.idekey 要和后面IDE中的配置一致xdebug.remote_handler=dbgp 代理模式3.phpstorm配置代理配置:IDE key 和服务器上面p...

2019-07-04 18:28:51 269

原创 vim常用操作

基本操作复制删除撤销、重做移动 1.按字(词)移动光标 2.按句移动光标 3.按段移动光标 4.移动到行首或行尾 5.括号匹配 6.使用记号(mark)多个文件分割窗口 对比文件不同搜索与替换基本操作退出::q 或者ZZ插入: i,a,L,A,O,o复制yy --复制一行,3yy复制三行yw --复制一个词 2yw复制2个词。p 粘贴出来删...

2019-07-04 17:52:28 139

转载 configure 配置参数

1.说明2.configure参数说明 2.1查看configure 配置选项 2.2参数说明  2.2.1 build 参数  2.2.2 host 参数  2.2.3 target 参数  2.2.4 CC 编译器参数  2.2.5 prefix 安装参数1 说明在linux 中,经常需要用到交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。同一个体系...

2019-07-04 03:16:30 1549

原创 清除所有被Ignore的文件

查看所有被Git忽略的文件#Git 1.6+:git ls-files --others -i --exclude-standard#Git 1.4, 1.5:git ls-files --others -i \--exclude-from="`git rev-parse --git-dir`/info/exclude" \--exclude-per-directory=.git...

2019-07-04 02:24:24 660

转载 linux查找目录下的所有文件中是否含有某个字符串mak

查找目录下的所有文件中是否含有某个字符串find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名find .|xargs grep -ri "IBM" -l 1.正则表达式正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。基本元字符集及其含义^ :只匹...

2018-11-09 15:22:55 212

原创 Sql分组内排序

前两天同学遇到这样一个需求。用sql找出成绩表中 各科前10名学生名单。 成绩表字典我就不说明了,大家都懂。他说只用sql处理。我当时首先想到的是存储过程、游标之类的。过后,他又提起这个事情来。告诉我说不用存储过程就可以。然后给我贴了实例出来。 DROP TABLE IF EXISTS `ads_credit_applylog`;CREATE TABLE `ads_credi...

2018-09-10 18:42:52 1041

原创 laravel设计模式-修饰者模式

在这之前我们先看修饰模式介绍装饰者模式,动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。组合和继承的区别继承。继承是给一个类添加行为的比较有效的途径。通过使用继承,可以使得子类在拥有自身方法的同时,还可以拥有父类的方法。但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们不便于控制增加行为的方式和时机。组合。组合即将一个对象嵌入到另一个...

2018-09-10 18:22:39 635

转载 设计模式之六大原则(转载)

  关于设计模式的六大设计原则的资料网上很多,但是很多地方解释地都太过于笼统化,我也找了很多资料来看,发现CSDN上有几篇关于设计模式的六大原则讲述的比较通俗易懂,因此转载过来。  原作者博客链接:http://blog.csdn.net/LoveLion/article/category/738450/7一.单一职责原则  原文链接:http://blog.csdn.net/love...

2018-09-10 10:33:34 166

原创 new self 和new static

<?php//new self 和new static 只有在继承中才有区别//new static()则是由调用者决定的class F { public function getNewFather() { return new self(); } public function getNewCaller() { ret...

2018-09-07 18:38:01 158

原创 Navcat导出数据为csv乱码问题(iconv)

这是因为navcat导出csv文件的编码格式是gbk,而我们用的excel是urf8。iconv -s -c -f UTF8 -t GBK "vs活动.csv" > ./iconv.utf8.gbk.tmpmv iconv.utf8.gbk.tmp "11111.csv"

2018-09-07 18:36:38 683

原创 git忽略文件权限

git中可以加入忽略文件权限的配置,具体如下:$ git config core.filemode false // 当前版本库$ git config --global core.fileMode false // 所有版本库

2018-09-07 18:34:10 1104

原创 利用group 查找文件夹下包含key的文件

root@izhp36yfj8lo876bsm8f2nz api (master) # grep PARAMS_ERROR -rl --include="*.php" ././config/app.php./app/Exceptions/OmgException.php./app/Http/Controllers/ActivityController.php./app/Http/Cont...

2018-09-07 18:30:47 284

原创 Laravel中使用Ioc容器的singleton方法和bind方法创建实例的区别

它们两个都是返回一个类的实例,不同的是singleton是单例模式,而bind是每次返回一个新的实例,看下面的两个例子。1.Ioc容器bind方法<?phprequire __DIR__.'/../bootstrap/autoload.php';class tanteng{ public $name="init_str";}$container =...

2018-08-13 15:11:10 1516

原创 phpredis 和 predis

phpredis 和 predisphpredis 是使用c写的php扩展,predis 是使用纯php写的。在性能上的区别当然是扩展更好一些,但其实这两个实现还有更大的区别,就是连接的保持。phpredis在扩展中使用c可以保持php-fpm到redis的长连接,所以一个php-fpm进程上的多个请求是复用同一个连接的。phpredis的pconnect就是长连接方式。 predis...

2018-08-13 15:03:31 3993

转载 git merge和git rebase

git merge是用来合并两个分支的。 git merge b# 将b分支合并到当前分支同样 git rebase b,也是把 b分支合并到当前分支-----------------------------------他们的 原理 如下: 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。$ git checkout -b myw...

2018-08-13 15:01:57 110

转载 php trait

Trait是PHP 5.4引入的新概念,看上去既像类又像接口,其实都不是,Trait可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:表明类可以做什么;提供模块化实现。Trait是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用机制。为什么使用TraitPHP语言使用一种典型的单继承模型,在这种模型中,我们先编写一个通用的根类,实现基本的功能,然后扩展这个根类,

2017-11-29 20:23:43 234

原创 运行webpack 报Invalid Host header!

Package.json 属性说明name - 包名。version - 包的版本号。description - 包的描述。homepage - 包的官网 url 。author - 包的作者姓名。contributors - 包的其他贡献者姓名。dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。reposit

2017-11-24 15:40:40 2404

原创 初识opcode

写在前面的话,php执行过程 1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens) 2.Parsing, 将Tokens转换成简单而有意义的表达式 3.Compilation, 将表达式编译成Opocdes 4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。 token_get_all(),这个函数就可以将一段PHP代码

2017-11-16 16:48:14 410

原创 并发锁

问题描述在工作项目中,会遇到一些php并发访问去修改一个数据问题,如果这个数据不加锁,就会造成数据的错误。举例说明 如果有两个操作人(p和m),都用用户编号100账户,分别在pc和手机端同时登陆,100账户总余额有1000,p操作人花200,m操作人花300。并发过程如下。 p操作人: 1 取出用户的余额1000。 2 支付后剩余 800 = 1000 -

2017-10-25 12:14:52 224

转载 curl_multi_init

curl_multi_init比curl_init发送100个请求,快非常多!具体细节如下。1 https源码[php] view plain copy/*  * https.php  *  * https请求类 http://blog.csdn.net/CleverCode  *  * modification 

2017-09-22 11:20:03 373

原创 ssh权限

sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。用户目录权限为 755 或者 700,就是不能是77x。.ssh目录权限一般为755或者700。rsa_id.pub 及authorized_keys权限一般为644rsa_id权限必须为600

2017-09-22 11:02:25 303

转载 mac 关闭sip 保护系统

最近在mac上操作文件发现提示chmod: Unable to change file mode on /usr/bin/cc: Operation not permitted1发现是El Capitan(10.11) 加入了Rootless机制,很多系统目录不再能够随心所欲的读写了,即使设置 root 权限也不行。以下路径无法写和执行/System/bin/sbin

2017-09-21 18:18:16 1150

转载 namespace、autoload、sql_autoload_register、PSR-4

“include 和 require 是PHP中引入文件的两个基本方法。在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 include 和 require 堆积。这样的代码既不优雅,执行效率也很低,而且维护起来也相当困难。为了解决这个问题,部分框架会给出一个引入文件的配置清单,在对象初始化的时候把需要的文件引入。但这只是让代码变得更简洁

2017-09-03 16:07:59 244

原创 linux下git环境变量配置

vi .bashrccopyhttps://github.com/wdy331644741/git/tree/master/contrib/completion 两个文件source ~/.git-completion.bash#GIT_PS1_SHOWDIRTYSTATE=trueGIT_PS1_SHOWCOLORHINTS=trueif [ -f ~/.git-compl...

2017-07-30 17:39:32 3915

转载 abstract class和interface的区别

在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很

2017-07-30 17:36:16 140

原创 ELK日志分析

ELK日志分析系统一、安装Logstash1.安装jdkLogstash的运行依赖于Java环境[root@localhost ~]# yum -y install java-1.8.0[root@localhost ~]# java -versionopenjdk version "1.8.0_131"OpenJDK Runtime Environment (buil

2017-07-30 17:25:12 310

原创 7-30git总结一些常用的命令

git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态 git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。 git reset –hard HASH #返回到某个节点,不保留修改。 git reset –soft HASH #返回到某个节点。保留修改

2017-07-30 17:22:42 177

原创 shell 1>&2 2>&1 &>filename重定向的含义和区别

当初在shell中, 看到">&1"和">&2"始终不明白什么意思.经过在网上的搜索得以解惑.其实这是两种输出.在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是:0 是一个文件描述符,表示标准输入(stdin)1 是一个文件描述符,表示标准输出(stdout)2 是一个文件描述符,表示标准错误(stderr)

2017-04-28 11:10:18 293

转载 linux查找目录下的所有文件中是否含有某个字符串

查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式    (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。   (

2017-04-27 18:14:31 335 1

原创 git学习(三)github远程仓库

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:# ssh-keygen -t rsa -C "[email protected]"如果一切顺利的话,可以在用户主目录里找到

2017-04-08 15:01:30 1441

转载 git学习(二)

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。先来看名词解释。工作区(Working Directory)就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:版本库(Repository)工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就

2017-04-07 17:42:57 1235

原创 git学习(一)

一、安装git在linux上安装Git首先,你可以试着输入git,看看系统有没有安装Git:git在Windows上安装GitWindows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂,就不建议你折腾了。不过,有高人已经把模拟环境和Git都打包好了,名叫msysgit,

2017-04-06 17:57:13 1352

原创 linux smb服务

配置:samba的主要配置文件放在/etc/samba/smb.conf文件夹下。文件可以分为两大部分,第一部分是全局配置,第二部分是局部配置。下面是一个配置文件及相关注释:[global]    workgroup = WORKGROUP                          // 从Windows访问的工作组,可在Windows中“我的电

2017-04-06 15:48:37 495

原创 slightphp框架

使用框架:slightphp目录结构:大致不严格的分为三部分(search1.0包含C层和V层;search2.0包含框架代码和S层、M层;search2.0_config) 注意:由于该项目的重写规则在 Apache上 不太友好。当前建议在搭建在nginx上Controller                控制器目录Lib

2017-04-06 14:25:03 1889

原创 solr全文检索应用实例

s.3158.cn 搜索环境:nginx、solrLnmp环境的安装:略 Solr 安装:准备文件 jdk-8u101-linux-x64.tar.gz、apache-tomcat-8.5.4.zip、solr-4.2.1.tgz 安装jdk:解压jdk tar -zxvf jdk-8u45-linux-x64.tar.gz -C /usr/local添加环境变

2017-04-06 14:16:27 3291

空空如也

空空如也

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

TA关注的人

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