PHP
文章平均质量分 66
偷懒的加菲
Laravel8.x和Laravel8.5中文文档翻译参与者
展开
-
我和王争学设计模式|桥接模式
定义原创 2021-09-12 14:10:08 · 145 阅读 · 0 评论 -
我和王争学设计模式|代理模式
定义方法一(继承式)方法二(接口式)方法三 (动态代理)其他参考:[1]. 极客时间《设计模式》(王争)[2].《研磨设计模式》(陈臣、王斌)[3]. 《Learning PHP设计模式》[4]. 从零使用composer初始化PSR-4项目...原创 2021-09-11 21:37:14 · 181 阅读 · 0 评论 -
我和王争学设计模式|抽象工厂
目录定义标准框架产品抽象和实现工厂抽象和实现调用工厂制造产品运行结果课程中示例改写参考极客时间《设计模式》(王争)定义提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体类一系列相关:意思就是生成的产品都差不多,可以理解为同一接口的实现相互依赖对象的接口:A依赖B,给他们一起打包创建出来 new A(new B());无需指定具体类:不会根据传入参数创建产品标准框架GitHub Gitee产品抽象和实现<?phpnamespace App;interf原创 2021-09-11 21:23:23 · 146 阅读 · 0 评论 -
我和王争学设计模式|原型模式
极客时间《设计模式》(王争)定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象应用场景对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式,来创建新对象,以达到节省创建时间的目的。PHP有clone关键字,可以使用clone关键字直接对实例进行拷贝我的理解原型设计模式就是内存拷贝,然后修改个别属性值,以复制+修改的方式降低new 对象所带来的系统消耗class Resource .原创 2021-09-09 21:20:35 · 267 阅读 · 0 评论 -
我和王争学设计模式|建造者模式
我们可以把校验逻辑放置到 Builder 类中,先创建建造者,并且通过 set() 方法设置建造者的变量值,然后在使用 build() 方法真正创建对象之前,做集中的校验,校验通过之后才会创建对象。除此之外,我们把 ResourcePoolConfig 的构造函数改为 private 私有权限。这样我们就只能通过建造者来创建 ResourcePoolConfig 类对象。并且,ResourcePoolConfig 没有提供任何 set() 方法,这样我们创建出来的对象就是不可变对象了。如果构造函数参数原创 2021-09-09 19:56:51 · 117 阅读 · 0 评论 -
我和王争学设计模式|工厂方法
目录定义缺点代码示例消除分支语句极客时间《设计模式》(王争)Github Gitee定义定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到子类。缺点类的数量会随着扩展爆炸性增长,如果增加一个类,要同时增加工厂类(Factory)和产品类(Product)并没有完全消除“else-if”语句,如果要消除就利用多态。代码示例列出部分代码,完整代码在上方链接中。<?phpnamespace App;interface I原创 2021-09-09 18:28:42 · 148 阅读 · 0 评论 -
我和王铮学设计模式|简单工厂
相对于直接 new 来创建对象,用工厂模式来创建究竟有什么好处呢?如果我们使用简单工厂模式来实现,就只能选择第一种包含 if 分支逻辑的实现方式。如果我们还想避免烦人的 if-else 分支逻辑,这个时候,我们就推荐使用工厂方法模式。当创建逻辑比较复杂,是一个“大工程”的时候,我们就考虑使用工厂模式,封装对象的创建过程,将对象的创建和使用相分离。何为创建逻辑比较复杂呢?我总结了下面两种情况。第一种情况:类似规则配置解析的例子,代码中存在 if-else 分支判断,动态地根据不同的类型创建不同的对象。针原创 2021-09-08 21:58:21 · 193 阅读 · 0 评论 -
我和王争学设计模式 |单例模式
去除程序对全局变量以来,单例模式是的存储的数据全局可用为什么要使用单例?例存在哪些问题?单例与静态类的区别?有何替代的解决方案?现代的PHP是一门非常适合用来学习设计模式的脚本语言,为什么这样说,因为像Java一样支持抽象类、接口类,支持了这两个属性,就可以更方便的学习设计模式了1 处理资源访问冲突、解决资源竞争,例如写日志功能,如果new出多个实例,同时写入一个文件,就可能造成文件中内容的覆盖2 表示全局唯一,某些数据在系统中只能保存一份,比如配置信息类、唯一ID发号器尽管介绍如何实现一个原创 2021-09-01 22:39:03 · 257 阅读 · 0 评论 -
PHP模拟枚举类型
使用PHP简单粗暴的模枚举# /app/State.phpclass State{ /** * 用于枚举的数组,值要唯一 */ const EnumState = [ 'SMALL' => 0, 'SUPER' => 1 , 'FIRE' => 2 , 'CAPE' => 3 ]; private $value; /** * State constructor. */ public function __construct() {原创 2021-08-08 13:34:53 · 212 阅读 · 0 评论 -
从零使用composer初始化PSR-4项目
一直都是使用框架的脚手架搭件项目,今天尝试从零搭建一个PSR-4的项目,道路略有坎坷,但最终走通了,于是把路记录下来。首先打开shell,新建项目目录,这里起名project$ mkdir project && cd project$ composer init接下来会有交互问题,一路默认回车即可。现在目录中,只有一个composer.json文件,其中内容如下图所示然后继续建立一个app目录(用来放class文件的目录),在新建一个client.php.原创 2021-07-28 20:35:25 · 921 阅读 · 0 评论 -
composer报错could not be fully loaded
当我使用composer管理项目的依赖包,有的时候会遇到如下的问题http://repo.packagelist.org could not be fully loaded (Connect time out after 100002 milliseconds ),package information was loaded from the local cache and may be out of date出现上述问题的主要原因其实是PHP的缓存设置的不够大,解决方法也比较简单,修改PHP的配置原创 2021-03-07 13:53:56 · 4606 阅读 · 0 评论 -
PHP的内置服务器
PHP5.4及以上版本,为开发者提供了内置的Web服务器,可以供开发人员进行调试和测试使用,性能上肯定赶不上Nginx,毕竟人家是干Web是专业的。可以使用php CLI的帮助信息查看是否支持。php -h 查看结果包不包含-S和-t选项,如果存在就说明可以使用PHP的内置Web服务器。-S 开启本地服务器php -S localhost:8000 #开启服务并监听8000端口,只允许本机访问php -S 127.0.0.1:8000 #开启服务并监听8000端口,只允许本机访问php -原创 2021-03-02 10:07:27 · 954 阅读 · 0 评论 -
安装composer出错 OpenSSL Error messages
今天电脑出问题了,重装系统后,安装composer时候发现出现如下提示错误信息,找处理的方式解决后特此记录。C:\Users\HeLiang>php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"Warning: copy(): SSL operation failed with code 1. OpenSSL Error messages:error:1416F086:SSL rout原创 2020-10-25 15:09:21 · 1899 阅读 · 0 评论 -
Composer 国内加速,修改镜像源
原文作者:xiegangd转自链接:https://learnku.com/articles/15977/composer-accelerate-and-modify-mirror-source-in-chinacn.bing.com版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。为什么慢由于默认情况下执行 composer 各种命令是去国外的 composer 官方镜像源获取需要安装的具体软件信息,所以在不使用代理、不翻墙的情况下,从国内访问国外服务转载 2020-06-01 10:48:25 · 1665 阅读 · 0 评论 -
解决Call to undefined method Symfony\Component\HttpFoundation\Response::header()的方法
前言先说一下我最近正在做的这个项目,这个项目是一个APP管理后台,基于Laravel 5.6开发,接口端使用Passport,WEB端使用常规开发模式。今天在WEB端使用laravel-excel组件导出Excel时,报了一个很不常见的错误:Call to undefined method Symfony\Component\HttpFoundation\Response::header()...转载 2019-11-15 16:00:10 · 5156 阅读 · 2 评论 -
Laravel Eloquent ORM字段及时间处理
class User extends Model{ #以下属性和方法都不是必须的,但是一般都要按需求定义一些 //定义关联的表名,不定义的话默认此模型关联的表为 模型名s (users) protected $table = 'user'; /******字段相关*******/ #定义主键字段名,默认是id protec...转载 2018-11-28 21:00:38 · 1156 阅读 · 0 评论 -
PHP中explode()的小坑
在使用explode()函数分割字符串,期望获取的数据是结尾左右一个字符是否为‘,’对结果不应该有影响,空的字符串被分割后应该是空的数组,然而在使用中,这个函数的运行结果并不是如此,下面实验开始。运行如下程序:$str = '1,2,3,4,5';var_dump(explode(',',$str));得到结果如下:array(6) { [0]=> string(1)...原创 2019-09-30 15:56:23 · 3232 阅读 · 1 评论 -
九个PHP很有用的功能
转载:https://coolshell.cn/articles/2394.html作者:左耳朵耗子下面是九个PHP中很有用的功能,不知道你用过了吗?1. 函数的任意数目的参数你可能知道PHP允许你定义一个默认参数的函数。但你可能并不知道PHP还允许你定义一个完全任意的参数的函数下面是一个示例向你展示了默认参数的函数:// 两个默认参数的函数function foo($arg1 ...转载 2019-10-08 14:23:12 · 217 阅读 · 0 评论 -
PHP获取随机字符串的几种方法
转载:https://www.cnblogs.com/myIvan/p/9533189.html方法一:shuffle函数(打乱数组)和mt_rand函数(生成随机数,比rand速度快四倍)/** * 获得随机字符串 * @param $len 需要的长度 * @param $special 是否需要特殊符号 * @return string...转载 2019-10-08 14:38:40 · 1544 阅读 · 0 评论 -
PHP 开发者该知道的 5 个 Composer 小技巧
Composer是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时代》。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便。1. 仅更新单个库只想更新某个特定的库,不想更新它的所有依赖,很简单:composer update foo/bar此外,这个技巧还可以用来解决“警告信息问题”。你一定见过这样的警告信息:War...转载 2019-10-08 16:23:13 · 179 阅读 · 0 评论 -
PHP对Excel导入&导出操作
转载:https://blog.csdn.net/DestinyLordC/article/details/84071456作者:枫叶FyPHP对Excel导入&导出操作最近公司要做报表功能,各种财务报表、工资报表、考勤报表等,复杂程度让人头大,于是特地封装适用各大场景的导入&导出操作,希望各界大神支出不足之处,以便小弟继续完善。phpspreadsheet 引入由于...转载 2019-09-30 15:08:16 · 4250 阅读 · 0 评论 -
PHP快速生成随机字符串
在生成系统订单号的时候,经常需要生成随机字段,再字段的拼接使用PHP自带函数进行拼接订单号如下代码$id = '000325'; //变量值来自于代码以上部分$uniqid = md5(uniqid(microtime(true),true));//如果感觉字符串太长,可以再用途substr()截断一部分字符串使用//例如我拼接订单号可以这样$orderNum = $id ....原创 2019-06-21 14:44:06 · 2917 阅读 · 0 评论 -
Laravel在migrate出现Syntax error or access violation: 1067 Invalid default value
在开发laravel项目的时候,migrate的时候,出现离奇错误。错误完整内容如下:Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'expiry_date_end' (SQL: create tabl...原创 2019-02-09 19:09:26 · 3634 阅读 · 2 评论 -
PHP保存数组到数据库
转载:http://www.cnblogs.com/awebing/p/6557659.html作者:Awebing数组是 PHP 开发中使用最多的数据类型之一,对于结构化的数据尤为重要。很多时候我们需要把数组保存到数据库中,实现对结构化数据的直接存储和读取。其中一个案例就是,对于 Form 提交的多选 checkbox 数据,PHP后端就收到的数据就是一个数组,而且有可能还是多维数组。例...转载 2019-02-02 22:24:48 · 2319 阅读 · 0 评论 -
Postman测试上传多图接口
在用Laravel写就接口的时候,不知道怎么测试怎用postmam测试多图上传,查找了很多资料都没明白,资料一般写的都是上传单张图片的示范,特此记录下来。Postman设置Laravel后台接口的编写写的是一段上传相册到服务器的代码,本人学的浅勿喷/** * 上传相册到服务器,同时相关数据存入数据库 * @param Request $request * @return \I...原创 2018-12-15 17:00:41 · 8055 阅读 · 2 评论 -
Laravel 5.5 .No application encryption key has been specified
Laravel 5.5 .No application encryption key has been specified创建了新的laravel项目后, 运行提示:No application encryption key has been specified解决方法:这个是由于没有配置好 APP_KEY在终端上, cd到项目目录位置然后执行:php artisan key:...转载 2018-12-01 23:05:12 · 1018 阅读 · 0 评论 -
PHP获取数组的某一列的值
在php中有如下数组,一般都是从数据库中获得的数据$categories = [ 0 =&amp;amp;amp;gt; [ &amp;amp;quot;id&amp;amp;quot; =&amp;amp;amp;gt; 12 &amp;amp;quot;parent_id&amp;amp;quot; =&amp;amp;amp;gt; 6 &a原创 2018-11-27 09:35:10 · 4866 阅读 · 0 评论 -
RESTful 摘抄
HTTP方法 URI 描述 POST path/v1/book 新增图书信息 DELETE path/v1/book 删除书籍信息 DELETE path/v1/book 全量更新书籍信息 DISPATCH path/v1/book 更新书籍部分信息 GET path/v1/book 获取书籍信息...原创 2018-06-19 18:27:46 · 227 阅读 · 0 评论 -
PHP 后端调试输出方法(笨办法)
//输出变量或数组到文件$fp = fopen('./a.txt', 'a+b');fwrite($fp, print_r($content, true));fclose($fp);//打印单个变量到文件error_log($file, 3, &amp;quot;/tmp/php_3.log&amp;quot;);//输出对象到文件file_put_contents(&amp;quot;/tmp/qujun_php2.log&am原创 2018-06-19 18:18:25 · 15093 阅读 · 1 评论 -
PHP代码优化技巧总结
PHP代码优化是评测你是否是一名合格的PHP工程师的一个重要维度,编写程序时,总是想要使自己的程序占用资源最小,运行速度更快,代码量更少。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法,它可以比 CGI或者Perl更快速的执行动态网页。PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高得多。echo 比 print 快。...转载 2018-06-19 17:55:56 · 307 阅读 · 0 评论 -
Laravel 程序架构设计思路:使用动作类
转载:https://www.cnblogs.com/summerblue/p/9148713.html作者:Summer2018当我们谈论到应用程序的架构的时候,经常会问到一个经典的问题,那就是“这段代码应该放在哪里比较好”。 因为 Laravel 是一个相当灵活的框架,所以要回答这个问题其实没那么容易。我应该把我的业务逻辑写在 Model 层,还是 Controller 层,或者是其他地方...转载 2019-02-18 12:23:57 · 319 阅读 · 0 评论 -
Laravel 技巧
转载:http://www.cnblogs.com/qiyongchu/p/5817314.html作者:代达罗斯之殇Eloquent1.Automatic model validationclass Post extends Eloquent{ public static $autoValidate = true; protected static $rules = a...转载 2019-02-13 09:09:31 · 1203 阅读 · 0 评论 -
4种PHP回调函数风格
转载:https://wiki.swoole.com/wiki/page/458.html1. 匿名函数$server->on('Request', function ($req, $resp) use ($a, $b, $c) { echo "hello world";});可使用use向匿名函数传递参数2. 类静态方法class A{ static fun...转载 2019-06-05 09:15:28 · 276 阅读 · 0 评论 -
PHP中常用的array操作
数组内容去重$a = [1,2,3,3,4,5,5,5,7,4];$result = array_unique($a);//$result = [1,2,3,4,5,7];数组中是否存在某个键if(array_key_exists('key', $array)){ //do something}查找一个值在数组中的位置$position = array_sear...原创 2019-05-27 18:22:32 · 470 阅读 · 0 评论 -
鸟哥惠新宸:PHP 7.1 的新特性我并不是很喜欢
转载:https://www.oschina.net/question/2896879_2212316作者:王练在此我想放我喜欢的一条,原文第9条还有种说法就是 PHP 学习起来特别简单,不利于展示个人能力,对此怎么看?(鸟哥回答)答:PHP 确实简单,这也是我们追求的目标,我们希望它简单,简单难道不好吗?可能有些人会寄希望通过一些复杂的东西来体现自己的优越感,这其实也没什么问题。只...转载 2019-05-08 22:10:12 · 458 阅读 · 0 评论 -
Laravel 模型事件几种用法
转载:https://segmentfault.com/a/1190000010653874作者:大福哥一 、简单粗鲁(用于本地测试)路由中定义:Event::listen('eloquent.updated: App\Post',function (){ dump('测试一下修改事件');});Route::post('/post/{id}', 'PostController@...转载 2019-04-03 16:12:48 · 1840 阅读 · 0 评论 -
Laravel-Admin中添加富文本编辑器CKeditor并可以上传图片
https://github.com/tmtfns/laravel-ckeditor/blob/master/app/Http/Controllers/TextImageController.phphttps://ckeditor.com/docs/ckeditor4/latest/guide/dev_file_upload.htmlhttps://blog.csdn.net/alistrin...原创 2019-04-02 22:57:25 · 3441 阅读 · 2 评论 -
翻译Guzzle摘要
原文: https://packagist.org/packages/guzzlehttp/guzzleGuzzle is a PHP HTTP client that makes it easy to send HTTP requests and trivial to integrate with web services.Guzzle是一个用PHP开发HTTP客户端程序,它可以使发送H...翻译 2019-03-27 12:54:01 · 170 阅读 · 0 评论 -
初始化 Laravel5.5 项目
composer create-project laravel/laravel blog “5.5.*” --prefer-dist原创 2019-03-21 18:34:00 · 802 阅读 · 0 评论 -
为什么你应该使用 Repository
原文:http://vegibit.com/laravel-repository-pattern/转自:https://segmentfault.com/a/1190000003488038Repository 模式为了保持代码的整洁性和可读性,使用Repository Pattern 是非常有用的。事实上,我们也不必仅仅为了使用这个特别的设计模式去使用Laravel,然而在下面的场景下,我...转载 2019-02-19 10:06:09 · 399 阅读 · 0 评论