php
循序0010
这个作者很懒,什么都没留下…
展开
-
laravel Event事件 和事件处理器(事件监听器)Listeners
概念:事件是一种常见的观察者模式的应用。含义:当 (event)... 然后(干) (listener)...业务逻辑处理:事件event除了定义属性和注入事件参数外不做业务逻辑处理,而是交给事件处理器(即监听器listener)的handle方法来处理具体的业务逻辑。放置 event 和 listener 文件的位置app/Eventsapp/Listeners定义用 Artisan 命令可以快速生成一个模板:php artisan make:event UserEvent.原创 2020-06-16 10:42:59 · 1780 阅读 · 0 评论 -
laravel unittest测试
约定:测试文件名需要以 Test 作为后缀,比如如果要测试 First.php,则对应的测试文件名为 FirstTest.php;测试方法名需要以 test 作为前缀,比如如果要测试的方法名为 getuser,则对应的测试方法名为 testGetuser,此外,你还可以通过 @test 注解来声明一个测试方法;所有的测试方法可见性必须是 public;所有的测试类都继承自 PHPUnit\Framework\TestCase。创建一个测试用例:php artisan make:test Us.原创 2020-06-13 11:07:29 · 926 阅读 · 0 评论 -
laravel API 资源
调用命令在app/Http/Resources 文件夹下生成resource文件单个资源类(理解成处理一维数组)php artisan make:resource UserResource #单个资源类,继承自 Illuminate\Http\Resources\Json\JsonResource资源类集合(理解成处理多维数组)php artisan make:resource UserCollection #资源类集合,继承自 Illuminate\Http\Res..原创 2020-06-12 14:55:35 · 720 阅读 · 0 评论 -
laravel 访问器 & 修改器
访问器作用:在模型中定义某字段的获取形式。如, /** * 获取用户的名字。 * * @param string $value * @return string */ public function getFirstNameAttribute($value) { return ucfirst($value); }此时,通过模型实例就可转化first_name字段为首字母大写形式,$user = App\U.原创 2020-06-11 10:29:47 · 377 阅读 · 0 评论 -
laravel with方法应用
应用场景:一对多的关联关系中。作用:是为了避免N+1次的查询数据库, 从而提升查询的性能;分类model<?phpnamespace App\Models;use Illuminate\Database\Eloquent\Model;class Category extends Model{ /** * 分类下面的商品 * @return \Illuminate\Database\Eloquent\Relations\HasMany */..原创 2020-06-10 10:53:54 · 16848 阅读 · 2 评论 -
laravel 作用域应用
分类为:分为全局作用域,和本地作用域。作用域作用:给模型的查询都添加上约束。全局作用域继承Illuminate\Database\Eloquent\Scope 接口的类,并实现 apply 方法。 根据需求,在 apply 加入查询的 where 约束:<?phpnamespace App\Scopes;use Illuminate\Database\Eloquent\Scope;use Illuminate\Database\Eloquent\Model;use Illum..原创 2020-06-09 14:55:15 · 504 阅读 · 0 评论 -
laravel中观察者应用
应用场景:使用观察者Observer,在模型中监听CURD事件,观察者类里的方法名应该反映 Eloquent 想监听的事件。 每个方法接受 model 作为唯一参数。使用artisan命令生成UserObserver类php artisan make:observer UserObserver --model=User<?phpnamespace App\Observers;use App\User;class UserObserver{ /** * H.原创 2020-06-09 14:07:04 · 315 阅读 · 0 评论 -
laravel 服务容器 与 服务提供器
【服务容器】管理类的依赖和执行依赖注入。原理:1.服务容器绑定操作都是在 服务提供器 中注册。2.类的依赖项通过构造函数,或者某些情况下通过「setter」方法「注入」到类中。解析实例:1.通过 make 方法将容器中的类实例解析出来,参数是类或接口的名称:$api = $this->app->make('HelpSpot\API');2.处于不能访问 $app 变量的位置时,可以使用全局的辅助函数 resolve:$api = resolve('HelpSpo..原创 2020-06-04 11:55:15 · 271 阅读 · 0 评论 -
反射机制
//根据一个对象,知道它所属的类,拥有哪些方法,属性,注释等class User{ public $age = 11; /** * 获取所有用户数据 */ public function getUsers(){ $users = []; for($i=0;$i<=20;$i++){ ...原创 2020-03-25 09:57:54 · 160 阅读 · 0 评论 -
yield 关键词,生成器
//a-z字母function getAZ(){ $string = ''; for($x = ord('a'); $x <= ord('z'); $x++){ if($x <= rand(ord('a'),ord('z'))) { $string .= chr($x); } } retur...原创 2019-11-19 10:30:39 · 488 阅读 · 0 评论 -
设置git store 账号密码
1.直接命令行格式进入家目录cd #回车编辑家目录下 .gitconfig文件,修改helper = store2.或者直接在命令行输入以下命令回车git config --global credential.helper store扩展:http://www.cnblogs.com/wish123/p/3937851.html原创 2017-03-22 18:09:49 · 4208 阅读 · 0 评论 -
apache 2.4-X版本配置虚拟主机
升级到apache2.4以上的版本时,其配置和之前的略有不同。比如 ,配置虚拟主机的过程:1.httpd.conf 文件开启虚拟主机配置文件加载# Virtual hostsInclude conf/extra/httpd-vhosts.conf2.在extra/httpd-vhosts.conf配置文件中配置虚拟主机#www目录下的虚拟主机 Docume原创 2017-03-22 17:49:58 · 910 阅读 · 0 评论 -
windows详细配置gitblit
Windows平台下Git服务器搭建分步骤:第一步:下载Java,下载地址:http://www.java.com/zh_CN/;第二步:安装Java;第三步:配置Java环境变量;第四步:验证Java是否安装成功;第五步:下载Gitblit.下载地址:http://www.gitblit.com/.第六步:解压缩下载的压缩包即可,无需安装。第七步:创建用于存储转载 2017-03-21 09:43:55 · 2144 阅读 · 0 评论 -
局域网内 搭建windows 版本控制
1.为了方便,才用gitblit来做版本控制软件。 搭建过程,请看这里:http://blog.csdn.net/u011341352/article/details/644380962.局域网访问本机,首先要保证其它主机要ping的同自己的主机;3.通过http://ip/项目root目录入口文件访问 如:http://192.168.12.25/index.php?s=/Hom原创 2017-03-23 17:09:53 · 1838 阅读 · 0 评论 -
curl 函数执行了之后返回false解决,打印错误信息返回PHP的Curl出现:curl call error(77): Problem with the SSL CA cert (path? ac
curl 函数执行了之后返回false解决,打印错误信息返回PHP的Curl出现:curl call error(77): Problem with the SSL CA cert (path? access rights?)当curl 函数执行了之后返回falsepublic function http_get($url){ $curl = curl_init(); curl_s转载 2016-11-28 10:14:25 · 11218 阅读 · 1 评论 -
遇到提示“该公众号暂时无法提供服务,请稍后再试”的解决办法
当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。假如服务器无法保证在五秒内原创 2016-11-22 14:49:46 · 3950 阅读 · 0 评论 -
设置内存限制和运行时间,php回调函数
记点杂项:【设置内存限制和运行时间】ini_set('memory_limit','512M');set_time_limit(0);【php代码执行结束后回调函数】register_shutdown_function("SyncToPoster");//SyncToPoster函数名,比如在register_shutdown_function("SyncToPoster");e原创 2016-12-02 13:01:54 · 1490 阅读 · 0 评论 -
php 移动或重命名文件(图片)到另一目录下
php 移动或重命名文件(图片)到另一目录下的方法有多种,这里只列出三种:方法一:使用copy函数格式:copy(source,destination)将文件从 source 拷贝到 destination。如果成功则返回 TRUE,否则返回 FALSE。如,copy("source.png","target.png");然后删除源图片,这种方法多了这步,显得不太好。方法二:使用r原创 2016-10-21 10:10:26 · 19501 阅读 · 0 评论 -
is_dir(),opendir(),readdir()简单遍历目录下的文件
function listdoc($dir){ if(is_dir($dir)){//判断是否是目录 if($hd = opendir($dir)){//是目录,则打开 while($file = readdir($hd)){//循环读取目录的文件 if((is_dir($dir.'/'.$file)) && ($file !='.') && ($file !='..原创 2017-03-02 15:52:31 · 2585 阅读 · 0 评论 -
Adnroid 微信内置浏览器清除缓存问题
最近公司双十一活动遇到Adnroid 微信内置浏览器清除缓存问题,再网上找到以下方法,尽可试试:一,PHP后台生成一个随机 PHP代码:$rand = rand(10000,99999);html代码(注:最好每个图片链接后都加上随机数):"二,使用meta头信息实现取消了微信浏览器的缓存做微信公众号和调试手机页面的时候,避免不了页面要转载 2016-11-11 11:27:35 · 2014 阅读 · 0 评论 -
smarty模板中使用php函数
smarty 执行php代码 调用php函数 虽违背smarty但不失灵活,有时候也在SMARTY中也不得不使用PHP的相关函数和一些语句的.{php} echo "alert('here is php method run ~!');"; {/php} 因为应用需要,要在Smarty中调用PHP函数,实现办法如下: 模板 数据条数:{$dat原创 2015-09-23 10:42:02 · 4164 阅读 · 0 评论 -
七层网络模型,协议,状态码认识
七层网络模型的名称,由下到上:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层协议的全称和中文解释:SMTP (Simple Mail Transfer Protocol) 简单邮件传输协议POP3 (Post Office Protocol 3) 邮局协议第3版HTTP (Hypertext Transfer Protocol) 超文本传输协议FTP (原创 2015-09-24 10:40:21 · 804 阅读 · 0 评论 -
windows下 简单配置PHP + apache +mysql
①使apache 能够识别php文件(注,apache的配置是基于功能模块的),以下配置文件有改动,记得重启apache:在apache配置httpd.conf 中 配置如下:LoadModule php5_module "{%指定到php目录下路径%}/php5apache2_2.dll"并让apache知道调用PHP去调用PHP如:SetHandler原创 2015-10-12 22:15:52 · 226 阅读 · 0 评论 -
遍历目录下的全部文件
第一种实现办法是用dir返回对象;dir() 函数打开一个目录句柄,并返回一个对象。这个对象包含三个方法:read() , rewind() 以及 close()。若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。<?php/**********************一个简单的目录递归函数第一种实原创 2015-10-27 22:21:28 · 596 阅读 · 0 评论 -
PHP fsockopen函数
注意:PHP fsockopen需要 PHP.ini 中 allow_url_fopen 选项开启。$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); if (!$fp) { //连接错误返回falseecho "$errstr ($errno)\n"; } else { $out = "GET原创 2015-11-13 19:53:00 · 565 阅读 · 0 评论 -
PHP错误处理和日志函数 及函数名
代码错误的调试函数:error_get_last()函数的作用是捕获最后一条错误信息。trigger_error()函数的作用是抛出一条用户级的错误信息。trigger_error()函数有两个参数,第一个参数表示抛出的信息 内容,第二个参数是E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE 之一,表示错误信息的级别。debug_backtrace()原创 2015-11-23 09:52:02 · 834 阅读 · 0 评论 -
面向对象编程的封装、继承、多态
面向对象的三个基本特征是:封装、继承、多态。封装封装是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展转载 2015-11-20 09:03:31 · 517 阅读 · 0 评论 -
使用zendstudio无法用ctrol+鼠标左键跳转到类和方法解决
使用zendstudio无法用ctrol+鼠标左键跳转到类和方法解决安装完zendstudio后,有可能是你的工作空间由于之前工程的影响,无法用ctrol+鼠标左键跳转到类和方法,so,可以用以下方法来解决:右键点击工程->configure->add php support 然后系统会自动rebuild工程/workspace , 至此,问题应该可以解决!原创 2016-10-14 13:04:49 · 2161 阅读 · 0 评论 -
phpexcel 简单导出多个sheet
public function exportExcel(){ require_once 'include/PHPExcel.php'; $objPHPExcel = new PHPExcel(); //实例化Excel类 //第一个sheet填入主标题 $first_sheet_title = '入职'; $objPHPExcel->getActiveSheet()->setCell原创 2017-04-17 15:31:30 · 12159 阅读 · 2 评论 -
git 命令行指令基本操作
撤销本地缓存区的某个文件修改的状态git checkout -- filename.txt查看本地分支git branch 查看远程所有分支git branch -r 查看所有的分支(包括远程分支,本地分支)git branch -a 创建本地分支,并切换到localcgit checkout -b localbranch相当于git branch localbran原创 2017-07-20 13:42:08 · 444 阅读 · 0 评论 -
服务器端解决ajax请求跨域
有时,在自己的服务器上用ajax脚本请求领一服务器时,会报:XMLHttpRequest cannot load 【ajax请求的服务器url】 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 【自己服务器】 is therefore not allowed access.原创 2017-08-17 09:35:39 · 3565 阅读 · 0 评论 -
RabbitMQ channel 频道,exchange 交换机和 queue队列
环境:CentOS 7RabbitMQ Server 版本3.7.9.RELEASERabbitMQ channel 频道,exchange 交换机和 queue队列connection是指物理的连接,一个client与一个server之间有一个连接;一个连接上可以建立多个channel,可以理解为逻辑上的连接。一般应用的情况下,有一个channel就够用了,不需要创建更多的ch...原创 2019-09-10 17:37:49 · 4973 阅读 · 1 评论 -
php 安装使用rabbitmq
环境:CentOS 7RabbitMQ Server 版本3.7.9.RELEASEphp 安装使用rabbitmq 需要安装两个服务:1.rabbitmq 服务端(RabbitMQ Server)2.rabbitmq php客户端(PHP AMQP 扩展)概念释义Vhost: 先不深究,先固定为 /Connection:即连接, 与你日常理解的连接没有什么不同,比如 red...原创 2019-09-10 11:22:01 · 360 阅读 · 0 评论 -
逐个替换为有序号的参数
function str_replace_limit($search,$replace,$content,$limit=-1){ if(is_array($search)){ foreach ($search as $k=>$v){ $search[$k]='`'.preg_quote($search[$k],'`').'`'; ...原创 2019-08-02 14:16:52 · 430 阅读 · 0 评论 -
homestead 安装 laravel
主要概念:VirtualBox:是Oracle公司的虚拟机软件。Vagrant: 是一个基于Ruby的虚拟机管理工具,用于创建和部署虚拟化开发环境。它提供了一种命令行接口,允许自动化安装虚拟机, Vagrantfile 文件给共享虚拟机配置提供了可能。 Homestead 正是构建在 Vagrant 之上。Laravel Homestead: 是官方预封装的一个 Homestead V...转载 2019-05-30 14:31:11 · 502 阅读 · 0 评论 -
使用Composer应用组件那些事
composer 安装设置国内镜像 中国镜像:http://pkg.phpcomposer.com/ composer config -g repo.packagist composer https://packagist.phpcomposer.com使用组件Packagist在Packagist中查找PHP组件,这个网站用于收集PHP组件,最好的PHP组件在Packagist中都...转载 2019-04-25 16:09:32 · 333 阅读 · 0 评论 -
并发前提下,超发问题
1.将库存字段设为unsigned,当库存为0时,因为字段不能为负数,将会返回false;2.使用MySQL的事务悲观锁,锁住操作的行3.FIFO队列(First Input First Output,先进先出)4.文件锁(IP不高或者说并发数不是很大的应用)来自https://www.cnblogs.com/walblog/articles/8476579.html...转载 2019-04-25 09:05:35 · 272 阅读 · 0 评论 -
跨域问题的主要解决办法
1.返回的头信息中增加'Access-Control-Allow-Origin'属性即可header("Access-Control-Allow-Origin: http://a.com"); // 允许a.com发起的跨域请求 //如果需要设置允许所有域名发起的跨域请求,可以使用通配符 * header("Access-Control-Allow-Origin: *"); // 允许任意...原创 2019-04-26 14:44:05 · 481 阅读 · 0 评论 -
汇总一下tp5 知识点
原生sql执行Db::query('select * from think_user where id=?',[8]);Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);多个数据库连接:Db::connect($config)->query('select * from th...转载 2019-04-02 15:48:05 · 580 阅读 · 0 评论 -
web服务器设置隐藏入口文件index.php
apache1.开启apache rewrite模块apache安装目录“/apache/conf/” 下的 httpd.conf 文件,找到“LoadModule rewrite_module”,将前面的”#”号删除即可。如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module ,modules/mod_rewrite.so”...原创 2019-03-27 12:02:50 · 1613 阅读 · 0 评论