详解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下intval()和(int)转换使用与区别
Jul 18 PHP
特详细的PHPMYADMIN简明安装教程
Aug 01 PHP
php 文件缓存函数
Oct 08 PHP
精美漂亮的php分页类代码
Apr 02 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
joomla数据库操作示例代码
Jan 06 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP与以太坊交互详解
Aug 24 PHP
PHP implode()函数用法讲解
Mar 08 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 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面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
PHP中list方法用法示例
2016/12/01 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
Python生成验证码实例
2014/08/21 Python
python Django批量导入不重复数据
2016/03/25 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python3生成手写体数字方法
2018/01/30 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
python自动化生成IOS的图标
2018/11/13 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
django序列化serializers过程解析
2019/12/14 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
在职人员函授期间自我评价分享
2013/11/08 职场文书
优秀教师演讲稿
2014/05/06 职场文书
国企干部对照检查材料
2014/08/22 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
Python天气语音播报小助手
2021/09/25 Python