[ PHP 内核与扩展开发系列] PHP 生命周期 —— 启动、终止与模式

启动与终止 PHP程序的启动可以看作有两个概念上的启动,终止也有两个概念上的终止。 其中一个是 PHP 作为Apache(拿它举例,板砖勿扔)的一个模块的启动与终止, 这次启动 PHP 会初始化一些必要数据,比如与宿主 Apache 有关的,并且这些数据是常驻内存的,终止与之相对。还有一个概念上的启动就是当 Apache 分配一个页面请求过来的时候,PHP会有一次启动与终止,这也是我们最…

[ PHP 内核与扩展开发系列] PHP 生命周期 —— 从 SAPI 开始

声明:本系列文章整理自GitHub项目PHP扩展开发及内核应用,并根据PHP最新代码对其进行适当调整和校对。适用于有 C 语言基础的高级 PHPer。 在基于 Apache 的 Web 环境中,我们并不需要单独启动 PHP 服务,它会作为一个模块自动加载到 Web 服务器里面去,只要我们启动了 Apache,被一起加载的 PHP 模块便会和服务器一起解析被请求的 PHP 脚本。 不过,当…

[ Laravel 5.4 文档 ] 官方包 —— Laravel Scout

1、简介 Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的、基于驱动的解决方案,通过使用模型观察者,Scout 会自动同步更新模型记录的索引。 目前,Scout 通过 Algolia 驱动提供搜索功能,不过,编写自定义驱动很简单,你可以很轻松地通过自己的搜索实现来扩展 Scout。 2、安装 首先,我们通过 Composer 包管理器来安装 Scout: c…

基于Laravel 5.4 开发的博客系统 —— MyPersimmon

1、概述 本项目使用 PHP 框架 Laravel 5.4 进行开发。 项目依赖了部分云服务,如图片使用了七牛云储存。(目前必须,暂时没有加入本地存储图片的功能) 文章别名自动生成,使用了百度翻译功能。(必须) 接入了 baidu ping 服务,当发布文章的时候,自动向百度搜索引擎提交地址。(可以不使用) 系统后台使用了Vuejs + Element-UI实现前后端分离 2、功能特性 …

造个轮子:基于 Laravel 的下一代 PHP 开发框架(API+SPA 单页应用 )

这是我们团队的一个非盈利项目,以Apache2.0协议开源…不限制商用 Notadd是什么 Notadd 是基于Laravel 和 Vue 的开源PHP框架, 由于其本身的灵活性和先进的技术架构,使得你通过模块(主功能)、插件(功能增强)、模板(前端样式)像搭积木一样组合成你想要的,诸如:商城、CMS、微信、论坛… 快速完成开发。 Notadd 像操作系统一样,你…

[ Laravel 5.4 文档 ] 官方包 —— API认证(Passport)

1、简介 Laravel 通过传统的登录表单已经让用户认证变得很简单,但是 API 怎么办?API 通常使用token 进行认证并且在请求之间不维护 session 状态。Laravel 使用 Laravel Passport 让 API 认证变得轻而易举,Passport 基于 Alex Bilbie 维护的 League OAuth2 server,可以在数分钟内为 Laravel …

[ Laravel 5.4 文档 ] 官方包 —— Envoy Task Runner

1、简介 Laravel Envoy 为定义运行在远程主机上的通用任务提供了一套干净的、最简化的语法。使用 Blade 风格语法,你可以轻松为开发设置任务,Artisan命令,以及更多。目前,Envoy 只支持 Mac 和 Linux 操作系统。 安装 首先,使用 Composer 的 global require 命令安装 Envoy: composer global require …

深入学习 Composer 自动加载(autoload)机制

众所周知 composer 是现代 PHP 项目的基石, 与古老的 pear 不同, composer 并不是一款专注于系统级别 php 管理的包管理系统,而是基于项目的一个库管理系统。这就好比 npm install -g 和 npm install 的区别。而且最主要的是 pear 不太能跟上时代的潮流,在大家都在用 psr-* 的时候 pear 依然我行我素自成一体。 好吧,可能这…

[ Laravel 5.4 文档 ] 官方包 —— Laravel Cashier

1、简介 Laravel Cashier 为通过 Stripe 和 Braintree 实现订阅支付服务提供了一个优雅的流式接口。它封装了几乎所有你恐惧编写的样板化的订阅支付代码。除了基本的订阅管理外,Cashier 还支持处理优惠券、订阅升级/替换、订阅“数量”、取消宽限期,甚至生成 PDF 发票。 注:如果你只需要一次性支付,并不提供订阅,就不应该使用 Cashier,而是直接使用 …

[ Laravel 5.4 文档 ] 测试 —— 模拟

1、简介 测试 Laravel 应用的时候,你可能还想要“ 模拟 ”应用的特定状态,以便在测试中不让它们真的执行。例如,测试触发事件的控制器时,你可能想要模拟事件监听器以便它们不在测试期间真的执行。这样的话你就可以只测试控制器的 HTTP 响应,而不必担心事件监听器的执行,因为事件监听器可以在它们自己的测试用例中被测试。 Laravel 开箱为模拟事件、任务以及工厂提供了辅助函数,这些辅…