目录
前言 xxiii
第1 章 为什么使用Laravel 1
为什么要使用框架 1
“自己动手做” 2
一致性和灵活性 2
Web 和PHP 框架的简史 2
Ruby on Rail 2
PHP 框架的涌入 3
CodeIgniter 的优点与缺点 3
Laravel 1、Laravel 2 和Laravel 3 3
Laravel 4 4
Laravel 5 4
Laravel 有什么特别之处 4
Laravel 的哲学 4
Laravel 如何让开发者快乐 5
Laravel 社区 6
它是如何工作的 6
为什么使用Laravel 9
第2 章 搭建Laravel 的开发环境 11
系统要求 11
Composer 11
本地开发环境 12
Laravel Valet 12
Laravel Homestead 13
创建一个新的Laravel 项目 17
使用Laravel 安装工具来安装Laravel 17
通过Composer 的create-project 来安装Laravel 17
Laravel 的目录结构 18
文件夹 18
文件 19
配置 19
启动和运行 20
测试 21
本章小结 21
第3 章 路由和控制器 23
路由定义 23
路由处理 25
路由参数 26
路由名称 27
路由组 30
中间件 30
路径前缀 31
子域名路由 32
命名空间前缀 33
名称前缀 33
视图 33
使用视图Composers 在每个视图中共享变量 35
控制器 35
获取用户输入 38
将依赖注入控制器 39
资源控制器 40
路由模型绑定 42
隐式路由模型绑定 42
自定义路由模型绑定 43
路由缓存 44
表单方法欺骗(Form Method Spoofing) 44
HTTP 动词的介绍 44
Laravel 中的HTTP 动词 45
在HTML 表单中进行HTTP 方法欺骗 45
CSRF 保护 45
重定向 47
redirect()->to() 48
redirect()->route() 48
redirect()->back() 49
其他重定向方法 49
redirect()->with() 49
中止请求 51
自定义响应 51
response()->make() 51
response()->json() 和->jsonp() 52
response()->download() 和->file() 52
测试 52
本章小结 53
第4 章 Blade 模板 55
输出数据 56
控制结构 56
条件语句 57
循环语句 57
or 59
模板继承 60
用@section/@show 和@yield 定义Section 60
@parent 62
@include 62
@each 63
视图Composer 和服务注入 63
用视图Composer 绑定数据到视图 64
Blade 服务注入 67
自定义Blade 指令 68
自定义Blade 指令中的参数 69
示例:对多租户应用程序(Multitenant App)使用自定义Blade 指令70
测试 71
本章小结 72
第5 章 前端组件 73
Elixir 73
Elixir 文件夹结构 75
运行Elixir 75
Elixir 提供了什么 76
分页 82
分页数据库结果 82
手动创建分页 83
消息包 84
错误包命名 85
字符串助手、多元化和本地化 86
字符串助手和多元化 86
本地化 87
测试 89
用Elixir 进行测试 89
测试消息包和错误包 90
翻译和本地化 90
本章小结 90
第6 章 收集和处理用户数据 91
注入请求对象 91
$request->all() 92
$request->except() 和 $request->only() 92
$request->has() 与$request->exists() 93
$request->input() 93
数组输入 94
JSON 输入($request->json()) 94
路由数据 96
通过Request 实现 96
通过路由参数实现 96
上传的文件 96
验证 99
在控制器中使用ValidatesRequests 的validate() 方法 99
手动验证 102
显示验证错误信息 102
表单请求 103
创建表单请求 103
使用表单请求 104
Eloquent 模型质量分配 105
{{ 与 {!! 106
测试 106
本章小结 107
第7 章 Artisan 和Tinker 109
Artisan 入门 109
Artisan 的基本命令 110
选项 110
组合命令 111
书写常见的Artisan 命令 113
注册命令 115
示例命令 116
参数和选项 117
输入 118
提示 120
输出 121
在其他代码中调用Artisan 命令 122
Tinker 123
测试 124
本章小结 125
第8 章 数据库和Eloquent 127
配置 127
数据库连接 127
其他数据库配置选项 129
迁移 129
定义迁移 129
运行迁移 137
填充 138
创建填充器 138
模型工厂 139
查询构造器 143
DB Facade 的基本使用 143
原始SQL 语句 144
查询构造器链 145
事务 153
Eloquent 入门 154
新建和定义Eloquent 模型 156
通过Eloquent 获取数据 157
Eloquent 的插入和更新 159
Eloquent 中的删除 162
作用域 164
自定义与访问器、修改器和属性转换器的字段交互 167
Eloquent 集合 171
Eloquent 序列化 173
Eloquent 关系 175
通过子类更新父类时间戳 186
Eloquent 事件 188
测试 189
本章小结 191
第9 章 用户认证和授权 193
用户模型和迁移 194
使用auth() 全局助手和认证Facade 197
Auth 控制器 197
RegisterController 197
LoginController 199
ResetPasswordController 200
ForgotPasswordController 200
Auth::routes() 200
认证脚手架(Auth Scaffold) 201
“记住我” 202
手动认证用户 203
认证中间件 204
保护 204
修改默认保护 205
在不改变默认情况下使用其他保护 205
添加新的保护 205
创建自定义用户提供器 206
为非关系型数据库自定义用户提供器 207
认证事件 207
授权(ACL)和角色 208
定义授权规则 208
Gate facade(和注入Gate) 209
Authorize 中间件 210
控制器授权 210
检查用户实例 212
Blade 检查 213
插入检查 213
政策 214
测试 216
本章小结 218
第10 章 请求和响应 221
Laravel 请求的生命周期 221
引导应用程序 222
服务提供者 223
Request 对象 224
在Laravel 中获取请求对象 225
获取请求的基本信息 225
本书从基础开始详细地讲解了Laravel开发框架。本书对Laravel框架进行了系统的介绍,包括Laravel的背景、Laravel开发环境的搭建、路由与控制器、Blade模板、前端组件、收集和处理用户数据、Artisan和Tinker、数据库和Eloquent、容器、Laravel测试等知识。通过阅读本书,读者可以比较全面地学习并掌握Laravel开发的相关理论知识。另外,书中涵盖大量实例,更有利于读者在学习过程中不断实践。
Matt Stauffer,既是一名开发者,也是一位教师。他是Tighten Co. 和合伙人兼技术总监,主办过The Five-Minute Geek Show和Laravel Podcast。博客地址是http://mattstauffer.co/。
韦玮,重庆韬翔网络科技有限公司董事长兼CEO,《精通Python网络爬虫》作者,CSDN特邀IT专家,51CTO学院特约专家讲师,《知道日报》特约作者,国家工信部高级网络营销师,蜻蜓FM独家签约主播,国家专利发明人,多年IT从业经验,曾出品发明过多门IT课程并获得大量学员的支持与喜爱。
作为一个已经有一定 PHP 开发经验的开发者,我尝试了很多不同的框架,但总觉得它们在某些方面不够完善,或者学习曲线过于陡峭。Laravel 的出现,确实改变了我对 PHP 开发的看法。这本书非常出色地展现了 Laravel 的强大之处,从路由的优雅定义,到视图的灵活渲染,再到控制器的数据处理,都显得井井有条。我特别喜欢书中关于“Blade 模板引擎”的讲解,它比传统的 PHP 字符串拼接方式更加安全、高效,而且支持模板继承和组件化,让视图层的开发变得异常轻松。书中还详细介绍了 Laravel 的“表单验证”机制,这使得用户输入的安全性得到了很好的保障,省去了我不少手动校验的麻烦。另外,关于“API 开发”的部分,书中给出了非常实用的指导,如何使用 Laravel Passport 实现 OAuth2 认证,如何构建 RESTful API,这些内容对于我构建前后端分离的应用非常有帮助。这本书的排版也很清晰,代码示例完整且可运行,让我能够一边阅读一边实践,加深理解。
评分这本书真是让我眼前一亮,在接触 Laravel 之前,我一直觉得 PHP 开发效率不高,各种框架也是参差不齐,用起来总感觉缺了点什么。直到我翻开了这本书,才发现 Laravel 框架的魅力所在。它提供了一种非常优雅的方式来组织代码,遵循 MVC 架构,让我的项目结构更加清晰,可维护性大大提高。特别是书里对 Artisan 命令行工具的介绍,简直是开发者的福音,各种生成命令、数据库迁移、代码的调试都变得轻而易举。而且,书中还详细讲解了 Eloquent ORM,它真的太好用了!写 SQL 语句的繁琐和易错在 Eloquent 面前荡然无存,用对象的方式操作数据库,既直观又安全。我特别喜欢书中关于“服务容器”的章节,它让依赖注入变得如此简单,并且能够更好地管理和复用代码,这对于构建大型、复杂的应用来说至关重要。整本书的行文流畅,例子也非常贴合实际开发场景,很多地方我都能立刻联想到自己项目中遇到的问题,并且找到了解决方案。阅读过程非常愉快,感觉自己对 PHP 开发的理解又上了一个台阶,对未来的项目开发充满了信心。
评分我一直对软件架构设计非常感兴趣,也一直在寻找能够帮助我构建可扩展、可维护的系统的方法。这本书在讲解 Laravel 框架的同时,巧妙地融入了许多架构设计的思想。它不仅仅是关于如何使用 Laravel 的功能,更重要的是,它教我如何“思考”如何构建一个好的 Laravel 应用。书中关于“模块化开发”的讲解,让我明白了如何将大型项目拆分成更小的、可管理的模块,这大大提高了团队协作的效率。而且,它还强调了“代码复用”的重要性,并通过各种设计模式和 Laravel 内置的组件,展示了如何有效地实现代码复用。我尤其赞赏书中对“测试驱动开发(TDD)”的介绍,它让我认识到编写单元测试和集成测试对于保证代码质量和项目稳定性有多么重要。通过书中提供的测试示例,我能够快速上手,并开始在自己的项目中引入测试。这本书让我意识到,构建一个优秀的应用,不仅需要掌握一门框架,更需要具备良好的架构设计能力,而 Laravel 恰恰是实现这种能力的绝佳载体。
评分我原本以为对于 Laravel 这种流行的框架,市面上已经有很多同质化的教程了,但这本书的深度和广度还是超出了我的预期。它不仅仅停留在基本语法的讲解,更深入地探讨了 Laravel 的核心设计理念,比如“约定优于配置”的原则,以及 Laravel 如何通过各种“魔法”来简化开发者的工作。书中对“中间件”的讲解让我印象深刻,理解了它是如何处理 HTTP 请求的,以及如何利用它来实现认证、日志记录、CSRF 防护等功能。而且,它还花了很大的篇幅来讲解 Laravel 的“事件与监听器”机制,这对于解耦应用的不同部分、实现异步处理非常有帮助。我尤其赞赏书中关于“队列”的章节,它解决了我在高并发场景下,一些耗时任务影响用户体验的问题。通过异步处理,用户可以更快地得到响应,而后台的任务可以按部就班地完成。书中还提到了一些高级的性能优化技巧,这对于我正在负责的项目来说,非常有借鉴意义。总的来说,这本书不是那种“看完就能上手”的快餐式教程,它更像是一本“指导你深入理解 Laravel”的宝典,能够帮助开发者构建出更健壮、更高效的应用程序。
评分这次阅读体验让我受益匪浅,感觉自己仿佛打开了一扇新的大门。这本书的逻辑非常清晰,循序渐进,从最基础的概念讲起,逐步深入到更高级的主题。我特别喜欢书中关于“认证与授权”的章节,它详细讲解了 Laravel Sanctum 如何方便地管理 API 认证,以及如何通过 Laravel Gates 和 Policies 来实现精细化的权限控制,这对于构建需要多用户、多角色的复杂系统至关重要。书中还提到了“多语言支持”的实现,让我能够更轻松地为我的应用添加多国语言版本。还有一个亮点是关于“缓存”的讲解,它让我认识到了缓存对于提升应用性能的关键作用,并且学会了如何在 Laravel 中有效地使用 Redis 等缓存技术。这本书的语言风格也很亲切,不像一些技术书籍那样枯燥乏味,读起来有种和经验丰富的开发者交流的感觉。很多时候,我都会在书中找到对某个功能的“为什么”的解释,而不是仅仅停留在“怎么做”的层面,这让我对 Laravel 的理解更加透彻。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有