详解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 和 MySQL 开发的 8 个技巧
Oct 09 PHP
基于mysql的bbs设计(一)
Oct 09 PHP
PHP+javascript液晶时钟
Oct 09 PHP
PHP语法速查表
Dec 06 PHP
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
thinkPHP学习笔记之安装配置篇
Mar 05 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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
星际流派综述
2020/03/04 星际争霸
Zend Framework分发器用法示例
2016/12/11 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
文本链接逐个出现的js脚本
2007/12/12 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
Angular-UI Bootstrap组件实现警报功能
2018/07/16 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
python实现随机梯度下降法
2020/03/24 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
Python3解释器知识点总结
2019/02/19 Python
django做form表单的数据验证过程详解
2019/07/26 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
C#面试题
2016/05/06 面试题
社区班子对照检查材料
2014/08/27 职场文书
召开会议通知范文
2015/04/15 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL
Go语言基础map用法及示例详解
2021/11/17 Golang
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
我去timi了,一起去timi是什么意思?
2022/04/13 杂记