课程目录

1-1 [Symfony介绍与环境安装] Symfony介绍 (03:40)
1-2 [Symfony介绍与环境安装] 安装运行环境并初始化Symfony项目 (05:59)
2-1 [HTTP协议和Symfony处理请求的流程] 使用Controller创建第一个页面 (07:23)
2-2 [HTTP协议和Symfony处理请求的流程] Symfony处理http请求的流程 (09:53)
2-3 [HTTP协议和Symfony处理请求的流程] http请求的query参数 (09:33)
2-4 [HTTP协议和Symfony处理请求的流程] 路径中的占位符-路由参数 (05:57)
3-1 [测试驱动开发和Doctrine(ORM)组件] 使用docker的mysql容器服务 (04:58)
3-2 [测试驱动开发和Doctrine(ORM)组件] 安装orm组件 (04:09)
3-3 [测试驱动开发和Doctrine(ORM)组件] 测试驱动开发(TDD)介绍 (04:13)
3-4 [测试驱动开发和Doctrine(ORM)组件] 创建第一个单元测试 (09:10)
3-5 [测试驱动开发和Doctrine(ORM)组件] 为文章添加评论功能添加Comment类 (01:45)
3-6 [测试驱动开发和Doctrine(ORM)组件] 为文章类和评论类添加关联关系 (04:55)
3-7 [测试驱动开发和Doctrine(ORM)组件] PostFactory文章工厂 (05:22)
3-8 [测试驱动开发和Doctrine(ORM)组件] 优化PostFactory类 (05:26)
3-9 [测试驱动开发和Doctrine(ORM)组件] Mock替身 (02:46)
3-10 [测试驱动开发和Doctrine(ORM)组件] 使用Mock修复测试代码 (05:40)
3-11 [测试驱动开发和Doctrine(ORM)组件] 使用命令行创建Entity类对应的数据库表 (03:12)
3-12 [测试驱动开发和Doctrine(ORM)组件] 测试环境下使用数据库 (02:31)
3-13 [测试驱动开发和Doctrine(ORM)组件] 集成测试 (13:49)
3-14 [测试驱动开发和Doctrine(ORM)组件] 继续修改集成测试代码 (07:04)
3-15 [测试驱动开发和Doctrine(ORM)组件] 使用setUp方法在每个测试方法前清除数据库 (04:36)
3-16 [测试驱动开发和Doctrine(ORM)组件] Repository类的4个查询方法 (03:40)
3-17 [测试驱动开发和Doctrine(ORM)组件] Doctrine QueryBuilder对象介绍 (11:27)
3-18 [测试驱动开发和Doctrine(ORM)组件] Doctrine Query Language(DQL) (03:40)
3-19 [测试驱动开发和Doctrine(ORM)组件] 安装orm-fixtures组件 (05:13)
4-1 [使用EasyAdminBundle添加管理端和Twig模板] 使用EasyAdminBundle管理端 (06:26)
4-2 [使用EasyAdminBundle添加管理端和Twig模板] 配置PostCrudController创建文章管理页面 (13:13)
4-3 [使用EasyAdminBundle添加管理端和Twig模板] 配置CommentCrudController创建评论管理页 (03:04)
4-4 [使用EasyAdminBundle添加管理端和Twig模板] Twig模板引擎安装 (01:36)
4-5 [使用EasyAdminBundle添加管理端和Twig模板] 博客首页路由 (03:52)
4-6 [使用EasyAdminBundle添加管理端和Twig模板] 完成首页的controller方法 (02:13)
4-7 [使用EasyAdminBundle添加管理端和Twig模板] Twig的基本用法并完成首页显示 (03:32)
4-8 [使用EasyAdminBundle添加管理端和Twig模板] 功能测试 (03:51)
4-9 [使用EasyAdminBundle添加管理端和Twig模板] 修复页面问题 (10:29)
4-10 [使用EasyAdminBundle添加管理端和Twig模板] 文章详情页 (06:54)
5-1 [评论表单及分页功能] 创建评论表单类CommentType (06:52)
5-2 [评论表单及分页功能] 处理评论表单数据提交 (09:39)
5-3 [评论表单及分页功能] 安装encore组件使用webpack (08:50)
5-4 [评论表单及分页功能] html模板转换为twig模板 (11:22)
5-5 [评论表单及分页功能] 评论表单的样式和评论列表的显示 (10:10)
5-6 [评论表单及分页功能] 使用功能测试测试评论表单的提交 (06:18)
5-7 [评论表单及分页功能] 评论的嵌套单表一对多关系 (03:52)
5-8 [评论表单及分页功能] 添加回复评论controller方法 (07:52)
5-9 [评论表单及分页功能] FosJsRoutingBundle的使用 (05:10)
5-10 [评论表单及分页功能] 处理回复评论表单的提交 (08:47)
5-11 [评论表单及分页功能] 修复回复评论表单框的BUG (05:41)
5-12 [评论表单及分页功能] 评论的回复层级控制 (05:27)
5-13 [评论表单及分页功能] 安装Panther使用真的浏览器进行测试 (03:04)
5-14 [评论表单及分页功能] 编写Panther测试代码 (09:55)
5-15 [评论表单及分页功能] 分页前的准备创建一些假的文章数据 (03:45)
5-16 [评论表单及分页功能] 创建一些假的评论数据 (07:39)
5-17 [评论表单及分页功能] 文章列表的分页 (10:51)
5-18 [评论表单及分页功能] 使用KnpPaginatorBundle对评论列表分页 (07:00)
5-19 [评论表单及分页功能] 页码器的国际化 (03:36)
5-20 [评论表单及分页功能] 使用Flash消息添加页面反馈 (02:59)
5-21 [评论表单及分页功能] 添加文件上传FileManaged类 (03:51)
5-22 [评论表单及分页功能] JoinTable的方式实现单向一对多 (03:46)
5-23 [评论表单及分页功能] CollectionType和表单行模板的覆盖 (06:38)
5-24 [评论表单及分页功能] 文件上传dom事件处理 (04:48)
5-25 [评论表单及分页功能] 处理文件上传提交的数据 (06:08)
5-26 [评论表单及分页功能] 修复回复评论表单框文件上传按钮BUG (05:14)
5-27 [评论表单及分页功能] 自定义文件上传表单类型 (04:29)
5-28 [评论表单及分页功能] 表单的事件 (06:17)
5-29 [评论表单及分页功能] LiipImagineBundle评论图片的自动裁剪 (04:08)
5-30 [评论表单及分页功能] 集成lightbox2库 (03:11)
5-31 [评论表单及分页功能] 管理端评论列表显示图片 (10:51)
5-32 [评论表单及分页功能] Doctrine生命周期事件 (01:35)
5-33 [评论表单及分页功能] Post类的日期属性调整 (05:48)
5-34 [评论表单及分页功能] 评论列表子评论post属性的显示 (05:54)
5-35 [评论表单及分页功能] 修复父评论删除时子评论同时删除的问题 (07:31)
6-1 [表单验证与事件处理] 表单验证 (08:04)
6-2 [表单验证与事件处理] 自定义验证器 (10:10)
6-3 [表单验证与事件处理] 评论内容过滤 (08:48)
6-4 [表单验证与事件处理] 自定义事件订阅器 (05:07)
6-5 [表单验证与事件处理] 事件处理的优先级和GenericEvent (06:08)
6-6 [表单验证与事件处理] 管理端删除评论后删除评论图片 (12:02)
7-1 [安全系统] 为安全系统创建用户类 (05:08)
7-2 [安全系统] 使用Fixtures创建管理员用户 (04:26)
7-3 [安全系统] 创建用户登录表单认证器 (04:51)
7-4 [安全系统] 用户登录认证流程 (05:46)
7-5 [安全系统] Remember me设置 (02:52)
7-6 [安全系统] 防止暴力登录 (02:07)
7-7 [安全系统] UserChecker (08:38)
7-8 [安全系统] 用户的授权 (05:37)
7-9 [安全系统] 管理端的权限验证 (04:07)
7-10 [安全系统] Symfony内置的权限属性 (06:59)
7-11 [安全系统] 角色继承 (06:08)
7-12 [安全系统] 管理端权限调整 (07:46)
7-13 [安全系统] 自定义Voter (08:50)
7-14 [安全系统] 优化管理端文章列表的按钮 (03:55)
7-15 [安全系统] Voter的策略 (04:06)
7-16 [安全系统] 管理端添加文章时自动设置作者 (02:56)
8-1 [国际化] 国际化 (02:29)
8-2 [国际化] Flash消息的国际化 (09:25)
8-3 [国际化] twig的trans过滤器 (03:25)
8-4 [国际化] path路径中的_locale占位符参数 (04:43)
9-1 [工作流] 工作流介绍 (04:19)
9-2 [工作流] 定义文章发布工作流 (05:52)
9-3 [工作流] 修改Post类的status属性 (03:09)
9-4 [工作流] 修改管理端使用工作流 (13:53)
9-5 [工作流] 工作流中的权限验证 (05:59)
9-6 [工作流] 使用状态机定义评论的工作流 (05:31)
10-1 [消息队列] 安装mailer组件发送邮件 (07:29)
10-2 [消息队列] 安装messenger组件使用消息队列 (05:15)
10-3 [消息队列] 使用messenger同步发送邮件 (02:05)
10-4 [消息队列] 使用doctrine队列异步发送邮件 (03:05)
10-5 [消息队列] 邮件发送失败时队列的处理流程 (06:13)
10-6 [消息队列] AMQP消息队列-RabbitMQ (04:00)
10-7 [消息队列] AMQP队列的额外知识 (03:23)
11-1 [使用Api Platform组件创建REST API] 了解REST API并安装Api Platform (03:17)
11-2 [使用Api Platform组件创建REST API] 使用ApiResource注解创建文章API (03:39)
11-3 [使用Api Platform组件创建REST API] Jsonld响应格式 (06:14)
11-4 [使用Api Platform组件创建REST API] 修改API的操作 (04:18)
11-5 [使用Api Platform组件创建REST API] normalization与denormalization (10:11)
11-6 [使用Api Platform组件创建REST API] 关联关系数据的嵌套显示 (09:06)
11-7 [使用Api Platform组件创建REST API] 自定义Normalizer (07:20)
11-8 [使用Api Platform组件创建REST API] 修复自定义Normalizer时IRI信息丢失的问题 (10:37)
11-9 [使用Api Platform组件创建REST API] API资源过滤器 (05:30)
11-10 [使用Api Platform组件创建REST API] 自定义文件上传的操作 (14:13)
12-1 [项目优化发布] 项目优化打包发布到服务器上 (05:21)