Laravel 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Laravel 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Laravel 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Laravel 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Laravel 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 PHP 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发Web框架
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 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可以自动处理这些工作,但是不要忘了调用相应方法和手动配置分页系统哦!

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (13)

加载中
666
01/12 14:22
回复
举报
该评论暂时无法显示,详情咨询 QQ 群:912889742
你怕不是个沙子吧,文章都看不明白就开喷?作者这里举这个例子,重点是告诉我们true到底代表什么意思?人家是强调“语法的表现力”,你倒是好,还一个劲儿的喷,真是贻笑大方
2020/11/10 10:44
回复
举报
打分: 力荐
最好的PHP开发框架
2018/08/01 09:21
回复
举报
打分: 力荐
Laravel开发效率很高,但性能不太好。本人在造加速它的轮子,基于Swoole加速Laravel/Lumen,常驻内存,内置HTTP服务器,平滑Reload,与Nginx配合搭建高可用分布式服务器群,开箱即用。有需求的可以尝试下,https://github.com/hhxsv5/laravel-s
2018/02/02 14:15
回复
举报
#Laravel# 5.5 发布了
2017/08/30 19:32
回复
举报
打分: 力荐
Laravel 是最爽的开发框架了
2017/01/26 07:58
回复
举报
该评论暂时无法显示,详情咨询 QQ 群:912889742
Laravel-Blog 简单的开源博客应用, 使用 Laravel 编写 https://github.com/summerblue/laravel-blog Laravel
2014/10/16 10:48
回复
举报
为什么.net写个链接大家认为只会拖控件,现在php这么写($uri = Uri::create(‘some/uri’, array(), array(), true);)大家都觉得很NB的样子 Laravel
2014/11/28 17:12
回复
举报
真心不知道laravel是怎么火起来的!
2020/02/07 11:03
回复
举报
Laravel 5 中文文档已翻译好 http://laravel-china.org/ Laravel
2015/02/15 14:59
回复
举报
更多评论
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2020/03/16 10:48

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

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

7
0
2020/04/09 10:10

请问下框架中分页要怎么优化啊

我们都知道sql中如果从第1000条开始查10条 那么数据库会先取出1000条然后在查10 数据量大就会效率低 优化是直接通过select去查第1000条的数据, 但是在框架中要咋写啊,现在是limt(1000,10)

8
0
2018/08/29 17:40

我为什么不看好 PHP ?

讲道理来说对 php 还是蛮有感情的,从第一次看到 HHVM,swoole , PHP7,再到后来 laravel reactphp php-pm 等项目,php 社区有着源源不断的潜力,和一群热爱开发的人来给它续命。 糟心的设计 性能问题 PHP 设计之初是没有过多考虑性能问题,同步阻塞模型非常适合一般思维,多进程也一定解决了脚本语言长时间跑会不稳定的问题。但是这样做的后果就是多进程十分占用 CPU 资源,进程需要等数据库操作。而且 PHP 本身不常驻内存,像...

165
3
发表于大前端专区
2019/09/10 09:58

为什么80%的码农都做不了架构师?

一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。 所以,80%码农干上许多年,还是做不了架构师;正在辛苦工作的程序员们,你有没有下面几种感觉? ① 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。 ② 我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Swoft用的人最近比较...

5
1
发表了问答
2017/08/31 10:40

laravel5.2中如何使用getid3

laravel5.2中如何使用getid3?

1
0
发表于大前端专区
2019/04/15 09:01

把 ant design vue 集成到 laravel 里之后,用 layout 提示找不到

代码如下: <template> <Layout> <Header>header</Header> <Layout> <Sider>left sidebar</Sider> <Content>main content</Content> <Sider>right sidebar</Sider> </Layout> <Footer>footer</Footer> </Layout> </template> 提示 如果改成简单组件 <template> <a-button>hello</a-button> </template> 就能正常显示:...

1
0
发表了问答
2017/07/06 18:07

【开源访谈】范圣佑:关于 PHP 和 Laravel 不得不说的事

Laravel 作为一套知名度极广的 PHP 开发框架,素以简洁和优雅著称,那么相比其它 PHP 框架,它具体有哪些独特的优势?本期【开源访谈】邀请到来自台北的范圣佑老师,听听他眼中的 Laravel ,聊聊 PHP 生态的那些事儿。 【本期嘉宾】 范圣佑,来自台湾台北,现任职于得宽科技研究员、Laravel 布道者。 于 2013 年在 Facebook 上成立 Laravel 台湾社团及成立 Laravel 道场教学站,并与多间学校、企业单位合作举办培训工作坊,从此...

39
19
发表于开发技能专区
2019/04/27 11:29

laraver运行

配置完虚拟主机后,访问laraver显示一段文字不知道什么意思? /** * Laravel - A PHP Framework For Web Artisans * * @package Laravel * @author Taylor Otwell */ define('LARAVEL_START', microtime(true)); /* |-------------------------------------------------------------------------- | Register The Auto Loader |-------------------------------------------------------------------------- | | Composer prov...

2
0
发表于大前端专区
2019/01/23 10:28

有没有一本书或教程,教你如何把一堆乱代码逐步优化成逻辑清晰,易读,复用性高的代码

现在是处于这种情况。简单的业务逻辑会写,框架也会用,composer的组件也会调用,相当于只会拼积木,但是不会造积木,编程的头和尾能看清楚,但是内部 1.“积木”内部如何实现 2.为什么可以这样实现“积木” 3.还有没有其他办法实现同样的“积木” 4.语言版本更新之后新的特性会给造“积木”带来怎样的便利。比如php5.3的后期静态绑定能给编码带来什么改变。 5.像laravel这种框架是如何演变成现在的版本的。 试过读过源码和看过...

4
0
发表于程序人生专区
2018/10/18 09:40

如何有效的学习Laravel框架底层或者第三方库

1.刚开始看Laravel框架底层是一脸懵逼的,看着看着就不知道看到哪儿去了。没有一个宏观的概念和角度去理解。 2.试着结合《Laravel框架关键技术解析》来学习,能看懂一些了,比如核心ioc容器。但是脱离了书本之后又忘了细节,只知道个大概。 像 数据库连接 Laravel都分了四个阶段,数据库管理器阶段--》数据库连接工厂阶段--》连接器阶段--》数据库连接创建阶段。完全不知道这样做的目的或者好处,他们怎么知道预先编写好一个接口...

6
0
发表了问答
2016/05/29 16:56

请问workerman http server 模式常驻laravel的写法

网上能搜到的大部分是swoole常驻laravel,github有个 https://github.com/acabin/laravoole ,swoole有http模式,workerman只有fastcgi模式,想求个 workerman http server 模式常驻laravel的写法,谢谢!

3
1
发表于大前端专区
2018/06/02 11:54

tp5适合大型网站开发吗?lv转tp5

lv打开静态网站比较慢,想转学用tp5,不知到tp5能否开发大型web项目,以前看到文章说tp简单只适合中小型网站,不知道tp5怎么样?

1
0
发表于大前端专区
2018/05/30 17:11

MySQL读写一致性问题

情景描述: 使用laravel开发一个航空订票系统程序,其中使用seeder来生成测试数据。 航班数据的生成规则: 1. 航班号是6位字符,前两位是固定字母比如AX,后4为是随机数字 2. 航班的出发和到达城市不能一样 3. 相同的航班号出发城市和到达城市需保持一致,并且起飞时间是相同的,但是日期不能相同 4. 航班起飞时间在生成数据所在时刻的前一天和后五天之内 预备工作: php artisan make:migration create_flights_table php arti...

3
0
2016/02/28 12:15

请问 lavarel5.0 帮助文档上的 的DB::select() ,DB:table() 函数在 哪个类文件

请问 lavarel5.0 帮助文档上的 的DB::select() ,DB:table() 函数在 哪个类文件,api文档里面 没有该函数

1
0
发表于大前端专区
2018/03/06 09:55

laravel转thinkphp会不会很难呢

之前一开始用的就是laravel框架,用了两年的laravel,现在有份新工作,很不错,就是用thinkphp,没用过tp,如果转成thinkphp需要多久才能入门呢,两者的差异很大么?

8
0
2018/01/06 16:41

laravel程序 在redis 队列中利用model::create()无反应导致队列超时

遇到一个问题,真心求教,下面我把问题详细描述一下: 环境: 服务器(Ubuntu16.04), redis3.2, php7.12, nginx, supervisor, mysql5.7, laravel5.5 问题描述: 利用laravel 队列启动队列 php artisan queue:work redis --queue=saas:user:msg --sleep=3 --tries=2 --timeout=30 在laravel 队列中无法执行Model::create()操作,执行到这里就没动静了,直到队列超时, 在队列中利用laravel Model::find,或者对已有的数据进行...

5
1
发表了问答
2017/12/06 11:00

laravel 5.5,关于执行php artisan migrate抛出的Mysql权限错误

现在的问题是, 在navicat客户端中登录mysql-proxy进行任何操作正常 在laravel中执行任何sql语句都会报错 SQLSTATE[HY000]: General error: 1243 Unknown prepared statement handler (X) given to  mysqld_stmt_execute ------------------------------------------------------------------------------------------- 最近在做毕业设计项目。 Mysql读写分离,主从复制。 Mysql-proxy在A服务器,B服务器 Master负责写,C服务器...

2
0
发表了问答
2017/11/13 21:18

laravel migrate问题

最近在学laravel 发现一个问题:不小心删除了数据库中的所有表,想重新执行php artisan migrate 重新生成表,怎么操作啊?我执行的错误如下: [Illuminate\Database\QueryException] SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel54.admin_permissions' doesn't exist (SQL: select * from admin_permissions)...

1
0
发表了问答
2017/07/15 21:40

laravel5.1框架 post表单提交,使用Form Request验证,验证失败后只是回到原页面,不提示error信息,这是为什么?

laravel5.1框架 post表单提交,使用Form Request验证,验证失败后只是回到原页面,不提示error信息,前台页面已经添加了 "@if (count($errors) > 0) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif" 这是为什么?...

3
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
13 评论
387 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部