1、简介

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

2、Laravel5.1新特性

Laravel 5.1 在 5.0 的基础做了许多改善, 选用了 PSR-2 代码风格, 新增了 事件广播, 中间件参数支持等功能, 还有 Artisan 命令行优化等.

PHP 5.5.9+

因为 PHP 开发团队已经宣布在 12 月份起, 不再支持 PHP 5.4 的安全更新, 所以, Laravel 5.1 对 PHP 的依赖版本是 5.5.9 或者更高, 5.5.9 也是 Guzzle 和 AWS SDK 最低要求版本.

LTS

Laravel 5.1 是 Laravel 社区的第一个 LTS 发行版.

LTS 的发行版, 自发布起提供两年时间的 Bug 修复, 3 年时间的安全修复, LTS 版本的支持周期, 很适合大企业用户.

PSR-2

Laravel 选用 PSR-2 代码标准指南 作为框架默认代码风格指南, 所有的代码产生器也已更新,以生成 PSR-2 风格的代码.

文档优化

每一页的 Laravel 框架文档, 都被仔细的审查, 所有的代码示例都被仔细审阅, 并加入注释, 以便更好的说明上下文语境.

事件广播

在现代的 Web 应用程序中, Web Sockets 被用来实现实时更新, 当有数据发生变化的时候, 会把消息广播到所有连接的客户端.

为了支持此种类型的应用, Laravel 提供了一套更好的机制, 让对事件进行广播, 允许你在服务器和客户端 JS 框架同时使用同一个时间名称.

详情请见 事件广播.

中间件参数支持

中间件现在能支持传参多余的参数, 打个比方, 你需要判断当前登录用户是否是某个角色 (Role) 后, 才能执行某个重要动作, 你可以创建 RoleMiddleware, 然后接受一个外加的参数 (只支持 string 类型的传参):

<?php

namespace App\Http\Middleware;

use Closure;

class RoleMiddleware
{
/**
* Run the request filter.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string $role
* @return mixed
*/
public function handle($request, Closure $next, $role)
{
if (! $request->user()->hasRole($role)) {
// Redirect...
} return $next($request);
} }

中间件参数的调用, 参数和中间件之间以符号 : 分隔开, 多个参数之间使用 , 区分:

Route::put('post/{id}', ['middleware' => 'role:editor', function ($id) {
//
}]);

中间件的介绍详见 中间件文档.

测试功能优化

Laravel 自带的测试功能得到了很大的优化, 最新提供了好几个方法, 提供了表达更清晰的接口, 来让你检查返回的内容, 如以下:

public function testNewUserRegistration()
{
$this->visit('/register')
->type('Taylor', 'name')
->check('terms')
->press('Register')
->seePageIs('/dashboard');
}

详见 测试文档.

模型工厂

新加入了模型工厂帮助方法, 模型工厂 可以让你快速创建模型对象, 并且利用了伟大的库 Faker 来制造假数据:

$factory->define('App\User', function ($faker) {
return [
'name' => $faker->name,
'email' => $faker->email,
'password' => str_random(10),
'remember_token' => str_random(10),
];
});

详见 模型工厂文档.

Artisan 命令行优化

Artisan 现支持类似于路由一样的 签名式 定义方式, 此方式让你使用非常直观的方法来定义命令行参数, 下面是个例子:

/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'email:send {user} {--force}';

详见 Arsison 命令行稳定.

文件结构

为了易读性, 把 app/Commands 重命名为 app/Jobs, 把 app/Handlers 改名为 app/Listeners.

这两个修改为非破坏性修改, 不要求强制升级到最新版本.

加密

在之前的 Laravel 版本里面, 我们使用 mcrypt PHP 扩展来支持加密, 在 5.1 版本, 所有的加密都由openssl PHP 扩展来处理.

【0】Laravel 5.1 简介的更多相关文章

  1. 帝国cms7.0 内容页控制简介字数!

    帝国cms7.0 内容页有简介部分,使用以下代码可以有效控制字数限制! 下载类简介:<?=esub($navinfor[softsay],160)?> 文章类简介:<?=esub($ ...

  2. [渣译文] SignalR 2.0 系列: SignalR简介

    原文:[渣译文] SignalR 2.0 系列: SignalR简介 英文渣水平,大伙凑合着看吧,并不是逐字翻译的…… 这是微软官方SignalR 2.0教程Getting Started with ...

  3. SignalR 2.0 系列: SignalR简介

    SignalR 2.0 系列: SignalR简介 英文渣水平,大伙凑合着看吧,并不是逐字翻译的…… 这是微软官方SignalR 2.0教程Getting Started with ASP.NET S ...

  4. Hadoop2.0源码包简介

    Hadoop2.0源码包简介 1.解压源码包: 2.目录结构: hadoop-common-project:Hadoop基础库所在目录,如RPC.Metrics.Counter等.包含了其它所有模块可 ...

  5. Java-MyBatis-3.0:MyBatis 3 简介

    ylbtech-Java-MyBatis-3.0:MyBatis 3 简介 1.返回顶部 1. 简介 什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程 ...

  6. Laravel查询构造器简介

    数据表 CREATE TABLE IF NOT EXISTS students( `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(255) NO ...

  7. Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Mariadb 10.1.20 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  8. Beginning SDL 2.0(1) SDL功能简介

    原文链接为 http://wiki.libsdl.org/Introduction. 由于近期整理音视频可视化的技术,发现好久不更新的SDL发布了2.0版本,以前也没有过于关注,这里准备尝试下.了解S ...

  9. Windowns Server 2016 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 + Mariadb 10.1.19 开发环境设置

    1.设置PHP 1.1.官网下载PHPhttp://windows.php.net/downloads/releases/php-7.1.0-nts-Win32-VC14-x86.zip 1.2.解压 ...

随机推荐

  1. SVG基础

    可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式.它由万维网联盟制定,是一个开放标准.SVG 是使用 ...

  2. Guava API学习之Ordering犀利的比较器 编辑

    Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比功能更强.它非常容易扩展,可以轻松构造复杂的comparator,然后用在 ...

  3. Backbone的RESTFUL API 解释

    RESTFUL API 从服务器获取模型:collection.fetch();//发送GET请求 地址为collection.url; 存取模型至服务器: model.save();//发送PUT请 ...

  4. php 之 分页查询的使用方法及其类的封装

    一.分页的使用: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  5. instanceof操作符判断对象类型

    instanceof 的语法格式如下: myobject instanceof ExampleClass myobject:某类的对象引用 ExampleClass:某个类 class Quadran ...

  6. JQuery this和$(this)的区别及获取$(this)子元素对象的方法

    1.JQuery this和$(this)的区别 相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢? 首先来看看JQuery中的  $()  这 ...

  7. 破解官方recovery的签名验证

    步骤简述1.解包recovery.img,2.反编译/sbin/recovery,用ida64plus3.在反编译出来的文本中查找:signature 4.简单的看一下指令流程,CBZ下面是faile ...

  8. uml(1)--概述

    面象对象的课程已经学到UML建模部分, 为了应付老师布置了的作业,须重新学习UML 故趁此机会将自己所学,所看做个记录,不为点赞, 只为加深记忆,加深理解…不是都说写一遍等于读十遍嘛…… 对于UML ...

  9. 如何用VS2010打开VS2012编辑的项目

    找到打开项目的开始图标:,右键点击,选择有文本编辑器打开,用下面的语句将文件里面的前两句替换掉.​Microsoft Visual Studio Solution File, Format Versi ...

  10. Unity欢迎窗口的信息

    1.Video Tutorials提供Unity相关的教程,包括用户手册.组件手册以及脚本手册等内容.2.Unity Basics提供Unity的基础知识,例如操作界面.工作流程.发布设置等内容.3. ...