详解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学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
洪恩在线成语词典小偷程序php版
Apr 20 PHP
PHP中的替代语法简介
Aug 22 PHP
php设置静态内容缓存时间的方法
Dec 01 PHP
Yii实现显示静态页的方法
Apr 25 PHP
php获取服务器操作系统相关信息的方法
Oct 08 PHP
SAE实时日志接口SDK用法示例
Oct 09 PHP
AES加解密在php接口请求过程中的应用示例
Oct 26 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
用php实现分页效果的示例代码
Dec 10 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/12/28 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
IE8 中使用加速器(Activities)
2010/05/14 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
Python写的一个简单监控系统
2015/06/19 Python
python插入排序算法实例分析
2015/07/03 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
企业业务员岗位职责
2014/03/14 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
党校毕业个人总结
2015/02/28 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书