为什么 Laravel 会成为最成功的 PHP 框架?

2011年,Taylor
Otwell将Laravel作为一种包含全新现代方法的框架介绍给大家。Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理、用户
身份验证等各种需求。另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器。

Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel。本文我们将讨论为什么Laravel会成为最成功的PHP框架。

模块化和可扩展性

Laravel注重代码的模块化和可扩展性。你可以在包含超过5500个程序包的Packalyst目录中找到你想要添加的任何文件。Laravel的目标是让你能够找到任何想要的文件。

微服务和程序接口

Lumen是一个由laravel衍生的专注于精简的微框架。它高性能的程序接口可让你更加简单快速的开发微型项目。Lumen使用最小的配置集成了所有laravel的重要特性,你可以通过将代码复制到laravel项目的方式将完整的框架迁移过来。


1

2

3

4

5

6

7

8

9

10

11

<?php $app->get('/', function() {

 

   return view('lumen');

 

});

 

$app->post('framework/{id}', function($framework) {

 

   $this->dispatch(new Energy($framework));

 

});

HTTP路径

Laravel拥有类似于Ruby on Rails的,快速、高效的路由系统。它可以让用户通过在浏览器上输入路径的方式让应用程序的各部分相关联。


1

2

3

4

5

Route::get('/', function () {

 

   return 'Hello World';

 

});

HTTP中间件

应用程序可受到中间件的保护——中间件会处理分析和过滤服务器上的HTTP请求。你可以安装中间件,用于验证注册用户,并避免如跨站脚本(XSS)或其它的安全状况的问题。


1

2

3

4

5

6

7

8

9

10

11

<?php namespace App\Http\Middleware; use Closure; class OldMiddleware { public function handle($request, Closure $next) { if ($request->input('age') <= 200) {

 

         return redirect('home');

 

      }

 

      return $next($request);

 

    }

 

 }

缓存

你的应用程序可得到一个健壮的缓存系统,通过对其进行调整,可以让应用程序的加载更加快速,这可以给你的用户提供最好的使用体验。


1

2

3

4

5

Cache::extend('mongo', function($app) {

 

   return Cache::repository(new MongoStore);

 

});

身份验证

安全是至关重要的。Laravel自带对本地用户的身份验证,并可以使用“remember” 选项来记住用户。它还可以让你例如一些额外参数,例如显示是否为活跃的用户。


1

2

3

4

5

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1 ], $remember)) {

 

   // The user is being remembered...

 

}

种类集成

Laravel Cashier可以满足你要开发支付系统所需要的一切需求。除此之外,它还同步并集成了用户身份验证系统。所以,你不再需要担心如何将计费系统集成到开发当中了。


1

2

3

$user = User::find(1);

 

$user->subscription('monthly')->create($creditCardToken);

任务自动化

Elixir是一个可让我们使用Gulp定义任务的Laravel程序接口,我们可以使用Elixir定义可精简CSS 和JavaScript的预处理器。


1

2

3

4

5

elixir(function(mix) {

 

   mix.browserify('main.js');

 

 });

加密

一个安全的应用程序应该做到可把数据进行加密。使用Laravel,可以启用OpenSSL安全加密算法AES-256-CBC来满足你所有的需求。另外,所有的加密值都是由检测加密信息是否被改变的验证码所签署的。


1

2

3

4

5

6

7

8

9

10

11

use Illuminate\Contracts\Encryption\DecryptException;

 

try {

 

   $decrypted = Crypt::decrypt($encryptedValue);

 

} catch (DecryptException $e) {

 

   //

 

}

事件处理

应用程序中事件的定义、记录和聆听都非常迅速。EventServiceProvider事件中的listen包含记录在你应用程序上所有事件的列表。


1

2

3

4

5

6

7

8

9

protected $listen = [

 

    'App\Events\PodcastWasPurchased' => [

 

       'App\Listeners\EmailPurchaseConfirmation',

 

    ],

 

 ];

分页

在Laravel中分页是非常容易的因为它能够根据用户的浏览器当前页面生成一系列链接。


1

2

3

4

5

6

7

<?php namespace App\Http\Controllers; use DB; use App\Http\Controllers\Controller; class UserController extends Controller { public function index() { $users = DB::table('users')->paginate(15);

 

      return view('user.index', ['users' => $users]);

 

   }

 

}

对象关系图(ORM)

Laravel包含一个处理数据库的层,它的对象关系图被称为Eloquent。另外这个对象关系图也适用于PostgreSQL


1

2

3

4

5

6

7

$users = User::where('votes', '>', 100)->take(10)->get();

 

 foreach ($users as $user) {

 

   var_dump($user->name);

 

 }

单元测试

单元测试的开发是一个耗费大量时间的任务,但是它却是保证我们的应用程序保持正常工作的关键。Laravel中可使用PHPUnit执行单元测试。


1

2

3

4

5

6

7

8

9

<php use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\DatabaseTransactions; class ExampleTest extends TestCase { public function testBasicExample() { $this->visit('/')

 

                 ->see('Laravel 5')

 

                 ->dontSee('Rails');

 

      }

 

   }

待办事项清单

Laravel提供在后台使用待办事项清单(to do list)处理复杂、漫长流程的选择。它可以让我们异步处理某些流程而不需要用户的持续导航。


1

Queue :: push ( new  SendEmail ( $ message ));

作者:回忆和感动

来源:51CTO

时间: 2025-01-01 17:58:21

为什么 Laravel 会成为最成功的 PHP 框架?的相关文章

详解php语言最牛掰的Laravel框架

2011年,Taylor Otwell将Laravel作为一种包含全新现代方法的框架介绍给大家.Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理.用户身份验证等各种需求.另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器. Laravel以其简洁.优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel.本文我们将讨论为什么Laravel会成为最成功的PHP框架. 模块化和可扩展性 Laravel

Laravel 5 框架入门(一)_php实例

Laravel 5 中文文档: 1. http://laravel-china.org/docs/5.0 2. http://www.golaravel.com/laravel/docs/5.0/ 默认条件 本文默认你已经有配置完善的 PHP + MySQL 运行环境,懂得 PHP 网站运行的基础知识.跟随本教程走完一遍,你将会得到一个基础的包含登录的简单 blog 系统,并将学会如何使用一些强大的 Laravel 插件和 composer 包(Laravel 插件也是 composer 包).

PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面_php技巧

AdminLTE 是一个基于Bootstrap 3.x的免费高级管理控制面板主题,完全响应式管理,适合从小型移动设备到大型台式机很多的屏幕分辨率. AdminLTE的特点: 充分响应 可分类的仪表盘 18插件和3自定义插件 重量轻和快速 与大多数主流浏览器兼容 完全支持Glyphicons,Fontawesome和图标 我们使用的工具 Laravel AdminLTE 2.3.2 Bower Composer 下载一个全新的 Laravel如果不太清楚可以去官方网站查看文档link 在此我们直接

Laravel搭建后台登录系统步骤详解_php实例

本文实例讲述了Laravel搭建后台登录系统的方法.分享给大家供大家参考,具体如下: 今天想用laravel搭建一个后台系统,就需要最简单的那种,有用户登录系统,试用了下,觉得laravel的用户登录这块做的还真happy.当然,前提就是,你要的用户管理系统是最简单的那种,就是没有用户权限,能登录就好. 我这里就不用默认的user表做例子了,那样很容易和laravel的一些默认设置混淆. 首先确认,后台的用户表,我设计表叫做badmin,每个管理员有用户名(username),有昵称(nickn

LARAVEL 中使用 VUE 组件化开发例子

现今前端组件化开发.MVVM 模式,给开发带来了很多的便利,可读性.可维护性更高.然而自 Laravel 5.3 开始,VueJS 成为框架默认的标配. 本文基于 Laravel 5.1 LTS 版本引入 Vue 2.0 进行配置. 我已在 Github 配置好,Clone 下来后按照 README 安装依赖后即可用: https://github.com/jcc/vue-laravel-example 步骤一:配置 PACKAGE.JSON 1. 在根目录下修改 package.json, 可

Laravel学习

Laravel是个很强大的PHP框架,它剔除了开发中Web开发中比较痛苦的过程,提供了验证(authentication),路由(routing),Session和缓存(caching)等开发过程中常用到的工具或者功能. Laravel的配置都存放在app/config中. 里面所有的*.php都按照return的形式返回数据,那么就可以使用Config::get("key")来获取配置.使用Config::set("key", "value")

24个可能你现在用不到,但应该了解的 PHP 库

作为一个PHP开发者,现在是一个令人激动的时刻.每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库.下面是我曾经遇到过最酷的24个库.你最喜欢的库没有在这个列表里面?那就在评论中分享吧! 1. Dispatch – 微框架 Dispatch是一个PHP小框架.它并没有给你完整的MVC设置,但你可以定义URL规则和方法,以便更好组织应用程序.这对API.简单的站点或原型来说是完美的. //包含库 include 'dispatch.php'; // 定义你的路由 get('/g

Struts 2基础

Struts 2基础 第2章 Struts 2 此内容是<Java Web开发教程--入门与提高篇(JSP+Servlet)>一书附赠资料的一部分. 2.1概述 Struts现在分两个版本:Struts 1.X和Struts 2.X.Struts 1.X已经有很多年了,可以说非常流行,但是因为其他框架的快速发展以及自身存在的问题,Struts 2诞生了,Struts 2与Struts 1的区别非常大,实际上Struts 2的核心思想是基于另外一个非常成功的Web框架WebWork.两者的区别如

PHP程序员的一生

人们对PHP其实很吝啬. 最近我拜读了一篇非常棒的文章--<How False Stereotypes Turn Into Technical "Truths">: 我们对编程语言的偏见不仅仅影响程序员辩论时的气势,还会对该编程语言的应聘和薪资产生重大影响. 这让我一下子想到了大家对PHP社区的看法. 今天我在JavaScript Jabber网站的节目上听到了Jenn Schiffer关于人们如何判断的精彩点评,感触良多,情不自禁地想与大家分享. 学习如何编程 虽然Jav