安正超
安正超
https://overtrue.me/articles/2015/05/install-phpcs-and-phpmd.html PHPCS 安装 有以下方式安装 PHPCS: 使用 composer: composer global require "squizlabs/php_codesniffer=*" 注意,你可能需要将 ~/.composer/vendor/bin/ 添加到 PATH 环境变量中,否则会报命令找不到。 使用 PEAR: pear install PHP_CodeSniffer 下载安装: curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar php phpcs.phar -h curl -OL...
http://127.0.0.1:4321/articles/2016/11/summernote-image-upload-to-server.html Summernote 默认使用 data-url 形式来存储编辑器内的图片,稍大一些的图片生成的 data URIs 就会特别长特别长,几度让我的 chrome 出现:net::ERR_INCOMPLETE_CHUNKED_ENCODING 的报错。 为了将其改为上传到服务器端然后插入 img 标签的形式,我们需要做一些小小的自定义,下面的一段简单的代码即可达到此目的: jQuery(document).ready(function($) { //upload image in description $('#description').summernote({ height: 300,...
https://overtrue.me/articles/2014/10/using-eloquent-outside-laravel.html 不得不承认Laravel的Eloquent是一个很棒的ORM,其实Laravel框架的设计本身结构使用的是subtree实现(外层使用的git-subsplit) , 也就是说Eloquent是独立的模块,我们也可以在自己的项目里通过composer来使用Eloquent,本文就详细讲解如何在自己的项目集成Eloquent。 安装 首先我们得有composer,安装方法请详见:https://getcomposer.org/doc/00-intro.md 可能没有翻墙的情况下使用composer会比较慢,那么这里同样有福利:http://pkg.phpcomposer.com/ 。 我们...
https://overtrue.me/articles/2014/10/php-variable-principle.html PHP 是弱类型,动态的语言脚本。在申明一个变量的时候,并不需要指明它保存的数据类型。例如: <?php $var = 1; $var = "variable"; $var = 1.00; $var = array(); $var = new Object(); 动态变量,在运行期间是可以改变的,并且在使用前无需声明变量类型。 问题一、Zend引擎是如何用C实现这种弱类型的呢? 实际上,在PHP中声明的变量,在ZE中都是用结构体zval来保存的。 首先我们打开Zend/zend.h来看zval的定义: typedef struct _zval_struc...
http://127.0.0.1:4321/articles/2014/10/github-windows-https-error.html 今天上午在家里的台式机上更新GitHub客户端后发现无法clone了,后来打开git shell 去clone,发现报错如下: XXXXXX,Protocol https not supported or disabled in libcurl 网上找了半天终于找到一个SourceTree同样问题的解决方法,应该是win7 64位自带的”libcurl.dll”,对于https的某些限制导致的。搜索GitHub安装目录的libcurl.dll: C:\Users\你的用户名\AppData\Local\GitHub\PortableGit_7eaa994416ae7b397b262803...
http://127.0.0.1:4321/articles/2017/08/about-composer-version-constraint.html 相信 Composer 对你来说已经相当熟悉了,不过对于包的版本,我觉得应该还有不少同学不是那么清楚各种写法到底是啥意思。 语义化版本 首先,我们来了解一个东西:语义化版本 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。 语义化版本一般我们使用 3 个部分来表示一个版本,例如:1.4.23,1 为主版本号,4 为次版本号,23 为修订号或者补丁版本号。当然你肯定也见过 1....
http://127.0.0.1:4321/articles/2017/08/about-composer-version-constraint.html 相信 Composer 对你来说已经相当熟悉了,不过对于包的版本,我觉得应该还有不少同学不是那么清楚各种写法到底是啥意思。 语义化版本 首先,我们来了解一个东西:语义化版本 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。 语义化版本一般我们使用 3 个部分来表示一个版本,例如:1.4.23,1 为主版本号,4 为次版本号,23 为修订号或者补丁版本号。当然你肯定也见过 1....
https://overtrue.me/articles/2014/10/mysql-explain.html EXPLAIN 显示了 MySQL 如何使用索引来处理 SELECT 语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在 select 语句前加上EXPLAIN就可以了: 如: EXPLAIN SELECT `surname`,`first_name` FORM `a`,`b` WHERE `a`.`id`=`b`.`id` EXPLAIN列的解释: 列 描述 table 显示这一行的数据是关于哪张表的。 type 这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为 const、eq_reg、ref、range、index和ALL。 possible...
http://127.0.0.1:4321/articles/2016/04/about-php-trait.html Trait 是从 PHP 5.4 加入的一种细粒度代码复用的语法。以下是官方手册对 Trait 的描述: Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题。 Trait 和 Class 相似,但仅仅旨在用细粒度和一致的方式来组合功能。 无法通过 trait 自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用的几个 Class 之间不需要继承。 什...
https://overtrue.me/articles/2019/10/a-easy-way-to-set-laravel-morph-map.html 作为 Laravel 的重度使用者肯定都对多态关系不默生,以官方文档为例,文章有标签,视频有标签,那么文章和视频这些模型与标签模型的关系就是多态多对多(Many To Many (Polymorphic)) 如果我们给 ID 为 1 的文章打上两个标签,数据库标签关系表的的存储结果就是这样子: > select * from taggables; +--------+-------------+---------------+ | tag_id | taggable_id | taggable_type | +--------+-------------+---------...