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


Posted in PHP onNovember 20, 2017

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 Illuminate\Contracts\Encryption\DecryptException;try {$decrypted = Crypt::decrypt($encryptedValue);} catch (DecryptException $e) {//}

事件处理

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

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

分页

在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执行单元测试。

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

待办事项清单

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

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

为什么使用laravel。

PHP框架有许多,也有不同的优势。其实为“U图床”这个简单到不能再简单的app搭一个后台,更本就没有用框架的需求,纯粹是为了学习学习。公司项目有用laravel,有现成的使用代码在那里,我决定看代码+看文档+实践的学习速度比看一些视频教程来的快,而且我觉得看懂laravel,再回过头来学习TP,可能很快就能掌握了。

总结

以上所述是小编给大家介绍的php语言最牛掰的Laravel框架,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP学习资料汇总与网址
Mar 16 PHP
推荐一篇入门级的Class文章
Mar 19 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
Apr 20 PHP
解析csv数据导入mysql的方法
Jul 01 PHP
PHP迭代器的内部执行过程详解
Nov 12 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
100多行PHP代码实现socks5代理服务器[2]
May 05 PHP
php 中的closure用法详解
Jun 12 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 #PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 #PHP
PHP空值检测函数与方法汇总
Nov 19 #PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 #PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 #PHP
swoole和websocket简单聊天室开发
Nov 18 #PHP
php单元测试phpunit入门实例教程
Nov 17 #PHP
You might like
PHP 面向对象实现代码
2009/11/11 PHP
php笔记之:php数组相关函数的使用
2013/04/26 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
2017/07/07 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
react build 后打包发布总结
2018/08/24 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
如何在Python中编写并发程序
2016/02/27 Python
Python自定义简单图轴简单实例
2018/01/08 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
中国梦主题教育活动总结
2014/05/05 职场文书
英语专业自荐书
2014/06/13 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
公司离职证明范本
2014/10/17 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫