代码改变世界

随笔分类 - PHP

解读 PHP 的 P++提案

2019-08-12 19:05 by 轩脉刃, 1258 阅读, 收藏, 编辑
摘要: 解读 PHP 的 P++提案 周末看到一篇文章说 PHP 创始人提议将 PHP 拉出新分支,创建 P++ 语言。随后阅读了一下 Zeev Suraski 发起的这个邮件列表,大致了解了一下,这里做个解读。 Zeev Suraski 就是几周前爆出的 PHP 核心开发者从 Zend 公司离职消息里面的 阅读全文

史上最快的后台搭建框架

2019-04-10 08:05 by 轩脉刃, 8782 阅读, 收藏, 编辑
摘要: 史上最快的后台搭建框架 如果你要问我说最快的后台搭建框架是什么,我会毫不犹豫的说,laravel admin(https://laravel admin.org/)。这个框架的作者是z song,应该是腾讯公司的。它的官网写着“在十分钟内构建一个功能齐全的管理后台”。没有夸张,就是这么虎。 搭建完成 阅读全文

一次composer错误使用引发的思考

2019-03-05 12:19 by 轩脉刃, 690 阅读, 收藏, 编辑
摘要: 一次composer错误使用引发的思考 这个思考源自于一个事故。让我对版本依赖重新思考了一下。 事故现象 一个线上的管理后台,一个使用laravel搭建的管理后台,之前在线上跑的好好的,今天comopser install之后,出现错误信息: 事故分析 这个是个底层库,基本上,一看就知道是版本兼容问 阅读全文

PHP 编码规范

2018-05-10 20:10 by 轩脉刃, 2960 阅读, 收藏, 编辑
摘要: 这是给小组制定的php编码规范 该 PHP 编码规范基本上是同 PSR 规范的。有一部分的编码规范 PSR 中是建议,此编码规范会强制要求。 此编码规范 是以 PSR 1 / PSR 2 / PSR 2扩展 为蓝本,并增加了相应的细节说明。 通则 基本编码 PHP代码必须使用 短输出标签;一定不可使 阅读全文

优雅使用 illuminate/database 包中的 Collection

2018-02-24 09:52 by 轩脉刃, 2171 阅读, 收藏, 编辑
摘要: 优雅使用 illuminate/database 包中的 Collection 或许你很抵抗使用 Laravel , 但是你没有理由不喜欢使用 illuminate/database。这是一个 ORM 的类库。我个人认为,这个类库你是否用的好,其中很重要的一点就是你是否能用好 Collection 阅读全文

Composer 结合 Git 创建 “服务类库”

2018-02-23 09:42 by 轩脉刃, 545 阅读, 收藏, 编辑
摘要: Composer 结合 Git 创建 “服务类库” 我一直认为,现在的 PHP 已经进展到了工程化的领域。以前的 PHP 开发者,以快为美,速度和规模永远都是矛盾体。现在的 PHP 项目,特别是稍微大型一点的项目中,已经在逐渐演化成为需要兼顾工程化和规模化的层次了。一个代码工程化,就意味着演化为逐渐 阅读全文

工程之殇

2018-01-14 02:37 by 轩脉刃, 622 阅读, 收藏, 编辑
摘要: 今天晚上的心路历程好让人泄气。 继续揣摩laravel项目中ValidationException的设计,看到里面的status,觉得好奇怪,为什么是叫status,不是直接把code设置一下呢?然后想想,好像也对,code是异常的代码,而status是http response的代码,两个不应该混 阅读全文

一种laravel特有的serviceProvider的加载方式

2018-01-08 17:04 by 轩脉刃, 3229 阅读, 收藏, 编辑
摘要: 这里的laravel版本5.5。 我是使用到dingo这个包的时候,觉得很奇怪,我们一般的包使用的时候都需要加载一个serviceProvider,提供服务,dingo/api这里也有ServiceProvider,但是安装的时候,并没有让我们修改config/app.php 增加写入这个servi 阅读全文

如何升级laravel5.4到laravel5.5并使用新特性?

2017-10-23 23:50 by 轩脉刃, 5990 阅读, 收藏, 编辑
摘要: 如何升级laravel5.4到laravel5.5并使用新特性? 修改composer.json: scripts增加: 执行composer update vvv 新特性1: 扩展包自动发现 为扩展包增加了一个自动发现功能。 以barryvdh/laravel debugbar为例,先删除这个包。 阅读全文

laravel Scout包在elasticsearch中的应用

2017-04-05 15:14 by 轩脉刃, 4560 阅读, 收藏, 编辑
摘要: laravel Scout包在elasticsearch中的应用 laravel的Scout包是针对自身的Eloquent模型开发的基于驱动的全文检索引擎。意思就是我们可以像使用ORM一样使用检索功能。不管你用的是什么搜索引擎,scout包给你封装好了几个方法 你只需要创建一个引擎(比如es引擎)就 阅读全文

策略模式

2017-03-14 07:43 by 轩脉刃, 506 阅读, 收藏, 编辑
摘要: 最近工作使用到设计模式,在选用设计模式的时候,发觉设计模式理解不难,难的是在某个场景下选用哪个设计模式。就是设计模式的使用场景。 策略模式 策略模式适用情况是你已经知道了某个算法。第一步做什么,第二步做什么,第三步做什么。但是具体的三步在不同场景怎么做有不同的行为。 代码举例: 策略模式属于行为型模 阅读全文

说说框架的数据库迁移功能

2017-03-07 10:20 by 轩脉刃, 1978 阅读, 收藏, 编辑
摘要: laravel中有个数据库迁移功能,migration。基本用法就是在database/migrations/的文件夹下面创建迁移数据库的类,在这个类中实现两个方法: up表示运行这个数据库迁移你要做些什么,down表示你回滚这次数据库迁移你要做些什么。 这样你就可以使用 php artisan m 阅读全文

php内核分析(八)-zend_compile

2016-12-05 10:39 by 轩脉刃, 2478 阅读, 收藏, 编辑
摘要: 这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux 回到之前看的zend_eval_stringl 这里的zend_execute执行了两步,第一步是把php编译解析成为opcode的过程,我们就先看这个。 zend_compile_string zend_compile_ 阅读全文

php内核分析(七)-扩展

2016-12-01 10:16 by 轩脉刃, 1823 阅读, 收藏, 编辑
摘要: 这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux。 我们研究下反射这个扩展。 反射这个扩展目录是存在在:ext/reflection。其实里面的代码很简单。一个.h文件,一个 .c文件。 我们先看下.c文件中,会看到很多ZEND_METHOD 对应的宏: 这里的 代表的是 阅读全文

php内核分析(六)-opcode

2016-11-29 10:44 by 轩脉刃, 2570 阅读, 收藏, 编辑
摘要: 这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux 查看opcode php是先把源码解析成opcode,然后再把opcode传递给zend_vm进行执行的。 在php7中,我们能很方便用phpdbg来查看一个文件或者一个函数的opcode了。至于phpdbg的使用,现在网 阅读全文

php内核分析(五)-zval

2016-11-28 10:24 by 轩脉刃, 4472 阅读, 收藏, 编辑
摘要: 这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux 实际上,从这个函数开始,就已经进入到了zend引擎的范围了。 实际上是调用Zend/zend_execute_API.c 再进去是调用 这里的retval_ptr为NULL,string_name为"Command lin 阅读全文

php内核分析(四)-do_cli

2016-11-25 11:47 by 轩脉刃, 1378 阅读, 收藏, 编辑
摘要: 这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux # main 把剩下的代码增加了下注释全部贴出来了(这个是简化后的main函数,去掉了一些无关紧要的代码段): 其实看伪码很简单: 好了,其实看了一圈,里面最重的函数是do_cli了。 php参数 do_cli里面你会看到 阅读全文

php内核分析(三)-全局变量

2016-11-24 15:17 by 轩脉刃, 1177 阅读, 收藏, 编辑
摘要: 这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux CG CG是从全局的compiler_global中获取属性值,里面存储的就是编译过程使用到的全局变量。 SG EG EG是从executor_globals中获取变量 阅读全文

php内核分析(二)-ZTS和zend_try

2016-11-23 10:29 by 轩脉刃, 2092 阅读, 收藏, 编辑
摘要: 这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux ZTS 我们会看到文章中有很多地方是: 这里的ZTS是个什么概念呢。我们经常使用的php都是运行在单进程,单线程环境,比如cgi,都是一个请求进来,就一个进程为它服务,当请求结束了,进程也就结束了。所以比如像全局变量,ph 阅读全文

php内核分析(一)-sapi_module_struct

2016-11-21 11:56 by 轩脉刃, 2152 阅读, 收藏, 编辑
摘要: 这里阅读的php版本为PHP 7.1.0 RC3,阅读代码的平台为linux 首先是寻找php的入口,php有很多种模式,apache,php fpm, cli模式,我要入手的话,只能先从最简单的cli模型开始。 那么,我需要先寻找 这个命令是如何执行的。 首先还是寻找main入口,由于我们看的是命 阅读全文
1 2 3 4 5 ··· 7 下一页