[ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求的处理层:控制器

简介 我们之前的演示示例都是将所有的请求处理逻辑放在路由文件的闭包函数中,这显然是不合理的,我们需要使用控制器类组织管理相对复杂的业务逻辑处理。控制器用于将相关的 HTTP 请求封装到一个类中进行处理,这些控制器类存放在 app/Http/Controllers 目录下。 控制器入门 定义控制器 下面是一个基本控制器类的例子。 首先我们使用 Artisan 命令快速创建一个控制器: ph…

最佳实践系列(十):PHP 统一资源处理 API —— 流(Stream)的概述与使用详解

在现代 PHP 特性中,流或许是最出色但使用率最低的。虽然 PHP 4.3 就引入了流,但是很多开发者并不知道流的存在,因为人们很少提及流,而且流的文档也很匮乏。PHP 官方文档对流的解释如下: 流的作用是提供统一的公共函数来处理文件、网络和数据压缩等操作。简单而言,流是具有流式行为的资源对象,也就是说,流可以线性读写,并且可以通过 fseek() 之类的函数定位到流中的任何位置。 可能…

[ PHP 内核与扩展开发系列] PHP 中的资源类型:持久资源

通常情况下,像资源这类复合类型的数据都会占用大量的硬件资源,比如内存、CPU以及网络带宽。对于使用频率超级高的数据库连接,我们可以获取一个长连接,使其不会在脚本结束后自动销毁,一旦创建便可以在各个请求中直接使用,从而减少每次创建它的消耗。MySQL 的长连接在 PHP 内核中其实就是一种持久资源。 内存分配 前面的章节里我们接触了 emalloc() 之类的以 e 开头的内存管理函数,通…

[ PHP 内核与扩展开发系列] PHP 中的资源类型:复合数据类型 —— 资源

截止到现在,我们已经熟悉了 PHP 语言中的字符串、数字、布尔以及数组等数据类型了,接下来,我们将接触另外一种 PHP 独特的数据类型——资源(Resource)。 讲述之前,先描述下资源类型在内核中的结构: typedef struct _zend_rsrc_list_entry { void *ptr; int type; int refcount; } zend_rsrc_list…

[ PHP 内核与扩展开发系列] 变量在内核中的实现 —— 变量的值

PHP 内核提供了三个基础宏来方便我们对变量的值进行操作,这几个宏同样以 Z_ 开头,并且 P 结尾和PP 结尾的同上一节中的宏一样,分别代表这参数是指针还是指针的指针。 基本类型 此外,为了进一步方便我们的工作,内核中针对具体的数据类型分别定义了相应的宏。如针对 IS_BOOL 型的 BVAL 组合(Z_BVAL、Z_BVAL_P、Z_BVAL_PP)和针对 IS_DOUBLE 的 D…

《程序员修炼之道:从小工到专家》第四章:注重实效的偏执

你不可能写出完美的软件 不完美的系统、荒谬的时间标度、可笑的工具、还有不可能实现的需求——在这样一个世界上,让我们安全“驾驶”。 一、按合约设计 没有什么比常识和坦率更让人感到惊讶。 与计算机打交道很难。与人打交道更难。但作为一个族类,我们花费在弄清楚人们交往的问题上的时间更长。在过去几千年中我们得出的一些解决办法也可应用于编程,确保坦率的最佳方案之一就是合约。 合约既规定你的权利和义务…

在Laravel资源路由中如何使用GET请求直接删除资源

注:本代码片段适用于Laravel 5。 在routes.php文件顶部添加如下代码片段并将该文件中所有Route::resource或Route::resources替换为Route::deletable或Route::deletables: use Illuminate\Routing\Router; Router::macro(‘deletable’, function($name…

Laravel 精选资源大全(持续更新)

来自Laravel生态系统的精选资源大全,包括书签、包、教程、视频以及其它诸多很酷的资源。 对应GitHub地址:https://github.com/nonfu/awesome-laravel,更多Laravel中文学习资源,请关注:Laravel学院 必备品 文档:Documentation API: API Reference 视频:Laracasts 新闻:Laravel New…