Laravel

PHP 开发框架 Laravel

MIT
PHP 查看源码»
跨平台
2011-07-15
红薯

六一趣味技术问答,“秃头”要从娃娃抓起!>>>

Laravel 是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

功能特点

1、语法更富有表现力

你知道下面这行代码里 “true” 代表什么意思么?

$uri = Uri::create(‘some/uri’, array(), array(), true); 

另外,你知道其他参数在这里的意思么(除了第一个)?当然你不知道。因为这行代码没有表现力。 

再看看这段代码: 

$url = URL::to_secure(‘some/uri’); 

这个表达式使用HTTPS协议创建了一条URL链接, 事实上,上面两种写法都在做同样的事情,但哪一个更一目了然,更富有表现力呢?

2、高质量的文档

CodeIgniter非常流行原因之一是它有良好的文档。这对程序员来说是十分方便的。相比之下,Kohana一个在技术上比CI更加优秀的框架,但你猜怎么着? 大家不在乎Kohana技术有多强,因为Kohana的文档实在是太糟了。 而Laravel 有一个非常棒的的社区支持。Laravel代码本身的表现力和良好的文档使PHP程序编写令人愉快。

3、丰富的扩展包

Bundle是Laravel中对扩展包的称呼。它可以是任何东西 -- 大到完整的ORM,小到除错(debug)工具,仅仅复制&粘贴就能安装任何扩展包!Laravel的扩展包由世界各地的开发者贡献,而且还在不断增加中。

4、开源、托管在GITHUB上

Laravel是完全开源的。所有代码都可以从Github上获取,并且欢迎你贡献出自己的力量。

技术特点

1、Bundle是Laravel的扩展包组织形式或称呼。Laravel的扩展包仓库已经相当成熟了,可以很容易的帮你把扩展包(bundle)安装到你的应用中。你可以选择下载一个扩展包(bundle)然后拷贝到bundles目录,或者通过命令行工具“Artisan”自动安装。

2、在Laravel中已经具有了一套高级的PHP ActiveRecord实现 -- Eloquent ORM。它能方便的将“约束(constraints)”应用到关系的双方,这样你就具有了对数据的完全控制,而且享受到ActiveRecord的所有便利。Eloquent原生支持Fluent中查询构造器(query-builder)的所有方法。

3、应用逻辑(Application Logic)可以在控制器(controllers)中实现,也可以直接集成到路由(route)声明中,并且语法和Sinatra框架类似。Laravel的设计理念是:给开发者以最大的灵活性,既能创建非常小的网站也能构建大型的企业应用。

4、反向路由(Reverse Routing)赋予你通过路由(routes)名称创建链接(URI)的能力。只需使用路由名称(route name),Laravel就会自动帮你创建正确的URI。这样你就可以随时改变你的路由(routes),Laravel会帮你自动更新所有相关的链接。

5、Restful控制器(Restful Controllers)是一项区分GET和POST请求逻辑的可选方式。比如在一个用户登陆逻辑中,你声明了一个get_login()的动作(action)来处理获取登陆页面的服务;同时也声明了一个post_login()动作(action)来校验表单POST过来的数据,并且在验证之后,做出重新转向(redirect)到登陆页面还是转向控制台的决定。

6、自动加载类(Class Auto-loading)简化了类(class)的加载工作,以后就可以不用去维护自动加载配置表和非必须的组件加载工作了。当你想加载任何库(library)或模型(model)时,立即使用就行了,Laravel会自动帮你加载需要的文件。

7、视图组装器(View Composers)本质上就是一段代码,这段代码在视图(View)加载时会自动执行。最好的例子就是博客中的侧边随机文章推荐,“视图组装器”中包含了加载随机文章推荐的逻辑,这样,你只需要加载内容区域的视图(view)就行了,其它的事情Laravel会帮你自动完成。

8、反向控制容器(IoC container)提供了生成新对象、随时实例化对象、访问单例(singleton)对象的便捷方式。反向控制(IoC)意味着你几乎不需要特意去加载外部的库(libraries),就可以在代码中的任意位置访问这些对象,并且不需要忍受繁杂、冗余的代码结构。

9、迁移(Migrations)就像是版本控制(version control)工具,不过,它管理的是数据库范式,并且直接集成在了Laravel中。你可以使用“Artisan”命令行工具生成、执行“迁移”指令。当你的小组成员改变了数据库范式的时候,你就可以轻松的通过版本控制工具更新当前工程,然后执行“迁移"指令即可,好了,你的数据库已经是最新的了!

10、单元测试(Unit-Testing)是Laravel中很重要的部分。Laravel自身就包含数以百计的测试用例,以保障任何一处的修改不会影响其它部分的功能,这就是为什么在业内Laravel被认为是最稳版本的原因之一。Laravel也提供了方便的功能,让你自己的代码容易的进行单元测试。通过Artisan命令行工具就可以运行所有的测试用例。

11、自动分页(Automatic Pagination)功能避免了在你的业务逻辑中混入大量无关分页配置代码。方便的是不需要记住当前页,只要从数据库中获取总的条目数量,然后使用limit/offset获取选定的数据,最后调用‘paginate’方法,让Laravel将各页链接输出到指定的视图(View)中即可,Laravel会替你自动完成所有工作。Laravel的自动分页系统被设计为容易实现、易于修改。虽然Laravel可以自动处理这些工作,但是不要忘了调用相应方法和手动配置分页系统哦!

的码云指数为
超过 的项目
加载中

评论(10)

青狂不轻狂
最好的PHP开发框架
好好先森V5
好好先森V5
Laravel开发效率很高,但性能不太好。本人在造加速它的轮子,基于Swoole加速Laravel/Lumen,常驻内存,内置HTTP服务器,平滑Reload,与Nginx配合搭建高可用分布式服务器群,开箱即用。有需求的可以尝试下,https://github.com/hhxsv5/laravel-s
金三胖
金三胖
#Laravel# 5.5 发布了
summer_charlie
summer_charlie
Laravel 是最爽的开发框架了
summer_charlie
summer_charlie
PHPHub 是积极向上的 PHP & Laravel 开发者社区 http://phphub.org/, 论坛本身就是用 Laravel4 编写, 源码见 https://github.com/summerblue/phphub 欢迎 Laravel 爱好者过来贡献代码 Laravel
summer_charlie
summer_charlie
Laravel-Blog 简单的开源博客应用, 使用 Laravel 编写 https://github.com/summerblue/laravel-blog Laravel
klyou
klyou
为什么.net写个链接大家认为只会拖控件,现在php这么写($uri = Uri::create(‘some/uri’, array(), array(), true);)大家都觉得很NB的样子 Laravel
Array
Array
真心不知道laravel是怎么火起来的!
summer_charlie
summer_charlie
Laravel 5 中文文档已翻译好 http://laravel-china.org/ Laravel
s
suiyijin
bucuo #Laravel#

Laravel 7.6 发布

Laravel 7.6 发布了,更新内容包括: Added 新增 Collection::until() 方法 (#32262) 新增 HtmlString::isEmpty() 方法 (#32289, #32300) 新增 Illuminate\Support\Stringable::isNotEmpty(...

04/20 07:25

Laravel 7.5 发布

Laravel 7.5 发布了,主要更新内容包括: 新的 Http 客户端断言 新版本带来了 Http 客户端的两种新测试方法: Http::assertNotSent( function ($request) { return $req...

04/11 07:44

Laravel 7.4 发布

Laravel 7.4 发布了,更新内容如下: Added 使用于 make:policy 的 stubs 可定制 (#32040, 9d36a36) 为集合实现 HigherOrderWhenProxy (#32148) 新增 Illuminate\Testing\PendingCommand::e...

04/03 07:31

Laravel 7.2 发布

Laravel 7.2 发布了,此版本包含 HTTP 客户端查询字符串支持和 SMTP 邮件驱动程序的新超时配置选项。 主要新特性有: ExpectsConfirmation 测试方法 用于测试 artisan 命令的 PendingCommand...

03/21 07:28

Laravel 7 稳定版发布,路由速度提高两倍

Laravel 7 稳定版已发布,并引入了许多新功能,其中包括 Laravel Airlock、更快的路由速度、自定义 Eloquent Casts、Blade 组件标签、流畅的字符串操作、新的 HTTP 客户端、CORS 支持以及许多...

03/09 08:09

Laravel 6.15.1 发布

Laravel 6.15.1 发布了,主要更新内容有: Added 将 whereNull 和 whereNotNull 添加到 Collection (#31425) 添加了 Illuminate\Foundation\Testing\MockStream 类 (#31447) Fixed 修复 even...

02/20 07:40

Laravel 6.15.0 发布

Laravel 6.15.0 发布了,主要更新内容有: Added 添加了 Illuminate\Auth\Events\Validated 事件 (#31357, 7ddac28) 使 Blueprint 支持语法的 macro (#31365) 将 Macroable 添加到 Illumina...

02/14 06:58

Laravel 6.14.0 发布

Laravel 6.14.0 发布了,主要更新内容有: Added 添加了 Illuminate\Bus\Dispatcher::dispatchAfterResponse() 方法 (#31300, 8a3cdb0) 添加了 Illuminate\Support\Testing\Fakes\QueueFake...

02/07 07:49

Laravel 6.13.0 发布

Laravel 6.13.0 发布了,更新亮点主要有: 允许格式化隐式验证属性 允许验证者为隐式属性配置自定义格式器: // Instead of "0.age must be an integer" // A formatter could do: "age ...

02/01 08:21

Laravel 6.12.0

Laravel 6.12.0 发布了,更新内容如下: Added 添加了 ServiceProvider::loadFactoriesFrom() 方法 (#31133) 添加了 TestResponse::dumpSession() 方法 (#31131) 添加了 Str::isUuid() 方法 ...

01/26 08:17

没有更多内容

加载失败,请刷新页面

6
回答
php业余开发者,习惯了TP3.2,还需要学TP5以及yii,laravel 吗

如题,更新太快,学习成本和时间也上升,何解,求指教!

03/16 10:48
2
回答
请问下框架中分页要怎么优化啊

我们都知道sql中如果从第1000条开始查10条 那么数据库会先取出1000条然后在查10 数据量大就会效率低 优化是直接通过select去查第1000条...

04/09 10:10
73
回答
我为什么不看好 PHP ?

讲道理来说对 php 还是蛮有感情的,从第一次看到 HHVM,swoole , PHP7,再到后来 laravel reactphp php-pm 等项目...

2018/08/29 17:40
5
回答
为什么80%的码农都做不了架构师?

一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。 所以,80%码农干上许多年,还是做不...

2019/09/10 09:58
1
回答
laravel5.2中如何使用getid3

laravel5.2中如何使用getid3?

2017/08/31 10:40
1
回答
把 ant design vue 集成到 laravel 里之后,用 layout 提示找不到

代码如下: <template> <Layout> <Header>header</Header> <Layout> ...

2019/04/15 09:01
26
回答
【开源访谈】范圣佑:关于 PHP 和 Laravel 不得不说的事

Laravel 作为一套知名度极广的 PHP 开发框架,素以简洁和优雅著称,那么相比其它 PHP 框架,它具体有哪些独特的优势?本期【开源访谈】邀请到来自...

2017/07/06 18:07
2
回答
laraver运行

配置完虚拟主机后,访问laraver显示一段文字不知道什么意思? /** * Laravel - A PHP Framework For Web Arti...

2019/04/27 11:29
4
回答
有没有一本书或教程,教你如何把一堆乱代码逐步优化成逻辑清晰,易读,复用性高的代码

现在是处于这种情况。简单的业务逻辑会写,框架也会用,composer的组件也会调用,相当于只会拼积木,但是不会造积木,编程的头和尾能看清楚,但是内部 1....

2019/01/23 10:28
6
回答
如何有效的学习Laravel框架底层或者第三方库

1.刚开始看Laravel框架底层是一脸懵逼的,看着看着就不知道看到哪儿去了。没有一个宏观的概念和角度去理解。 2.试着结合《Laravel框架关键技术解...

2018/10/18 09:40

没有更多内容

加载失败,请刷新页面

laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)

laravel基础课程---1、laravel安装及基础介绍(laravel如何安装) 一、总结 一句话总结: 【修改composer镜像地址】、【明确laravel的安装要求】、【安装指定版本的laravel】、【查看laravel...

2019/05/06 11:04
98
0
composer安装Laravel

Laravel框架版本对PHP的要求如下: 5.6 PHP 7.1.3 或更高版本。 5.1 5.2 PHP 5.5.9 或更高版本。 4.2 PHP 5.4 或更高版本。 4.1 PHP 5.3.7 或更高版本。 下载:github.com/laravel/laravel ...

2019/03/22 11:13
52
0
Laravel 不权威导航

Laravel不权威导航 Hi 这里是Roy整理的Laravel相关索引,希望能帮到大家 ,目前只是一小部分,正在努力整理中... Laravel 文档 Laravel 官方文档 —— 英文 Laravel 中文文档 —— laravel-...

2016/02/05 13:10
867
1
Phpstorm 安装 laravel扩展,laravel代码提示插件

Phpstorm 安装 laravel扩展,laravel代码提示插件

2016/03/25 16:04
3K
1
Laravel4.1--Laravel 应用程序的体系结构(二)

 在一切环境就绪了,当然就要开始了解框架了。   站在巨人的肩膀上,学东西会事半功倍。我在网上找到一篇好文章,正好可以让我轻松了解Laravel应用程序的体系结构。因此借来直接用了。  ...

2016/11/16 10:14
224
0
laravel开发资源

集大成者 http://labs.infyom.com/laravelgenerator/ We have worked on many projects that required to create APIs and scaffold CRUD type of thing. And the problem that we faced was...

2016/02/21 23:18
351
1
Laravel源码解析--看看Lumen到底比Laravel轻在哪里

在前面一篇《Laravel源码解析--Laravel生命周期详解》中我们利用xdebug详细了解了下Laravel一次请求中到底做了哪些处理。今天我们跟 Lumen 对比下,看看 Lumen 比 Laravel 轻在哪里? 1、Lum...

2018/12/05 09:54
95
0
Laravel之基于PHPStorm编辑器的Laravel开发

引言 本文主要讲述在PHPStorm编辑器中如何使用PHPStorm的Laravel插件和Laravel IDE Helper来开发Laravel程序,结合个人积累的一点经验来说明使用PHPStorm编辑器来开发程序还是很顺手的,内容...

2016/10/10 11:28
251
1
laravel 学习总结

反思这几天学习laravel的收获

2015/12/19 19:05
342
1
Lumen与laravel的区别

Lumen与laravel的区别 困惑 一直都无法很友好的理解Lumen与Laravel之间的区别,只知道他们是非常相似的两个php框架,使用方法什么的都差不多。 为什么要解惑 最近接手了公司的一个项目,有专...

2019/03/19 14:08
23
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部