详解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判断搜索引擎蜘蛛并自动记忆到文件的代码
Feb 04 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
Mar 02 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
PHP操作Postgresql封装类与应用完整实例
Apr 24 PHP
PHP dirname功能及原理实例解析
Oct 28 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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冒泡算法详解(递归实现)
2014/11/10 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
php扩展开发入门demo示例
2019/09/23 PHP
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
2019/05/07 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
介绍Python中几个常用的类方法
2015/04/08 Python
Python获取任意xml节点值的方法
2015/05/05 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
python中time库的实例使用方法
2019/10/31 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
python安装sklearn模块的方法详解
2020/11/28 Python
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
学生安全责任书范本
2014/07/24 职场文书
教师演讲稿开场白
2014/08/25 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
公司股东出资证明书
2014/11/01 职场文书
教师师德表现自我评价
2015/03/05 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers
我收到了德劲DE1107
2022/04/05 无线电
vue选项卡切换的实现案例
2022/04/11 Vue.js