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. Power-BI费用分析

    费用分析主要从财务三大费用入手,剖析费用的结构.用途.占用等情况,从三大费用到明细费用.部门.职员的层层钻取,从而有效地进行费用管理和控制.Power-BI前端展示:图1<ignore_js_o ...

  2. Inno Setup 教程

    参考博客:制作部署安装包:Inno Setup 参考资料:Inno Setup详细教程 参考资料:Innosetup使用详细全面教程 个人使用的 风铃夜思雨 的汉化版,版本:5.5.5 ; 脚本由 I ...

  3. Python基础 (yield生成器)

    如果在一个函数中使用了yield,那么这个函数实际上生成的是一个生成器函数 ,返回的是一个generator object.生成器是实现迭代的一种方式 特点: 其实返回的就是可以的迭代对象 和迭代的方 ...

  4. itunes connect

    https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnec ...

  5. Fix the “No Private Key” Error Message

    This article will show you how to correct the “No Private Key” error message in Windows Internet Inf ...

  6. DG - physical standby failover切换过程

    1.failover前检查 #如果有多个standby数据库,查看哪个standby接收的redo最新. SQL> select * from v$archive_dest_status: #查 ...

  7. linux:档案与目录管理

    几个常见的目录处理命令: cd(change directory):变更目录 pwd(print working directory):显示当前目录[目录为连结档,则只显示连结档的路径]([-P]不以 ...

  8. 【转】线程、Thread类和线程终止

    一.线程Thread启动 0. Thread类实现了java.lang.Runnable接口,即实现了run方法.虽然在Sun JDK中,start()调用了start0()方法,start0()方法 ...

  9. c# 访问ftp

    ftp从服务器上获取通信设备吐出的mr数据,该方案估计在通信行业上一个很普遍的一种方案,很奇怪为什么不把这些数据直接存储到数据库中呢,比如hadoop,反而还需要第三方搞网优的软件开发人员从ftp上读 ...

  10. iOS8中用UIVisualEffectView实现高斯模糊视图(毛玻璃效果)

    UIBlurEffect *beffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; UIVisualEffectView *vi ...