PHP开发框架Laravel优点

Laravel的设计思想是很先进的,非常适合应用各种开发模式TDD, DDD和BDD,作为一个框架,它为你准备好了一切,composer是个php的未来,没有composer,PHP肯定要走向没落。
laravel最大的特点和优秀之处就是集合了php比较新的特性,以及各种各样的设计模式,Ioc容器,依赖注入等。因此laravel是一个适合学习的框架,他和其他的框架思想有着极大的不同,这也要求你非常熟练php,基础扎实。
如果你觉得laravel很困难 那么原因只有一个 你php基础不够好。
通常觉得Laravel难学且无用的开发者中,只会PHP一门语言,或者说,没有静态编译型语言(如C/C++/Java/Go等)使用经验的开发者占绝大多数。

路由和orm部分,和前端backbone之类的结合应该很契合,还是很不错的,另外composer是个很好东西,关于效率问题,web程序的运行效率从来就不在框架,而在数据库,框架那一点点消耗根本不会是什么负担。
laravel框架还是蛮不错的,可以说非常全面,配合phpstorm开发还是很好的。

===========================================

PS:Laravel 5.3 在2016年8月24日正式发布了,而且有中文版文档了(有些之前的中文网站还是5.1版本的,没有及时更新):

Laravel 5.3 中文文档 – Laravel学院
http://laravelacademy.org/laravel-docs-5_3

Laravel 5.3 版本中的新增特性主要集中在提升开发速度,通过增强常见任务的开箱即用功能提升开发效率。 Laravel 5.3 包含了一个全新的全局助手函数 cache(),这个函数能够让你更方便地获取缓存系统的实例对象。

学laravel需要先了解几个东西,laravel的authentication,authorize,middleware
这是基础,另外就是laravel的blade模板
学习laravel,千万不要看国内的翻译,一定要去原laravel.com上去学习
这个框架一开始接触会觉得有点门槛,其实学习之后觉得相当好,连需求测试都不需要的
当然,对程序员的编程水平要求高得多,需要深入骨髓的OOP思想,学熟悉了,你会发现自己的php水平上了几个档次了,具有更高的职场竞争力

总的来说Laravel适合做大项目,适合做java的程序员转过来学习php的。

Laravel - The PHP Framework For Web Artisans
https://laravel.com/
Installation - Laravel - The PHP Framework For Web Artisans
https://laravel.com/docs/5.3

Laravel 5.3 中文文档(含离线文档下载)

----------------------------
学习laravel,你会发现在学习过程中,你会学习到框架之外的更多知识
面对用TP的人的不理解,用Yaf的人的鄙视,用Yii的人的试探的目光
面对性能低下的问题你需要redis memcache opcache php7 hhvm 等等等优化性能的方案

--------------------------------
Laravel 框架的出现,将 PHP 的后端开发带入了一个新的高度,其中的 composer 和 PHP-FIG 等,标志着 PHP 已经不再仅仅是“前端语言”、“展示层语言”了。
PHP 的特点就是易于入门,而且 PHP 是一个语法大杂碎,汇集了 C Perl 等等,当年我学了半天时间,就可以拿来做网站了。

对于框架,大部分 PHPer 会首选 ThinkPHP 或者 CI。因为这几个框架的门槛和 PHP 的门槛很对口。如果像 Java 那样,学习半年才能做开发,大部分的 PHPer 是接受不了的。如果一个框架(比如 SSH)需要学习半个月才能上手,PHPer 们也接受不了,于是 TP 和 CI 框架大行其道。(PHP 界和 java的SSH 框架媲美的 ZendFramework 也被 PHPer 鄙视为大而无用)。

如果你仅仅是为客户写一个网站,那么即使原生的 PHP 也可以应付,如果想再提高点儿效率,可以选用 TP 或者 CI。

但是,如果你是为公司或者自己开发一个项目,这个项目准备运营五年以上,那么 CI 的弊端就凸现了。五年间,CI 估计都已经升级了 N 版了,PHP 也升级了 N 版了。你升级吗?

项目是在本地开发调试完成,当上线后遇到问题了,我们如何查找,如何跟踪呢?最通常的办法就是 log。现在几乎每个框架都有 log 功能,但是 Laravel 的又一强大之处就是他的 log 遵循 PHP-FIG,也就是以后你可以随意更换 log 的实现类以提高性能。这就好比我们的 PC,它上面都有 USB 接口,这样我们就可以任意更换 USB 设备,比如 USB 鼠标,USB 键盘,USB 硬盘等。而 Laravel 依据 PHP-FIG 标准提供日志接口,我们只需要更换实现。
Laravel 使用 composer 管理包依赖。使用 composer 不是为了调入,而是为了管理,管理包,以及各种包的版本。这样就解决了各种包的兼容问题。而在 composer 出现之前,PHP 依然没有有效的方法解决这些问题。

Composer 将工程化的思想带入了 PHP。
如果不使用第三方包的情况下,能加快多少开发速度呢?如果仅仅是开发速度,Laravel 无疑是低效的,笨重的。这显然和“世界上最好的语言”不相搭配。
但是如果你开发过大中型项目就会发现,编码(Coding)其实在整个项目阶段,连三分之一都占不到。再退一万步讲,开发周期也许是3个月,但是整个项目的生命周期确实3年啊。

在传统的 PHP 开发过程中,都是:编码,运行,调试改错,直到运行成功,然后打开浏览器,输入数据,点击执行,看结果,如果正确,再次输入数据,如果错误,修改,调试,再打开浏览器,重复,重复,知道自己满意为止。
我们也可以使用 PHPUnit测试,但想测试控制器、模型,则还需要一些黑魔法。如果在 SSH 中任何一个模块都可以单独拿出来进行单元测试。因为任何一个模块,都可以脱离 SSH 框架而单独运行。
在 SSH 中,我们可以把控制器拿出来,放到 JUnit 中测试控制器的功能。也可以把路由器模块拿出来,测试 URL 路由是否正确等。而在 PHP 的 CI 或者 TP 框架中,控制器不可能单独拿出来进行测试。
而 Laravel 对于 PHP 的工程化的另一个贡献就是——可测试性。

Laravel植根于测试,实际上,内置使用PHPUnit对测试提供支持是即开即用的,并且phpunit.xml文件已经为应用设置好了。框架还提供了方便的帮助方法允许你对应用进行富有表现力的测试。
tests目录中提供了一个ExampleTest.php文件,安装完新的Laravel应用后,只需简单在命令行运行phpunit来运行测试。
http://laravelacademy.org/post/238.html

--------------------------------
laravel性能肯定会差一点点的,现在有个lumen,是laravel的几倍

Lumen - 为速度而生的 Laravel 框架 - Laravel 中国
http://lumen.laravel-china.org/

Lumen 中文文档 – Laravel学院
http://laravelacademy.org/lumen-docs

Laravel 专属的极致体验
闪电一样的运行速度, 优雅的语法, 为你开发微服务架构和 API 应用时带来愉悦的体验

运行速度快到爆表
Lumen 是你构建微服务架构和 API 应用的完美解决方案, 事实上, 她是全宇宙最快的框架之一, 甚至要快过以速度著称的 Silex 和 Slim, 现在, 为你的 Laravel 应用程序编写微服务架构变得再简单不过了.

你最爱的 Laravel 强大功能
绝不牺牲功能和开发的愉悦性来换取速度, 你始终可以方便地使用 Laravel 功能, 如 Eloquent, 缓存系统, 队列系统, 认数据认证, 路由系统, 中间件 等, 并且不需要太多配置.
<?php
$app->get('user/{id}', function($id) {
return User::findOrFail($id);
});
无缝迁移, 要的就是灵活
如果有一天你的 Lumen 项目想使用全堆栈的 Laravel 框架, 因为 Lumen 是由 Laravel 的子模块组成的, 你不需要修改任何代码就能直接集成到 Laravel 里面.

为速度而生的 Laravel 框架
<?php
/**
* 超越你的期待
*/
$app->get('/', function() {
return view('lumen');
});
/**
* 重新定义微框架
*/
$app->post('framework/{id}', function($framework) {
$this->dispatch(new Energy($framework));
});

PHP开发框架Laravel优点,Laravel5.3中文文档的更多相关文章

  1. Laravel 5 中文文档 CHM 版

    使用 Microsoft HTML Help Workshop 做了一个 Laravel 5.4 中文文档的 CHM 版本. 百度网盘下载地址:http://pan.baidu.com/s/1dFN2 ...

  2. Spring中文文档

    前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ...

  3. 【Chromium中文文档】沙箱FAQ

    沙箱FAQ 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Sandbox ...

  4. 【Chromium中文文档】Chrome/Chromium沙箱 - 安全架构设计

    沙箱 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Sandbox.ht ...

  5. 【Chromium中文文档】进程模型

    进程模型 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Process_ ...

  6. 【Chromium中文文档】跨进程通信 (IPC)

    跨进程通信 (IPC) 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/I ...

  7. Django REST framework 中文文档

    Django REST framework介绍 现在前后端分离的架构设计越来越流行,业界甚至出现了API优先的趋势. 显然API开发已经成为后端程序员的必备技能了,那作为Python程序员特别是把Dj ...

  8. IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问

    IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问 原文:http://docs.identityserver.io/en/release/quickst ...

  9. Apache Spark 2.2.0 中文文档

    Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN Geekhoo 关注 2017.09.20 13:55* 字数 2062 阅读 13评论 0喜欢 1 快速入门 使用 ...

随机推荐

  1. Objective-C类成员变量深度剖析

    目录 Non Fragile ivars 为什么Non Fragile ivars很关键 如何寻址类成员变量 真正的“如何寻址类成员变量” Non Fragile ivars布局调整 为什么Objec ...

  2. NSUserDefaults 可以保存哪些类型

    NSData NSString NSNumber NSDate NSArray NSDictionary *如果你想保存其他类型,如UIImage,你应该进行编码(即archive),或者将它转换为N ...

  3. Ubuntu14.04安装和配置Tomcat8.0.12(转)

    Ubuntu14.04长的好看,所以一时间很感兴趣,研究各种软件的安装和开发环境的配置.今天先把安装的tomcat 8.0.12的教程分享给大家.如果你需要,请收藏!!!   工具/原料 系统环境:U ...

  4. kafka系列教程2(设计构造及原理1)

    kafka采用了一些非主流(unconventional)并经过实践的设计使其高效和可扩展.在实际使用中kafka显示出了相对于常见流行的消息系统的优越性.并且每天能够处理上百GB的新的数据.   类 ...

  5. 汉字拼音带声调和发音mp3文件(C#源程序)

    7800多个汉字的拼音带声调以及全部mp3读音文件,附带一个C#实例程序源代码 读音文件按拼音和声调命名,方便调用 获取全部源代码

  6. C++Primer 第四章

    //1.当我们对运算符进行重载的时候,其包括运算对象的类型和返回值的类型都是由该运算符定义的,但是运算对象的个数和优先级,结合律都是不能改变的 //2.当一个对象被用作右值的时候,用的是对象的值(内容 ...

  7. CPU informition

    tar jxvf util-linux-ng-2.18.bz2cd util-linux-ng-2.18/./configure --enable-arch --enable-partx --enab ...

  8. 转:python socket编程详细介绍

    Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...

  9. ofbiz进击 第五节。 --OFBiz配置之[general.properties] 共有属性的分析(含email)

    文件内容如下 unique.instanceId=ofbiz1     #--为JobManger方法提供实例的ID(必须小于20个字符)    currency.uom.id.default=USD ...

  10. java中的断言

     断言:也就是所谓的assertion,是jdk1.4后加入的新功能. 它主要使用在代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出. 当软件 ...