PHP
文章平均质量分 55
php学习记录
小资不采
我是一个小熊啊
展开
-
laravel 在配置nginx代理时遇到的链接问题
nginx 反向代理相关问题需求:关于一个多语言站点的部署,只有中文站点在国内,多于站点部署在国外,国外是主营业务,所以国外算是主站点,域名类似comunity.xx.com,英语和小语种都是通过sg|au|fr|de|ru|jp|it访问,国内通过cn访问,国内的在国内服务器,通过nginx代理访问国内。环境语言服务器数据库前台框架后台框架服务器化境php7.2nginxmysql5.7laravel5.8laravel-adminCentOS7原创 2020-11-27 22:07:33 · 562 阅读 · 0 评论 -
Laravel生命周期学习一
生命周期index.php1.1 检测是否处于维护模式if (file_exists(__DIR__.'/../storage/framework/maintenance.php')) { require __DIR__.'/../storage/framework/maintenance.php';}1.2 加载composer自动加载文件require __DIR__.'/../vendor/autoload.php';1.3 加载初始化容器$app = require_原创 2020-09-26 16:19:54 · 384 阅读 · 0 评论 -
2020-09-26
laravel 视图共享数据需求背景,网站的头部数据,底部数据大多数都是共享的数据,每个页面都需要,基本都是保持不变的数据,这个时候,如果在每个控制器中都去查询数据传递变量,这样就很麻烦,造成[一变全改],某一个地方漏掉了,几乎就是一个致命bug了。那么在laravel中,就刚好有一个方法来帮助偷懒的开发者解决这个问题。先说一个复杂的完整的写法。首先需要在app/provides文件下面创建一个ViewServiceProvider服务提供者,这个服务提供者继承框架的的ViewServi原创 2020-09-26 16:14:51 · 123 阅读 · 0 评论 -
PHP设计模式之模板方法模式
PHP设计模式之模板方法模式 Template Method首先我们不说什么是模板方法模式,可以先看一个生活种的小例子,然后由生活中的小例子再来谈谈这个模板方法模式的实现。生活中大家早上上班,如果不是自己做饭的,一般都是在外面买这吃的,一般买包子搭配豆浆,这个是最快捷而且省钱的一种搭配方式,那么包子老板做包子一般分为几个步骤呢,一般都是先挑选紧致的面粉,然后会让面粉发酵,准备包包子的原材料,比如肉包子,韭菜包子,粉丝包子,海带包子,只要你能想的到,老板都会满足你,包好包子之后,会把包子放在蒸笼原创 2020-08-09 22:22:10 · 148 阅读 · 0 评论 -
PHP设计模式之外观模式
外观模式外观类 为调用端提供统一的调用接口,外观类知到那些子系统负责处理请求,从而将调用端的请求代理给适当的子系统外观模式对外屏蔽了子系统的细节,因此外观模式降低了客户端对子系统的使用的复杂性外观模式对客户端与子系统的耦合关系,让子系统内部的模块更容易维护和扩展通过合理的使用外观模式,可以更好的划分访问的层次生活举例,比如有一个影院系统,影院里有DVD,投影仪,爆米花机,幕布,音响,灯光,总共有这么多设备,我们去电影院开电影呢,用户是不关心影院怎么工作的,用户只关心的电影开原创 2020-08-07 00:28:38 · 185 阅读 · 0 评论 -
PHP代码检测工具-CodeSniffer
PHP代码检测工具 CodeSniffer使用composer安装 composer require squizlabs/php_codesniffergit拉取下载 https://github.com/squizlabs/PHP_CodeSniffer.git最主要的是两个文件:|-- squizlabs |-- php_codesniffer |-- bin |-- phpcbf //代码修正脚本 |--原创 2020-08-05 23:48:13 · 1127 阅读 · 0 评论 -
字符串或数字反转
字符串或数字反转字符串反转,比如给定一个字符串 abc,得到一个cba,或者输入一个123456得到一个654321,如果不想要自己实现,那么PHP有一个自带的函数strrev ( string $string ) : string strrev 也是可以达到相同的效果的在 力扣 算法篇是由这个题目描述的,具体的可以点链接过去看看,不过这个题目在里算法里面是属于简单的在这里如果想要自己实现一个达到相同效果的函数,也是可以做到的。方法一:使用二分法,我们把第一个字符和最后一个字原创 2020-07-29 23:29:27 · 1150 阅读 · 0 评论 -
PHP设计模式之桥接模式
PHP设计模式之桥接模式 Bridge桥接模式属于结构型的设计模式将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变bridge 模式是基于最小设计原则,通过封装,聚合及继承等行为让不同的类承担不同的职责,主要的特点就是将抽象与实现分离,从而保证各部分的独立性以及应对他们功能的扩展生活场景引入:现在的生活都离不开手机,手机中又有不同的品牌,小米,华为,三星,苹果。每一种手机的设计又不一样,比如最开始的翻盖手机,直板手机,到现在的全面屏手机,假如现在的每个手机厂商都原创 2020-07-04 21:07:49 · 230 阅读 · 0 评论 -
PHP设计模式之适配器模式
PHP设计模式之适配器模式生活场景问题引入:假如需要去国外旅游,游玩,现在电子产品很丰富,但是每个电子产品都是需要电源来做驱动,手机,电脑,相机。。。但是又有一个很显示的问题,电子产品是很消耗电量的,电量没有了,就需要充电,在我们国家,我们买的电子产品出场带的电源充电器,一般都是220V的电压,但是世界很大,每个国家的要求(规定)又是不同的,比如美国就是120V原理:将一个类的接口转换为另外一种接口,让原本接口不兼容的类可以兼容。用户调用适配器转化出来的目标接口方法,适配器再去调用被适原创 2020-06-29 23:45:01 · 158 阅读 · 0 评论 -
关于时间PHP处理包遇到的问题时间序列化差值问题
关于时间PHP处理包遇到的问题问题描述,最近在写项目的时候,因为是一个多语言的项目,而且对于本地化时间也做了处理,再加上在宣传页面,不同的地方,做了不同格式的展示时间的处理,最重要一点,这是一个使用laravel开发的项目,安装一个方便的时间处理包真的是太方便了,而且carbon还是这么的强大。后台的使用者在发布一个宣传文章的时候,有时候会使用一个预发布的功能,那么前台在预发布的时间之后,就会显示这个宣传文章,现在的问题就是,比如我选择一个早上八点之前的预发布时间,那么使用carbon处理时原创 2020-06-18 00:05:50 · 192 阅读 · 0 评论 -
关于isset和逻辑运算符的使用
关于isset和逻辑运算符的使用之前看到Hyperf的框架中,关于服务端的代码,有一个设置配置的文件的代码,如下:$config = ['host' => ''];isset($config['host']) && $config['host'] = '127.0.0.1';这个代码里是把isset()和逻辑运算符放在一起的,当这个isset()存在的时候,就会给它重新赋值,比起写if来说,代码看起来清爽了很多。比如if的实现:$config = [];if (is原创 2020-06-14 23:08:43 · 178 阅读 · 0 评论 -
二叉树的遍历实现
二叉树tree 如图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传根节点 root节点(所有节点由它开始,它没有父节点,只有孩子节点)节点的度:节点拥有子树的个数树的度:一棵树中所有节点的度的最大值叶子节点:度为0的节点,没有子树的节点,终端节点(A,D,F,G)分支节点:度不为0的节点,非终端节点(D,C,E)兄弟节点:拥...原创 2020-01-05 23:10:43 · 184 阅读 · 0 评论 -
插值查找算法
插值查找算法对于有序的数列[数组]来说,查找一个具体的数值[数组的value],可以使用顺序查找,也可以使用前一章节学习的折半[二分法]查找。下面有一个具体的实例:$arr = [1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]这是一个分布均匀的有序数组,这次需要查找数组的值为1的键,或者是一个值为20的键。首先使用顺序查找:顺序查...原创 2019-12-13 18:04:34 · 304 阅读 · 0 评论 -
php命名空间学习
命名空间命名空间通过关键字namespace来声明命名空间必须在一个文件的最上面,它的声明以上不允许有任何代码,除了declare关键字之外。可以通过__NAMESPACE__来得到当前命名空间的名字使用命名空间的基础相对文件命名形式, foo.php 它会被解析为currentdirectory/foo.php,其中currentdirctory表示当前目录,因此如...原创 2019-11-24 23:30:16 · 136 阅读 · 0 评论 -
PHP的控制反转和依赖注入以及反射
控制反转,依赖注入这里先不说概念,只先看两个最小修普通的小demo;在routine这个文件里,先创建一下几个文件:InterfaceLog.php 声明的一个接口文件FileLog.php 这个实现上面接口的类DatabaseLog.php 这个实现上面接口的类User.php 这个具体的操作类一下是代码实现:interface InterfaceLog{ publ...原创 2019-06-23 22:26:34 · 501 阅读 · 0 评论 -
PHP取随机数
/** * 根据类型选择字符串 * @param integer $type [description] * @return [type] [description] */function getStr($type=1){ $str = ''; switch ($type) { case 1: # 数字 ...原创 2018-08-18 17:41:38 · 898 阅读 · 0 评论 -
PHP面向对象(oop)
1.创建一个类class Base{ public function index() { echo '这是Base类里面的index方法'; }}class User extends Base{ //公开 public $name; //受保护的 protected $arr; //私有属性 ...原创 2018-08-20 00:11:59 · 134 阅读 · 0 评论 -
PHP中mysql语句练习
1.mysql的数据库创建//创建一个数据库create database test;//删除数据库drop database if exists test;//创建数据库如果不存在create database if not exists test;//创建数据库如果不存在,默认编码格式utf8;create database if not exists test defaul...原创 2018-08-24 15:03:51 · 194 阅读 · 0 评论 -
php自动加载类
PHP自动加载类在PHP5之前我们还可以使用PHP的自动加载函数http://php.net/manual/zh/function.autoload.php __autoload(),在PHP7之后官方推荐的就是http://php.net/manual/zh/function.spl-autoload-register.php sql_autoload_register()这里就拿它们做比...原创 2018-12-08 17:05:32 · 120 阅读 · 0 评论 -
PHP之trait的了解(一)
php中使用traitPHP一直都是一门单继承的语言,单继承的语言有好处,也有不好,最起码在代码复用这方面是没有c++这种多继承语言好用的。虽然我们是单继承语言,但是我们也在想我们的方法呀,所以在那些聪明人的努力下:PHP从5.4.0起,PHP家族多了一个trait “小伙伴”;就是它【trait】帮我们实现了一种代码复用Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制...原创 2018-12-16 17:40:45 · 288 阅读 · 0 评论 -
Elasticsearch-PHP 学习了解(一)
Elasticsearch-PHP 学习了解(一)Elasticsearch—PHP 的github地址首先是安装,我的环境是在windows10上测试,PHP的版本是7.0;所以我直接安装的的Elasticsearch—PHP也是大于等于6.0的。PHP的框架也是laravel5.5。直接在我们的composer.json中添加: { "requ...原创 2019-04-02 18:44:23 · 1234 阅读 · 0 评论 -
PHP位运算
PHP位运算二进制二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。20世纪被称作第三次科技...原创 2019-08-09 09:06:10 · 1041 阅读 · 0 评论 -
PHP面试准备
1.什么是mvc,mvc是什么?mvc是一种设计模式,它是由模型【model】控制器【controller】视图【view】三部分组成。model层负责数据处理,controller层负责逻辑处理,view层负责数据展示。客户端在前台请求项目的控制器,这时遇到需要操作数据的,控制器就回去model请求数据,请求到数据之后,通过视图层展示给客户端2.什么是面向对象,有哪些语言是支持面向对...原创 2018-08-15 17:47:49 · 957 阅读 · 1 评论 -
PHP使用rabbitmq以及amqp扩展的使用安装(一)
rabbitmq 消息中间件php使用rabbitmq,如果不想使用别人集成的开发包,那就需要自己鼓捣首先说使用集成开发包的,PHP的扩展需要安装bcmath这个数学相关的扩展。然后利用composer安装开发包.{ "require": { "php-amqplib/php-amqplib": ">=2.6.1" }}运行composer.p...原创 2019-03-13 19:28:54 · 2779 阅读 · 0 评论 -
PHP内置函数复习
1.数组函数array_rand();随机取出数组中一个或对个单元【第二参数默认是1,可以改变】count();得到数组元素的个数。【如果参数不是数组,将会返回0】in_array(【待搜索的值】,【待搜索的数组】,【默认为false】);【检测数组中是否存在某个值,第三参数默认是false,宽松比较】array_shift();【从数组的开头移出一个元素,返回移位的值,如果array...原创 2018-08-17 16:56:55 · 471 阅读 · 0 评论 -
PHP之sql优化
/*在使用tp框架时,在后台我们做商城项目时,后台需要显示很多列表,在做列表展示时,有时候是一张表,有时候会是多张表对于一张表来说在查询时【我们查表时只需要得到我们需要的字段就ok了,就是要限制查询字段field,不要做全部字段查询】。比如我们要查询user表,它的字段有【username,password,account,nickname,mobile,email,age,addtime,u...原创 2018-08-19 18:01:20 · 917 阅读 · 0 评论 -
PHP面试提问
今天去面试PHP技术开发这个职位,开始去了呢以为和以前一样会做笔试题这样的鬼东西。结果去了是直接技术面试,感觉这样挺好。废话不多说了,说说面试提到过的问题吧。虽然都是基础的,但是大家可以注意一下。 【顺序没关系,是我自己按记忆来记述的】对session怎么理解?session的工作原理?session工作时,为什么会开启session_start?session怎么自动存入数据库对于版本...原创 2018-08-20 21:53:57 · 1482 阅读 · 0 评论 -
PHP递归删除目录和文件
function getDir($dir){ //判断文件是否是目录 if (!is_dir($dir)) { return '$dir不是一个目录'; } if (!file_exists($dir)) { return '$dir 文件不存在'; } //打开目录句柄 $hander = opendir(...原创 2018-08-17 23:48:59 · 566 阅读 · 0 评论