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

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

Laravel

Laravel

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

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

模块化和可扩展性

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

微服务和程序接口

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

 
  1. <?php
    $app->get('/', function() {
  2. return view('lumen');
  3. });
  4. $app->post('framework/{id}', function($framework) {
  5. $this->dispatch(new Energy($framework));
  6. });

HTTP路径

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

HTTP中间件

 
  1. Route::get('/', function () {
  2. return 'Hello World';
  3. });

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

 
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. class OldMiddleware {
  5. public function handle($request, Closure $next) {
  6. if ($request->input('age') <= 200) {
  7. return redirect('home');
  8. }
  9. return $next($request);
  10. }
  11. }

缓存

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

 
  1. Cache::extend('mongo', function($app) {
  2. return Cache::repository(new MongoStore);
  3. });

身份验证

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

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

各种集成

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

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

任务自动化

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

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

加密

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

 
  1. use Illuminate\Contracts\Encryption\DecryptException;
  2. try {
  3. $decrypted = Crypt::decrypt($encryptedValue);
  4. } catch (DecryptException $e) {
  5. //
  6. }

事件处理

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

 
  1. protected $listen = [
  2. 'App\Events\PodcastWasPurchased' => [
  3. 'App\Listeners\EmailPurchaseConfirmation',
  4. ],
  5. ];

分页

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

 
  1. <?php
  2. namespace App\Http\Controllers;
  3. use DB;
  4. use App\Http\Controllers\Controller;
  5. class UserController extends Controller {
  6. public function index() {
  7. $users = DB::table('users')->paginate(15);
  8. return view('user.index', ['users' => $users]);
  9. }
  10. }

对象关系化映射(ORM)

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

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

单元测试

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

 
  1. <php
  2. use Illuminate\Foundation\Testing\WithoutMiddleware;
  3. use Illuminate\Foundation\Testing\DatabaseTransactions;
  4. class ExampleTest extends TestCase {
  5. public function testBasicExample() {
  6. $this->visit('/')->see('Laravel 5')->dontSee('Rails');
  7. }
  8. }

待办事项清单

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

 
  1. Queue :: push ( new SendEmail ( $ message ));
本文来自云栖社区合作伙伴“Linux中国”,原文发布日期:2015-10-13
目录
相关文章
|
2月前
|
缓存 安全 PHP
【PHP开发专栏】Symfony框架核心组件解析
【4月更文挑战第30天】本文介绍了Symfony框架,一个模块化且高性能的PHP框架,以其可扩展性和灵活性备受开发者青睐。文章分为三部分,首先概述了Symfony的历史、特点和版本。接着,详细解析了HttpFoundation(处理HTTP请求和响应)、Routing(映射HTTP请求到控制器)、DependencyInjection(管理依赖关系)、EventDispatcher(实现事件驱动编程)以及Security(处理安全和认证)等核心组件。
|
1月前
|
SQL 安全 API
选择PHP框架时需要考虑的具体因素
该文探讨了选择PHP框架的关键因素,包括项目需求(如RESTful API开发)、框架的成熟度与社区支持、性能、易用性与扩展性、安全性和文档资源。以Laravel为例,强调其在这些方面的优势,如丰富的社区、强大的安全特性和优秀的文档支持。选择合适的框架能提升开发效率和应用性能,同时应随项目需求变化灵活调整。
888 4
|
2天前
|
缓存 中间件 API
PHP框架详解 - Laravel 框架
PHP框架详解 - Laravel 框架
|
14天前
|
开发框架 中间件 PHP
Laravel框架:优雅构建PHP Web应用的秘诀
**Laravel 框架简介:** Laravel是PHP的优雅Web开发框架,以其简洁语法、强大功能和良好开发者体验闻名。它强调代码的可读性和可维护性,加速复杂应用的构建。基础步骤包括安装PHP和Composer,然后运行`composer create-project`创建新项目。Laravel的路由、控制器和Blade模板引擎简化了HTTP请求处理和视图创建。模型和数据库迁移通过Eloquent ORM使数据库操作直观。Artisan命令行工具、队列、事件和认证系统进一步增强了其功能。【6月更文挑战第26天】
18 1
|
2天前
|
设计模式 前端开发 PHP
PHP框架详解 - CodeIgniter 框架
PHP框架详解 - CodeIgniter 框架
|
2天前
|
存储 中间件 API
PHP框架详解 - Slim 框架
PHP框架详解 - Slim 框架
|
2天前
|
前端开发 数据库连接 PHP
PHP框架详解 - Zend Framework框架
PHP框架详解 - Zend Framework框架
|
2天前
|
设计模式 前端开发 关系型数据库
PHP框架详解 - CakePHP框架
PHP框架详解 - CakePHP框架
|
2天前
|
安全 前端开发 API
PHP框架详解 - ThinkPHP框架
PHP框架详解 - ThinkPHP框架
|
2天前
|
设计模式 前端开发 PHP
PHP框架有哪些,以及具体对比优缺点
PHP框架有哪些,以及具体对比优缺点