PHP开发框架Laravel优点,Laravel5.3中文文档
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需要先了解几个东西,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,你会发现在学习过程中,你会学习到框架之外的更多知识
面对用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中文文档的更多相关文章
- Laravel 5 中文文档 CHM 版
使用 Microsoft HTML Help Workshop 做了一个 Laravel 5.4 中文文档的 CHM 版本. 百度网盘下载地址:http://pan.baidu.com/s/1dFN2 ...
- Spring中文文档
前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ...
- 【Chromium中文文档】沙箱FAQ
沙箱FAQ 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Sandbox ...
- 【Chromium中文文档】Chrome/Chromium沙箱 - 安全架构设计
沙箱 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Sandbox.ht ...
- 【Chromium中文文档】进程模型
进程模型 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Process_ ...
- 【Chromium中文文档】跨进程通信 (IPC)
跨进程通信 (IPC) 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/I ...
- Django REST framework 中文文档
Django REST framework介绍 现在前后端分离的架构设计越来越流行,业界甚至出现了API优先的趋势. 显然API开发已经成为后端程序员的必备技能了,那作为Python程序员特别是把Dj ...
- IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问
IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问 原文:http://docs.identityserver.io/en/release/quickst ...
- Apache Spark 2.2.0 中文文档
Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN Geekhoo 关注 2017.09.20 13:55* 字数 2062 阅读 13评论 0喜欢 1 快速入门 使用 ...
随机推荐
- Charles抓包工具的使用
HTTP抓包 打开Charles程序 查看Mac电脑的IP地址,如192.168.1.7 打开iOS设置,进入当前wifi连接,设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.1 ...
- OpenGL-选择与拾取
转自:http://blog.sina.com.cn/s/blog_4a9aa55c0100vu57.html 以下内容主要整理<OpenGL编程指南>第13章的内容.主要解决以下问题: ...
- C语言下WebService的使用方式
用gSoap工具: 1.在dos环境中到gSoap工具对应的目录gsoap_2.8.18\gsoap-2.8\gsoap\bin\win32路径下,执行wsdl2h -c -o *.h ht ...
- AsyncTask的使用方法和理解
.对于耗时的操作,我们的一般方法是开启“子线程”.如果需要更新UI,则需要使用handler 2.如果耗时的操作太多,那么我们需要开启太多的子线程,这就会给系统带来巨大的负担,随之也会带来性能方面的问 ...
- SQLserver 表字段修改语句
增加字段 ) 删除字段 ALTER TABLE table_NAME DROP COLUMN column_NAME 修改字段类型 ALTER TABLE table_name ALTER COLUM ...
- oracle启动关闭命令
关闭:1.shutdown normal 不允许新的连接.等待会话结束.等待事务结束.做一个检查点并关闭数据文件.启动时不需要实例恢复. 2.shutdown transactional不允许新的连接 ...
- 使用Redis来实现LBS的应用
原文地址 微信.陌陌 架构方案分析 近两年.手机应用,莫过于微信.陌陌之类最受欢迎:但实现原理,分享文章甚少. 故,提出两种方案,供分享:不对之处,敬请留言学习. 目标 查找附近的某某某,由近到远返回 ...
- NLS_LANG参数说明
NLS_LANG参数说明 格式: NLS_LANG = language_territory.charset 它有三个组成部分(语言.地域和字符集),每个成分控制了NLS子集的特性.其中: Lang ...
- Troubleshooting JDK
收集整理下JDK自带的关于 Troubleshooting 的文档 Java 2 Platform, Standard Edition 5.0 Troubleshooting and Diagnost ...
- Lintcode: Single Number III
Given 2*n + 2 numbers, every numbers occurs twice except two, find them. Example Given [1,2,2,3,4,4, ...