Laravel入门与实战:构建主流PHP应用开发框架
  • 推荐1
  • 收藏3
  • 浏览1.9K

Laravel入门与实战:构建主流PHP应用开发框架

Matt Stauffer (作者)  韦玮 (译者) 杨嘉媛 (责任编辑)

  • 书  号:978-7-121-33611-9
  • 出版日期:2018-04-01
  • 页  数:440
  • 开  本:16(178*233)
  • 出版状态:上市销售
  • 原书名: Laravel: Up and Running: A Framework for Building Modern PHP Apps
  • 原书号:9781491936085
  • 维护人:孙奇俏
电子书 ¥78.00
购买电子书
纸质版 ¥108.00
本书从基础开始详细地讲解了Laravel开发框架。本书对Laravel框架进行了系统的介绍,包括Laravel的背景、Laravel开发环境的搭建、路由与控制器、Blade模板、前端组件、收集和处理用户数据、Artisan和Tinker、数据库和Eloquent、容器、Laravel测试等知识。通过阅读本书,读者可以比较全面地学习并掌握Laravel开发的相关理论知识。另外,书中涵盖大量实例,更有利于读者在学习过程中不断实践。
宇宙至强语言PHP的“全栈”框架:前沿、主流、高效、全面!教授初学者Laravel框架的基础知识,带给Laravel熟练者更多的最佳实践!
韦玮,重庆韬翔网络科技有限公司董事长兼CEO,《精通Python网络爬虫》作者,CSDN特邀IT专家,51CTO学院特约专家讲师,《知道日报》特约作者,国家工信部高级网络营销师,蜻蜓FM独家签约主播,国家专利发明人,多年IT从业经验,曾出品发明过多门IT课程并获得大量学员的支持与喜爱。
前言
一个很常见的问题是,应该如何学习Laravel ?尽管已经写了很多年的PHP 程序,但是我不想闭门造车,我想更好地学习Rails 的强大特性,也想学习其他先进的Web 框架。
Rails 有一个非常活跃的社区,完美结合了默认配置及其灵活性,并且具有Ruby Gems的能力来提高预包装的常用代码。
我曾经也很犹豫是否要继续使用PHP,直到知道了Laravel,我才坚定信心。Laravel具备Rails 所有的特性,但它不仅仅是Rails 的一个副本,更是一个全新的Web 框架。
Laravel 提供了非常完善的文档、开放的交流社区,还继承了许多现有的语言和框架。当我在博客和会议中分享Laravel 的学习经验时,我已经使用Laravel 开发了几十个应用程序和项目,并且可以在线或者面对面与成千上万名Laravel 开发者进行交流。我的工具箱中已经有很多种开发工具了,但是当打开命令行终端,输入laravel new project 时,我还是会感到非常激动。
关于本书
这并不是第一本关于Laravel 的书,也不会是最后一本。我不打算让它成为一本涵盖每一行代码或实现模式的书。我也并不希望它一定要与现在最新版本的Laravel 保持一致。
相反,我编写本书的主要目的是提供一个高阶的概述和具体的例子,帮助开发者更快地学习Laravel。我希望能帮助读者理解Laravel 背后的基本概念,而不是单纯讲解文档。
Laravel 是一个强大且灵活的PHP 框架。它拥有发展迅速的社区、丰富的开发工具,这些特性都让Laravel 越来越受欢迎。本书旨在帮助已经知道如何开发网站和应用程序的开发者学习如何在Laravel 中进行开发。
Laravel 的官方文档非常清晰明了,如果读者对一些特定的内容感兴趣,但本书中又没有进行深入讲解,那么建议读者参考Laravel 的在线文档进行深入学习。
本书不仅对知识点进行概述,也提供了相应的实例。在学习完本书后,相信读者便可以使用Laravel 从头开始实现一个完整的应用程序了。希望本书能激发大家动手操作的兴趣。
目标读者
读者要具备基本的面向对象编程基础,了解PHP(或者至少是C 语言的一般语法),以及模型- 视图- 控制器(MVC)开发模式和模板的基本概念。如果从来没有开发过网站,那么可能会觉得本书的内容比较难懂。但是只要有一定的编程基础,就不需要在阅读本书之前了解Laravel——我们会在本书中从“Hello, world!”开始,覆盖所有需要了解的内容。
本书结构
本书按照时间顺序编写:如果正在使用Laravel 构建第一个Web 应用程序,那么前面的章节将介绍开始时需要使用的基本组件,后面的章节将更深入地介绍知识点及对应的具体实例。
本书的每一部分都可以单独阅读,但是也力图使章节之间的联系更加紧密,以便刚接触框架的读者能够从头到尾顺畅地进行阅读和学习。
每章节的最后都包括“测试”和“本章小结(TL;DR)”,TL;DR 表示“长话短说”。这两部分将展示如何测试对应章节中讲过的方法,并对所涵盖的内容进行高阶概述。
本书基于Laravel 5.3 版本,但是因为Laravel 5.1 是最新的LTS 版本,所以Laravel 5.2或Laravel 5.3 中的新功能将被标记出来。

目录

目录
前言 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
持久性 ......................................................................................................... 228
Response 对象 .................................................................................................... 228
在容器中使用和创建Response 类 .............................................................. 229
特殊的响应类型 .......................................................................................... 230
Laravel 和中间件 ............................................................................................... 233
中间件入门 ................................................................................................. 233
创建自定义中间件 ...................................................................................... 234
绑定中间件 ................................................................................................. 236
向中间件传参 .............................................................................................. 239
测试 ................................................................................................................... 240
本章小结 ............................................................................................................ 241
第11 章 容器 ..........................................................................243
依赖注入简介 .................................................................................................... 243
依赖注入和Laravel ............................................................................................ 245
app() 全局助手 ................................................................................................... 245
容器如何连接 .................................................................................................... 246
将类绑定到容器 ................................................................................................. 247
绑定到闭包 ................................................................................................. 247
绑定单例模式、别名和实例 ....................................................................... 248
将具体实例绑定到接口 ............................................................................... 249
语境绑定 ..................................................................................................... 250
构造器注入 ........................................................................................................ 250
方法注入 ............................................................................................................ 251
facade 与容器 ..................................................................................................... 252
facade 如何工作 .......................................................................................... 252
服务提供者 ........................................................................................................ 254
测试 ................................................................................................................... 254
本章小结 ............................................................................................................ 255
第12 章 测试 ..........................................................................257
测试基础 ............................................................................................................ 258
命名测试 ............................................................................................................ 260
测试环境 ............................................................................................................ 261
测试特性 ............................................................................................................ 262
WithoutMiddleware ..................................................................................... 262
数据库迁移 ................................................................................................. 262
数据库事务 ................................................................................................. 263
应用程序测试 .................................................................................................... 263
测试用例 ..................................................................................................... 263
“访问”路径 ................................................................................................ 264
自定义应用测试断言 ................................................................................... 266
JSON 和Non-visit() 应用测试断言 ............................................................. 267
点击和表单 ................................................................................................. 271
任务和事件 ................................................................................................. 273
认证和会话 ................................................................................................. 273
Artisan 和Seed................................................................................................... 274
mock(模拟) ..................................................................................................... 275
Mockery ...................................................................................................... 275
模拟facade .................................................................................................. 278
本章小结 ............................................................................................................ 279
第13 章 编写API ....................................................................281
类REST JSON API 基础 .................................................................................... 281
控制器组织和JSON 返回 .................................................................................. 282
读取和发送头 .................................................................................................... 286
在Laravel 中发送响应头 ............................................................................ 287
在Laravel 中读取请求头 ............................................................................ 287
Eloquent 分页 ..................................................................................................... 287
排序和筛选 ........................................................................................................ 289
对API 结果排序 .......................................................................................... 289
过滤API 结果 ............................................................................................. 291
数据转换 ............................................................................................................ 292
编写自己的转换器 ...................................................................................... 292
嵌套和关系 ........................................................................................................ 293
使用Laravel Passport 的API 认证 ..................................................................... 295
OAuth2.0 简介 ............................................................................................. 295
安装Passport ............................................................................................... 296
Passport 的API ........................................................................................... 297
Passport 可用的授权类型 ............................................................................ 298
使用Passport API 和Vue 组件管理客户端和令牌 ...................................... 305
Passport 作用域 ........................................................................................... 307
Laravel 5.2 以上版本的API 令牌认证 ............................................................... 309
测试 ................................................................................................................... 310
本章小结 ............................................................................................................ 311
第14 章 存储和检索 ................................................................313
本地和云端文件管理器 ...................................................................................... 313
配置文件访问 .............................................................................................. 313
使用存储facade .......................................................................................... 314
添加额外的Flysystem 提供商 ..................................................................... 316
基本的文件上传和操作 ...................................................................................... 317
会话 ................................................................................................................... 318
访问会话 ..................................................................................................... 318
会话实例的可用方法 ................................................................................... 319
闪存会话存储 .............................................................................................. 321
高速缓存器cache ............................................................................................... 321
访问高速缓存 .............................................................................................. 322
Cache 实例中可用的方法 ............................................................................ 322
cookie ................................................................................................................. 324
Laravel 中的cookie ..................................................................................... 324
访问cookie 工具 ......................................................................................... 324
基于Laravel Scout 全文搜索 ............................................................................. 327
安装Scout ................................................................................................... 327
标记索引模型 .............................................................................................. 327
索引检索 ..................................................................................................... 328
队列和Scout ............................................................................................... 328
执行无索引操作 .......................................................................................... 328
通过代码手动触发索引 ............................................................................... 329
利用CLI 手动触发索引 .............................................................................. 329
测试 ................................................................................................................... 329
文件存储 ..................................................................................................... 329
会话 ............................................................................................................. 331
高速缓存 ..................................................................................................... 332
cookie .......................................................................................................... 332
本章小结 ............................................................................................................ 334
第15 章 邮件和通知 ................................................................335
邮件 ................................................................................................................... 335
“classic”邮件 ............................................................................................. 336
基本“mailable”邮件................................................................................. 336
邮件模版 ..................................................................................................... 339
build() 中可用的方法 .................................................................................. 339
附件和内联图片 .......................................................................................... 340
队列 ............................................................................................................. 341
本地开发 ..................................................................................................... 342
通知 ................................................................................................................... 344
为通知对象定义via() 方法 ......................................................................... 346
发送通知 ..................................................................................................... 347
排队通知 ..................................................................................................... 348
开箱即用的通知类型 ................................................................................... 348
测试 ................................................................................................................... 351
邮件 ............................................................................................................. 351
通知 ............................................................................................................. 352
本章小结 ............................................................................................................ 352
第16 章 队列,任务,事件,广播及调度程序 ...........................353
队列 ................................................................................................................... 353
为什么使用队列 .......................................................................................... 354
基本队列配置 .............................................................................................. 354
列队任务 ..................................................................................................... 354
运行队列工作者 .......................................................................................... 358
错误处理 ..................................................................................................... 358
控制队列 ..................................................................................................... 361
支持其他功能的队列 ................................................................................... 361
事件 ................................................................................................................... 362
触发事件 ..................................................................................................... 362
监听事件 ..................................................................................................... 364
通过WebSocket 广播事件及Laravel Echo ........................................................ 367
配置和设置 ................................................................................................. 368
广播事件 ..................................................................................................... 368
接收消息 ..................................................................................................... 371
高级广播工具 .............................................................................................. 372
Laravel Echo(JavaScript 方面).................................................................. 376
调度程序 ............................................................................................................ 379
可用任务类型 .............................................................................................. 380
可用时间框架 .............................................................................................. 380
阻塞和重叠 ................................................................................................. 382
处理任务输出 .............................................................................................. 382
任务钩子 ..................................................................................................... 383
测试 ................................................................................................................... 384
本章小结 ............................................................................................................ 385
第17 章 助手和集合 ................................................................387
助手 ................................................................................................................... 387
数组 ............................................................................................................. 387
字符串 ......................................................................................................... 389
应用路径 ..................................................................................................... 391
URL ............................................................................................................. 392
Misc(宏指令结构技术体系) ..................................................................... 394
集合 ................................................................................................................... 397
集合的基础 ................................................................................................. 397
几种方法 ..................................................................................................... 399
本章小结 ............................................................................................................ 404
词汇表 ......................................................................................405

本书勘误

印次
  • 页码:202  •  行数:4  •  印次: 1

    错误
    只需要运行 artisan的make:autg命令,就可以使用以下的文件了。
    应改为
    只需要运行 artisan的make:auth命令,就可以使用以下的文件了。

    yukaige 提交于 2018/9/21 22:26:25
    孙奇俏 确认于 2019/2/20 16:13:15

读者评论

电子书版本

  • Epub

推荐用户

相关图书

看漫画学Python:有趣、有料、好玩、好用(全彩修订版)

关东升 赵大羽 (作者)

ython是一门既简单又强大的编程语言,被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要,成为国家计算机等...

 

看漫画学Python 2:有趣、有料、好玩、好用(全彩进阶版)

关东升 ,赵大羽 (作者)

本书是《看漫画学Python》的进阶版本,继续秉承有趣、有料、好玩、好用的理念,并继续采用《看漫画学Python》一书中3个不同的漫画人物角色,通过这3个角色之...

 

趣玩Python:自动化办公真简单(双色+视频版)

本书以数据收集→数据清洗→数据分析→数据可视化→根据数据可视化结果(即图表)做决策为脉络,介绍Python在实际工作场景中的应用,侧重于用Python解决工作中...

 

软件交付通识

董越 (作者)

软件交付过程是指在编程序改代码之后,直到将软件发布给用户使用之前的一系列活动,如提交、集成、构建、部署、测试等。本书作为通识类图书,对软件交付过程的各个方面进行...

¥89.00

分布式系统与一致性

陈东明 (作者)

一致性是非常重要的分布式技术。众所周知,分布式系统有很多特性,如可用性、可靠性等,这些特性多多少少会与一致性产生关系,受到一致性的影响。要全面研究、掌握分布式技...

¥79.00

人人都是产品经理(案例版):淘宝十年产品事

陶英琪 (作者)

做产品经理需要不断成长。然而回顾漫长的产品发展史,我们总会发现:有太多犯过的错误在反复出现,每一次都会有人掉入同样的“坑”。大量看似充满新意的点子、“前无古人”...

¥69.00