课程目录
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)





