为什么 Laravel 会成为最成功的 PHP 框架?
Laravel
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 )); 本文来自云栖社区合作伙伴“Linux中国”,原文发布日期:2015-10-13
相关文章
- PHP反射(ReflectionClass、ReflectionMethod)在ThinkPHP框架的控制器调度模块中的应用
- CI框架--Excel导入与导出(引入php_Excel这个类)
- php使用服务器进行远程抓取百度网页内容
- [PHP 开源类库]simple-Excel — 兼具优雅与性能的Excel和CSV文件读写工具
- php面试题之PHP核心技术
- PHP+Swoole并发编程的魅力
- 实现网页页面跳转的几种方法(meta标签、js实现、php实现)
- PHP采集库-Snoopy.class.php
- PHP获取数组的一个元素
- PHP做Web开发的MVC框架(Smarty使用说明 )
- linux(ubuntu 20.10):安装composer 2.0.8及thinkphp 6.0.5(php 7.4.9)
- PHP socket编程需要了解的一些基本知识
- nginx整合php+lua+oracle环境搭建
- php socket 模型及效率问题
- PHP CI框架下,如果配置NGINX(根目录和子目录两种模式)
- php 3DES|DES 加密解密(通用)
- thinkphp6: 从6.0.9升级(php 8.0.14)到 6.0.10lts版本(php 8.1.1)
- Nginx 1.5.2 + PHP 5.5.1 + MySQL 5.6.10 在 CentOS 下的编译安装
- [php-src] 窥探Php内核中的数组与面向对象
- 关于PHP Notice: A non well formed numeric value encountered, 你知道多少
- Atitit 验证码功能修复总结文档原有的tp5里面的验证码不知怎么有问题了,试图在tp5框架内修复无果。。使用了新的验证码组件 “lifei6671/php-captcha“: “0.
- PHP 过滤器
- 十大最主流的PHP框架
- Yii PHP Framework有用新手教程
- 使用框架的php假设使用定时服务Cronjob
- Memcahce(MC)系列(三)Memcached它PHP转让
- php休眠微秒