Laravel 是一个有着美好前景的年轻框架,它的社区充满着活力,相关的文档和教程完整而清晰,并为快速、安全地开发现代应用程序提供了必要的功能。在近几年对PHP 框架流行度的统计中,Laravel始终遥遥领先。那么是什么让Laravel成为最成功的PHP框架?

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

模块化和可扩展性

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

微服务和程序接口

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

<?php
$app->get('/'function() {
   return view('lumen');
});
$app->post('framework/{id}'function($framework) {
   $this->dispatch(new Energy($framework));
});

HTTP路径

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

HTTP中间件

Route::get('/'function () { 
   return 'Hello World'
});

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

<?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);
  }
}

缓存

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

Cache::extend('mongo'function($app) { 
   return Cache::repository(new MongoStore);
});

身份验证

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

if (Auth::attempt(['email' => $email'password' => $password'active' => 1 ], $remember)) { 
   // The user is being remembered... 
}

各种集成

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

$user = User::find(1);
$user->subscription('monthly')->create($creditCardToken);

任务自动化

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

elixir(function(mix) { 
   mix.browserify('main.js');
 });

加密

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

use Illuminate/Contracts/Encryption/DecryptException; 
try 
   $decrypted = Crypt::decrypt($encryptedValue);
catch (DecryptException $e) { 
   // 
}

事件处理

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

protected $listen = [
  'App/Events/PodcastWasPurchased' => [ 
     'App/Listeners/EmailPurchaseConfirmation',
  ],
];

分页

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

<?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。

$users = User::where('votes''>', 100)->take(10)->get();
foreach ($users as $user) { 
  var_dump($user->name);
}

单元测试

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

<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)处理复杂、漫长流程的选择。它可以让我们异步处理某些流程而不需要用户的持续导航。

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

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

  1. Laravel 和 Spring Boot 两个框架比较创业篇(二:人工成本)

    前面从开发效率比较了 Laravel 和 Spring Boot两个框架,见:Laravel 和 Spring Boot 两个框架比较创业篇(一:开发效率) ,这一篇打算比较一下人工成本. 本文说的人 ...

  2. ThinkPHP胜出Laravel 近4倍,主流框架性能测试

    主流PHP框架性能非权威测试 作为一个PHP开发者,而且是初创企业团队的技术开发者,选择开发框架是个很艰难的事情. 用ThinkPHP的话,招聘一个刚从培训机构出来的开发者就可以上手了,但是性能和后期 ...

  3. Laravel 和 Spring Boot 两个框架比较创业篇(一:开发效率)

    我个人是比较不喜欢去正儿八经的比较两个框架的,这样没有意义,不过欲善其事先利其器! 技术是相通的,但是在某个特定的领域的某个阶段肯定有相对最适合的一个工具! 这里比较不是从技术角度比较,而是从公司技术 ...

  4. laravel 5.1 性能优化对比 - 框架提供的方法

    写了一个项目发现性能不如人意. 于是便测试下, 看下性能瓶颈在什么地方. 使用 ab -n 20 http://www.lartest.com/ 软件环境: OS : windows 8.1 CPU: ...

  5. PHP laravel+thrift+swoole打造微服务框架

    Laravel作为最受欢迎的php web框架一直广受广大互联网公司的喜爱. 笔者也参与过一些由laravel开发的项目.虽然laravel的性能广受诟病但是业界也有一些比较好的解决方案,比如堆机器, ...

  6. PHP 之 Laravel 框架安装及相关开源软件

    Laravel 被称为简洁.优雅的PHP开发框架,但第一次接触此框架的人有不少都卡在了安装上,其实在 Linux 下只需要很简单的几步就可以搞定,这里我们以 CentOS 下 PHP + Nginx ...

  7. 《PHP框架Laravel学习》系列分享专栏

    <PHP框架Laravel学习>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201735.html 文章 Laravel教程:l ...

  8. 基于laravel框架构建最小内容管理系统

    校园失物招领平台开发 --基于laravel框架构建最小内容管理系统 摘要 ​ 针对目前大学校园人口密度大.人群活动频繁.师生学习生活等物品容易遗失的基本现状,在分析传统失物招领过程中的工作效率低下. ...

  9. 安装laravel框架

    方式一:Windows版本通过composer来下载安装laravel框架 一:laravel是php的一个web框架.laravel框架安装主要依赖composer工具,本经验就介绍一下怎么在win ...

随机推荐

  1. html页面docutype前面出现字符会导致IE678 margin:0 auto;失效

    html页面<!DOCTYPE html>前面出现字符会导致IE678 margin:0 auto;失效

  2. PHP之open_ssl

    http://www.wapm.cn/phpdoc/zh/openssl.installation.html http://liuxufei.com/weblog/jishu/376.html dem ...

  3. Android开发环境搭建完全图解(转)

    本文介绍从0开始,在Linux系统下,搭建一个Android开发环境的方法. 如果你是<Learning Android>这本书的读者,你也可以参考这篇文章,因为这篇文章是以书中的安装方法 ...

  4. Android_menu_optionMenu

    xml文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  5. 【推理】UVa 10771 - Barbarian tribes

      Barbarian tribes  In a lost land two primitive tribes coexist: Gareds and Kekas. Every summer sols ...

  6. HTML5 服务器发送事件

    单向传输:服务器端——>客户端   作用:传回的能每过3s重新刷新一遍.从而能过跟数据库同步,与ajax配合使用   一.客户端写法 必须的用 message 方法   JSON.parse() ...

  7. 用gd库画矩形和椭圆

    画矩形:bool imagerectangle ( resource $image画布资源 , int $x1左上角的坐标 , int $y1 , int $x2 右下角坐标, int $y2 , i ...

  8. Extjs4使用iframe注意事项

    "video" : { render : function(panel, eOpts) { // 因为iframe在video // panel渲染的时候就已经完全移动到video ...

  9. 复制pdf文字出来是乱码的一种可能的解决方案

    最近在处理一个pdf文件,是一个地图文件,上面带各种文字的标注,地图比较大,而且文字信息比较多而且分散.因为字体的问题,在我的windows电脑上虽然可以正常显示,但是复制出来的文字都是方块,而且对应 ...

  10. 总结&记录

    一.Git(linux命令) 1.tar  压缩/解压 -c 建立一个压缩文件(create) -x 解压一个压缩文件 -t 查看tarfile中文件 -z 是否具有gzip的属性?是否需要用gzip ...