【0】Laravel 5.1 简介

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 扩展来处理.

时间: 2024-08-26 18:53:11

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

Hadoop2.0源码包简介

Hadoop2.0源码包简介 1.解压源码包: 2.目录结构: hadoop-common-project:Hadoop基础库所在目录,如RPC.Metrics.Counter等.包含了其它所有模块可能会用到的基础库. hadoop-mapreduce-project:MapReduce框架的实现,在第一代MR即MRv1中,MapReduce由编程模型(map/reduce).调度系统(JobTracker和TaskTracker)和数据处理引擎(MapTask和ReduceTask)等模块组成

[0] D3.js的简介和安装

想要详细了解D3.js的朋友,欢迎来http://www.ourd3js.com/ 讨论 D3的全称是(Data-Driven Documents),顾名思义可以知道是一个关于数据驱动的文档的javascript类库.如果你不知道什么是javascript,请先学习javascript的相关知识. 说得简单一点,D3.js主要是用于操作数据的,它通过使用HTML.SVG.CSS来给你的数据注入生命,即转换为各种简单易懂的绚丽的图形. 先看一个简单的例子. 现在有一组数据, [  4 , 32 ,

1.Android6.0运行时权限简介_2.Android6.0权限适配之WRITE_EXTERNAL_STORAGE(SD卡写入)3_.Android 6.0 运行时权限理解

Android6.0运行时权限简介:http://unclechen.github.io/2016/03/05/Android6.0%E8%BF%90%E8%A1%8C%E6%97%B6%E6%9D%83%E9%99%90%E7%AE%80%E4%BB%8B/ Android6.0权限适配之WRITE_EXTERNAL_STORAGE(SD卡写入):https://blog.csdn.net/xiechengfa/article/details/52699233 Android 6.0 运行时权

Beginning SDL 2.0(1) SDL功能简介

原文链接为 http://wiki.libsdl.org/Introduction. 由于近期整理音视频可视化的技术,发现好久不更新的SDL发布了2.0版本,以前也没有过于关注,这里准备尝试下.了解SDL到底支持哪些功能. 本文部分内容为翻译内容.有任何不当支持请联系我. SDL全名Simple DirectMedia Layer (SDL).官网:http://www.libsdl.org/ What can SDL do? SDL功能简介 Read ahead for an overview

【Tomcat 6.0官方文档翻译】—— 简介

介绍 本篇是Apache Tomcat(Servlet/JSP容器)的文档概要,Apache tomcat 6是基于Servlet2.5和jsp2.1规范,并增加了有利于开发web应用程序和服务的一些特性. 可以参考详细的文档描述,下面简单的讲解: 使用手册 下面文档可以帮助你下载,安装和使用tomcat6的一些特性. 1 介绍:简单的介绍tomcat 2 启动:在多种平台下如何安装和启动tomcat 3 第一个web应用程序:主要包括:你的web应用程序的资源树的结构,应用程序的结构和部署描述

Android(Lollipop/5.0) Material Design(一) 简介

官网地址:https://developer.android.com/intl/zh-tw/design/material/index.html 使用Material Design 需要api21,即Lollipop/5.0以上 Material Design 为应用提供了:一个新的主题,一些组合View的新Widget,一些自定义阴影和动画的新Api Material 主题 在manifest.xml 中<... android:theme="@android:style/Theme.M

vue2.0的常用功能简介

路由跳转 当我们想要实现点击链接跳转时,可以使用$router来进行跳转 语法如下: this.$router.push({path:"/www",query:{id:'1222'}}) 这里path是要跳转的路径,query里面是路径跳转时要携带的参数,以对象的形式存在 2 获取路由参数 跳转路由过后,我们可能想要获取路由上的参数,这里我们可以使用 this.$route.query.id (id为想要获取的参数) 3 获取当前页面的路径 想要获取当前文件的路径名称,除了原声的loc

Beginning SDL 2.0(3) SDL介绍及BMP渲染

SDL是一个跨平台的多媒体库.为了实现跨平台,SDL提供了一个简单的界面库抽象,比如提供了SDL_Window用于表示窗口句柄,SDL_Surface.SDL_Texture.SDL_Renderer用于处理画面刷新及基本的图形绘制,提供各种事件(鼠标.键盘.游戏手柄等)输入事件.窗口消息事件用于模拟基于消息的事件处理机制.同时也提供了线程创建.销毁以及同步的机制,在此基础上上也提供了文件访问.字体渲染.多格式图片加载.混音器等扩展功能. 正是由于SDL的跨平台特性,如果你仅仅是希望知道SDL的

为什么计算机能读懂 1 和 0 ?

问题:为什么计算机能读懂 1 和 0 ? 从小到大,我们被告知的都是,计算机只能读懂1和0,但我好奇的是为什么计算机它就能够读懂1和0呢,它是怎么读懂的?读懂后,又是怎样进行工作的呢?嗯...我想问的就是,最最基本原始的那个工作原理 回答: 萧井陌,私信问题不回,请提问邀请 玉来了 既然是问最最原始的那个工作原理... 从小到大,我们被告知的都是,计算机只能读懂1和0,但我好奇的是为什么计算机它就能够读懂1和0呢,它是怎么读懂的?读懂后,又是怎样进行工作的呢?嗯...我想问的就是,最最基本原始的