为什么Laravel会成为最成功的PHP框架
2011年,Taylor Otwell将Laravel作为一种包含全新现代方法的框架介绍给大家。Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理、用户身份验证等各种需求。另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器。
Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel。本文我们将讨论为什么Laravel会成为最成功的PHP框架。
模块化和可扩展性
Laravel注重代码的模块化和可扩展性。你可以在包含超过5500个程序包的Packalyst目录中找到你想要添加的任何文件。Laravel的目标是让你能够找到任何想要的文件。
微服务和程序接口
Lumen是一个由laravel衍生的专注于精简的微框架。它高性能的程序接口可让你更加简单快速的开发微型项目。Lumen使用最小的配置集成了所有laravel的重要特性,你可以通过将代码复制到laravel项目的方式将完整的框架迁移过来。
get('/', function() {
return view('lumen');
});
$app->post('framework/{id}', function($framework) {
$this->dispatch(new Energy($framework));
});
HTTP路径
Laravel拥有类似于Ruby on Rails的,快速、高效的路由系统。它可以让用户通过在浏览器上输入路径的方式让应用程序的各部分相关联。
Route::get('/', function () {
return 'Hello World';
});
HTTP中间件
应用程序可受到中间件的保护——中间件会处理分析和过滤服务器上的HTTP请求。你可以安装中间件,用于验证注册用户,并避免如跨站脚本(XSS)或其它的安全状况的问题。
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 IlluminateContractsEncryptionDecryptException;
try {
$decrypted = Crypt::decrypt($encryptedValue);
} catch (DecryptException $e) {
//
}
事件处理
应用程序中事件的定义、记录和聆听都非常迅速。EventServiceProvider事件中的listen包含记录在你应用程序上所有事件的列表。
protected $listen = [
'AppEventsPodcastWasPurchased' => [
'AppListenersEmailPurchaseConfirmation',
],
];
分页
在Laravel中分页是非常容易的因为它能够根据用户的浏览器当前页面生成一系列链接。
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执行单元测试。
visit('/')
->see('Laravel 5')
->dontSee('Rails');
}
}
待办事项清单
Laravel提供在后台使用待办事项清单(to do list)处理复杂、漫长流程的选择。它可以让我们异步处理某些流程而不需要用户的持续导航。
Queue :: push ( new SendEmail ( $ message ));
为什么Laravel会成为最成功的PHP框架相关推荐
- Laravel和Thinkphp有什么区别,哪个框架好用
Laravel和Thinkphp这两个php框架对于php程序员都不陌生,新手可能对Thinkphp比较熟,也是国内比较出名的开源框架,更高级的Laravel一般有点经验的才使用. TP框架: Thi ...
- 成功解决Scrapy框架的问题ModuleNotFoundError: No module named 'win32api'
成功解决Scrapy框架的问题ModuleNotFoundError: No module named 'win32api' 目录 解决问题 解决思路 解决方法 解决问题 ModuleNotFound ...
- php laravel 理解,程序员-说一下PHP框架Laravel,如何理解她的思想
如何理解laravel的思想? 1)更新太快,疲于追赶 Laravel 4.x开发出的程序要升级到 5.x的,貌似都大动干戈? 2)让人后怕的Route 为什么就没有一个固定的规则?非得每一个网址都写 ...
- php mail laravel,邮件 - Laravel - 为 WEB 艺术家创造的 PHP 框架。
邮件 配置 Laravel的邮件功能构建于流行的SwiftMailer库之上,并提供了简介.高效的API.邮件配置信息在app/config/mail.php文件中,并提供了包含SMTP主机.端口和证 ...
- 成功体验Katalon框架测试安卓APK(一)
Katalon框架下载 下载安装: https://www.katalon.com/download/# zunab@qq.com/zunab123456 针对安卓版本的APK测试,需要安装以下工 ...
- Laravel自定义验证规则的实例与框架使用正则实例
生成 php artisan make:rule Uppercase 规则说明 <?phpnamespace App\Rules;use Illuminate\Contracts\Validat ...
- Lumen / Laravel 使用网易邮箱 SMTP 发送邮件
Laravel 是目前最流行的PHP框架,而Lumen 是 Laravel 的精简版,主要用于接口开发. Laravel 邮件发送服务基于 Symfony 组件 Swift Mailer. 本文记录了 ...
- Lumen / Laravel 5.5 使用网易邮箱 SMTP 发送邮件
2019独角兽企业重金招聘Python工程师标准>>> Laravel 是目前最流行的PHP框架,而Lumen 是 Laravel 的精简版,主要用于接口开发. Laravel 邮件 ...
- php 框架 laravel 简介
目录 一.laravel简介 二.版本选择 三.laravel下载安装以及开发环境搭建 (一):环境搭建 (二):下载.安装及大致介绍 四.laravel路由 (一):简介 (二):路由学习 五.控制 ...
- laravel框架应用和composer扩展包开发
laravel5.5+ laravel官方地址 laravel是目前最流行的php框架,发展势头迅猛,应用非常广泛,有丰富的扩展包可以应付你能想到的各种应用场景,laravel框架思想前卫,跟随时代潮 ...
最新文章
- Oracle 10g(10.2.0.4)升级到10.2.0.5.19
- OpenVAS漏洞扫描基础教程之连接OpenVAS服务
- 关于STL 容器的嵌套使用, 小试牛刀
- 实战!阿里神器 Seata 实现 TCC模式 解决分布式事务,真香!
- 中学计算机教学叙事范文,初中地理教育叙事范文
- Windows 10安装TensorFlow-gpu1.4 及CUDA8.0,cuDNN6.0,搞定了,包含安装方法和下载路径
- 判断日期是否为当月最后一天_对比Excel,怎么用Python获取指定月最后一天的日期...
- python字符串转义表
- 低代码--低代码开发(LCDP)介绍
- win10系统无法删除文件提示找不到该项目解决办法
- 数字电路基础(三)编码器和译码器
- 作文组装计算机,组装电脑作文200字
- 移植openharmony添加组件ace编译报错文件解决
- 阴阳师魂十挂机实现(后台句柄截屏+鼠标点击)
- Java三目运算符 (Ternary Operator ? :)
- lisp 阿基米德螺旋_用CAD如何画阿基米德螺旋线
- 周鸿祎:如何做好产品经理
- 【小象学院】案例8——空气质量指数计算v7.0
- 施耐德服务器屏幕不显示,施耐德 触摸屏 HMI_ presentation -人机界面.ppt
- WPF程序员开发案例