- 博客(36)
- 收藏
- 关注
原创 通过laravel了解DI/IoC
高级模块不应该依赖于低级模块,两者都应该依赖于抽象对象。抽象不应该依赖于细节,细节应该取决于抽象。—Robert C. Martin「ioc 依赖注入」的结果就是「DI 控制反转」的目的,也就说 控制反转 的最终目标是为了 实现项目的高内聚低耦合,而 实现这种目标 的方式则是通过 依赖注入。说白了 DI/ioc 其实是抽...
2019-07-19 19:07:27
259
原创 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
300
原创 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
185
转载 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
1872
原创 清除所有被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
776
转载 linux查找目录下的所有文件中是否含有某个字符串mak
查找目录下的所有文件中是否含有某个字符串find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名find .|xargs grep -ri "IBM" -l 1.正则表达式正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。基本元字符集及其含义^ :只匹...
2018-11-09 15:22:55
243
原创 Sql分组内排序
前两天同学遇到这样一个需求。用sql找出成绩表中 各科前10名学生名单。 成绩表字典我就不说明了,大家都懂。他说只用sql处理。我当时首先想到的是存储过程、游标之类的。过后,他又提起这个事情来。告诉我说不用存储过程就可以。然后给我贴了实例出来。 DROP TABLE IF EXISTS `ads_credit_applylog`;CREATE TABLE `ads_credi...
2018-09-10 18:42:52
1080
原创 laravel设计模式-修饰者模式
在这之前我们先看修饰模式介绍装饰者模式,动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。组合和继承的区别继承。继承是给一个类添加行为的比较有效的途径。通过使用继承,可以使得子类在拥有自身方法的同时,还可以拥有父类的方法。但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们不便于控制增加行为的方式和时机。组合。组合即将一个对象嵌入到另一个...
2018-09-10 18:22:39
685
转载 设计模式之六大原则(转载)
关于设计模式的六大设计原则的资料网上很多,但是很多地方解释地都太过于笼统化,我也找了很多资料来看,发现优快云上有几篇关于设计模式的六大原则讲述的比较通俗易懂,因此转载过来。 原作者博客链接:http://blog.youkuaiyun.com/LoveLion/article/category/738450/7一.单一职责原则 原文链接:http://blog.youkuaiyun.com/love...
2018-09-10 10:33:34
202
原创 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
185
原创 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
735
原创 git忽略文件权限
git中可以加入忽略文件权限的配置,具体如下:$ git config core.filemode false // 当前版本库$ git config --global core.fileMode false // 所有版本库
2018-09-07 18:34:10
1143
原创 利用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
322
原创 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
1591
原创 phpredis 和 predis
phpredis 和 predisphpredis 是使用c写的php扩展,predis 是使用纯php写的。在性能上的区别当然是扩展更好一些,但其实这两个实现还有更大的区别,就是连接的保持。phpredis在扩展中使用c可以保持php-fpm到redis的长连接,所以一个php-fpm进程上的多个请求是复用同一个连接的。phpredis的pconnect就是长连接方式。 predis...
2018-08-13 15:03:31
4060
转载 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
141
转载 php trait
Trait是PHP 5.4引入的新概念,看上去既像类又像接口,其实都不是,Trait可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:表明类可以做什么;提供模块化实现。Trait是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用机制。为什么使用TraitPHP语言使用一种典型的单继承模型,在这种模型中,我们先编写一个通用的根类,实现基本的功能,然后扩展这个根类,
2017-11-29 20:23:43
270
原创 运行webpack 报Invalid Host header!
Package.json 属性说明name - 包名。version - 包的版本号。description - 包的描述。homepage - 包的官网 url 。author - 包的作者姓名。contributors - 包的其他贡献者姓名。dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。reposit
2017-11-24 15:40:40
2450
原创 初识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
448
原创 并发锁
问题描述在工作项目中,会遇到一些php并发访问去修改一个数据问题,如果这个数据不加锁,就会造成数据的错误。举例说明 如果有两个操作人(p和m),都用用户编号100账户,分别在pc和手机端同时登陆,100账户总余额有1000,p操作人花200,m操作人花300。并发过程如下。 p操作人: 1 取出用户的余额1000。 2 支付后剩余 800 = 1000 -
2017-10-25 12:14:52
261
转载 curl_multi_init
curl_multi_init比curl_init发送100个请求,快非常多!具体细节如下。1 https源码[php] view plain copy/* * https.php * * https请求类 http://blog.youkuaiyun.com/CleverCode * * modification
2017-09-22 11:20:03
411
原创 ssh权限
sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。用户目录权限为 755 或者 700,就是不能是77x。.ssh目录权限一般为755或者700。rsa_id.pub 及authorized_keys权限一般为644rsa_id权限必须为600
2017-09-22 11:02:25
339
转载 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
1391
转载 namespace、autoload、sql_autoload_register、PSR-4
“include 和 require 是PHP中引入文件的两个基本方法。在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 include 和 require 堆积。这样的代码既不优雅,执行效率也很低,而且维护起来也相当困难。为了解决这个问题,部分框架会给出一个引入文件的配置清单,在对象初始化的时候把需要的文件引入。但这只是让代码变得更简洁
2017-09-03 16:07:59
265
原创 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
3993
转载 abstract class和interface的区别
在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很
2017-07-30 17:36:16
160
原创 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
348
原创 7-30git总结一些常用的命令
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态 git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。 git reset –hard HASH #返回到某个节点,不保留修改。 git reset –soft HASH #返回到某个节点。保留修改
2017-07-30 17:22:42
190
原创 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
316
转载 linux查找目录下的所有文件中是否含有某个字符串
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式 (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。 (
2017-04-27 18:14:31
373
原创 git学习(三)github远程仓库
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:# ssh-keygen -t rsa -C "wdy@wdyapp.com"如果一切顺利的话,可以在用户主目录里找到
2017-04-08 15:01:30
1463
转载 git学习(二)
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。先来看名词解释。工作区(Working Directory)就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:版本库(Repository)工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就
2017-04-07 17:42:57
1271
原创 git学习(一)
一、安装git在linux上安装Git首先,你可以试着输入git,看看系统有没有安装Git:git在Windows上安装GitWindows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂,就不建议你折腾了。不过,有高人已经把模拟环境和Git都打包好了,名叫msysgit,
2017-04-06 17:57:13
1371
原创 linux smb服务
配置:samba的主要配置文件放在/etc/samba/smb.conf文件夹下。文件可以分为两大部分,第一部分是全局配置,第二部分是局部配置。下面是一个配置文件及相关注释:[global] workgroup = WORKGROUP // 从Windows访问的工作组,可在Windows中“我的电
2017-04-06 15:48:37
558
原创 slightphp框架
使用框架:slightphp目录结构:大致不严格的分为三部分(search1.0包含C层和V层;search2.0包含框架代码和S层、M层;search2.0_config) 注意:由于该项目的重写规则在 Apache上 不太友好。当前建议在搭建在nginx上Controller 控制器目录Lib
2017-04-06 14:25:03
1945
原创 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
3328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人