PHP神奇又有用的Trait

php和java,c++一样都是单继承模式。但是像python,是支持多继承(即Mixin模式)。那么如何在php中实现多继承模式?这就需要使用trait。 >>>>

ThinkCMF thinkphp5.1 个人修改版本

上一个项目在api上使用了thinkphp5.1,但是后台还是使用thinkcmf5.0,tp版本是5.0 .当时就想统一thinkphp版本。最近得空有时间修改,因此在ThinkCMF 5.0.180901基础上将thinkphp版本改成5.1.29 。修改后,已经对本地测试的不兼容进行修改。 >>>>

如何快速高效的将数组转换成树形结构

任何无限极分类都会涉及到创建一个树状层级数组。从顶级分类递归查找子分类,最终构建一个树状数组。如果分类数据是一个数组配置文件,且子类父类id没有明确的大小关系。那么我们如何高效的从一个二维数组中构建我们所需要的树状结构呢。 >>>>

sql语句执行顺序(mysql为例)

### 测试数据表 >>>>

设计模式(一),创建模式(如何创建,谁创建,什么时候创建)

1、工厂模式 通过工厂类,创建不同的对象。工厂模式适合:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。 >>>>

Yii2和thinkphp5中一个微小的差异造成bug的根源

考虑一个场景,一个函数需对相同表进行多次查询,多次查询中有部分查询条件相同。对于这种情况,Yii2和thinkphp5的实现方式要格外小心。在Yii2中,可以直接使用``clone`` 复用共同的查询条件,但是thinkphp5的话,必须把相同条件再重复写一次。 >>>>

高性能MySQL(第3版)阅读笔记

* char(5) 和varchar(200) 存储'hello'的空间开销相同,使用短列有什么优势? >>>>

从Laravel,Yii,Thinkphp中学习php 操作数据库的事务嵌套

最近维护历史代码,使用的是phalapi 最初版本开发,数据库操作使用的是notorm。notorm本身不支持事务嵌套,但是在开发过程中,多个操作进行拆分,根据不同业务不同进行调用,必然会设计到多个事务嵌套在一起的问题。举个栗子: >>>>

Laravel5.6 文件上传以及文件管理后台

今天聊聊在Laravel5.6 如何实现文件上传功能,以及上传文件的管理功能。主要有文件列表,上传新文件,创建文件夹,删除文件夹以及删除文件。 >>>>

Laravel5.6 博客搭建系列四--文章标签后台管理

#### 创建标签模型和迁移 首先需要创建 Tag 模型类:```php artisan make:model --migration Tag```该命令会在 app 目录下创建模型文件 Tag.php,由于我们在 make:model 命令中使用了 --migration 选项,所以同时会创建 Tag 模型对应的数据表迁移。在标签(Tag)和文章(Post)之间存在多对多的关联关系,因此还要按照下面的命令创建存放文章和标签对应关系的数据表迁移:```php artisan make:migration --create=post_tag_pivot create_post_tag_pivot``` >>>>

读Yii2框架的web返回格式化类Response

一个完整的网络请求,最后都需要一个符合协议的返回。Yii2在处理web请求之后,统一通过web/Response处理返回。错误也会经过错误处理返回一个Response。 >>>>

聊聊Yii2和ThinkPHP5的文件缓存

翻一翻Yii2和ThinkPHP5的源码,看看它们的文件缓存。看看这些使用广泛的框架如何设计一个缓存操作类。 >>>>

从YII2 和ThinkPHP5 中看PHP如何获取所有请求头

开发当中,很多信息除了通过参数传递之外,还会有一些数据通过请求头来传递。分析Yii2和ThinkPHP5 框架代码,看如何用PHP语言获取请求头。 >>>>

CSS规则的specificity

* 当Speficity值相等时,后来选择符居上。 * 当Speficity值不相等时,Speficity值高的选择符生效。 * 越具体的选择符越有更高的优先级数 * 最后的CSS规则将覆盖任何之前或冲突的CSS规则。 * 嵌入式样式的Speficity值高于其它。 * ID选择符比属性选择符Speficity值要高。 * 可用IDs去提高选择符的Speficity值 * 另外,!important规则高于一切,慎用;继承的样式属式不参与优先级数值计算,低于其它规则 >>>>

Http中的connection:keep-alive

http请求中的keep-alive 有什么用,怎么用? >>>>

LetCode 查找数组中两个数之和等于特定数值

假设允许赠送礼物配置 ``` {"apple":5,"Banana":3,"Fig":7,"Grape":1,"Haw":4,"Mango":6,"Nectarin":8,"Pear":2,"Pitaya":6,"empty":0} ``` 业务需求要求当用户充值>50 且<80 赠送价值4元礼物,当用户充值>80 且小于<100 赠送6元礼物,当用户充值>100 赠送价值10礼物,单次赠送不赠送相同礼物。对于这样的问题,如果在工作中如何解决?我们先来看一看Letcode中的一道题 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 >>>>

创建自己的 Thinkcmf 后台模板

由于工作原因,项目的后台都是采用Thinkcmf搭建。但是看了那么久的默认样式,还是觉得有点不喜欢。因此想自己套一套主题上去,弄个漂亮点的界面效果。 经过两天的努力,终于在[material-dashboard](https://www.creative-tim.com/product/material-dashboard) html后台模板的基础,结合thinkcmf官方bootstrap3 的模板修改出一套material模板。 >>>>

Laravel5.6 博客搭建系列三--博客内容增删改查

本篇内容分享创建后台博客内容增删改查操作。 >>>>

Laravel5.6 博客搭建系列二--搭建后台管理系统

#### 创建用户认证系统 >>>>

Laravel5.6 博客搭建系列一

Laravel框架目前已经发展到5.6版本了,但是目前官方的入门教程还是基于5.1的博客教程。为了更多的人能快速上手新版本,本教程使用Laravel5.6 一部一部跟大家分享如何搭建一个博客系统。下面来看一下如何用十分钟使用Laravel5.6搭建简单博客 >>>>