PHP 全栈工程师指南

PHP 全栈工程师指南

PHP 全栈工程师指南

由 学院君 创建于5年前, 最后更新于 4年前

版本号 #162

58122 views

16 likes

11 collects

课程简介

通过本系列教程的学习,可以帮助你完全掌握 Laravel + Vue.js 的开发,成为一名合格的 PHP 全栈开发工程师。

以下教程图文版会免费提供,以便让更多具有一定自学能力的人可以快速掌握全栈开发技能,这也是学院君坚持更新免费教程的原因 —— 让更多有自学能力的人以更低成本、更高效率掌握编程技能。

本系列教程已经开始更新,你可以关注学院君网站及时了解更新进度,也可以选择升级为学院君订阅用户对学院君进行支持(已订阅用户忽略,含高清视频):

立即升级为学院君订阅用户

本系列教程假设你已经具备基本的 HTML + CSS + JavaScript 知识。参考教程:JavaScript 权威指南。

开篇

为什么学习这套课程

PHP 入门

环境搭建

PHP/Laravel 本地开发环境搭建:Mac 篇

PHP/Laravel 本地开发环境搭建:Windows 篇

增补篇:Windows PHP 本地开发三步曲(一)—— 基于 WSL 在 Windows 中搭建 PHP 本地开发环境

增补篇:Windows PHP 本地开发三步曲(二)—— 在 WSL2 虚拟机中基于 Docker 编排 LNMP 运行环境

选择一款趁手的 PHP 代码编辑器

增补篇:Windows PHP 本地开发三步曲(三)—— PhpStorm 集成 WSL 内的 PHP 进行单元测试和代码调试

增补篇:使用 Visual Studio Code 进行 PHP 开发

编写第一个 PHP 程序

在 HTML 中嵌入 PHP 代码

章节作业:基于 PHP 实现一个博客首页页面(PHP + HTML + CSS)

基本语法

变量与常量

基本数据类型

索引数组与关联数组

运算符

控制结构

函数(上):自定义函数和内置函数

函数(下):匿名函数和作用域

章节作业1:基于上述基本语法重构博客首页页面(PHP + HTML + CSS)

章节作业2:基于 PHP 实现在线计算器应用(PHP + HTML + CSS + JavaScript)

面向对象

类与对象、访问控制

继承、封装与多态

抽象类与接口(上)

抽象类与接口(下)

水平扩展 PHP 类功能(上):对象组合

水平扩展 PHP 类功能(下):Trait

静态属性和方法

魔术方法、序列化与对象复制

错误和异常处理(上)

错误和异常处理(下)

章节作业:基于面向对象编程重构博客系统,包含首页、列表页、详情页,要求引入依赖注入模式、单例模式、适配器模式和工厂模式。目前数据库基于数组驱动模拟实现。

扩展阅读:PHP 设计模式系列

数据库操作

MySQL 入门、安装和客户端管理工具

MySQL 基本使用(上):DDL 和 DML 语句

MySQL 基本使用(下):DCL 和聚合函数

通过 PHP Mysqli 扩展与数据库交互

通过 PDO 扩展与 MySQL 数据库交互(上):基本使用

通过 PDO 扩展与 MySQL 数据库交互(下):增删改查实现和数据库事务

章节作业:为博客系统添加数据库驱动,并基于 MySQL 数据库作为博客应用数据源实现增删改查功能。

HTTP 编程

基于 Nginx + PHP-FPM 作为 HTTP 服务器

获取用户请求数据及文件上传处理

设置 HTTP 响应和文件下载

在 PHP 中使用和管理 Cookie

在 PHP 中使用和管理 Session 并实现简单的用户登录功能

章节作业1:通过 Request、Response 类封装 HTTP 请求和响应,实现在 PHP 原生代码中以面向对象方式进行 HTTP 编程(基于之前的博客系统)

章节作业2:实现一个简单的 HTTP 路由器注册用户请求路由,并通过路由器分发用户请求(基于之前的博客系统)

章节作业3:扩展用户登录功能,将数组模拟数据替换为通过读取数据库数据进行认证(基于之前的博客系统)

额外要求:将上述 Request、Response、Router、Auth 对象示例统一通过 IoC 容器管理,并通过门面模式(Facade)提供它们的静态代理

项目实战

命名空间与类自动加载实现

封装 HTTP 请求和响应类

实现 HTTP 路由器

实现 HTTP 控制器

视图模板引擎的解析和渲染

实现 ORM 模型类

引入 Laravel Mix 管理前端资源

将博客主题替换成 Clean Blog

通过 Ajax 提交表单请求数据

表单数据验证与请求处理

引入 SB Admin 2 作为后台管理系统主题

为后台管理系统添加用户认证功能

为管理后台专辑、文章、消息模块添加增删改查功能

Laravel 入门

路由&控制器

路由入门:路由定义、参数传递及路由命名

路由分组:中间件、路由前缀、子域名及命名空间

控制器:MVC模式、控制器编写、依赖注入、资源控制器

路由进阶:模型绑定、兜底路由、频率限制和路由缓存

表单请求方法伪造 & 跨站请求伪造(CSRF)攻击保护

视图 & Blade 模板

视图入门:基本使用与数据传递

Blade 入门篇:数据渲染 & 控制结构

Blade 进阶篇:模板继承 & 组件引入

Blade 高级篇:View Composer & 自定义指令

前端入门

在 Laravel 项目中使用 Bootstrap 框架

在 Laravel 中编写 Sass 入门教程

在 Laravel 中编写第一个 Vue 组件

通过 Laravel Mix 编译前端资源

基于 Livewire 通过 PHP 编写视图组件

处理用户请求

通过 Request 对象实例获取用户请求数据

通过 Laravel + Vue 组件实现文件异步上传

在 Laravel 控制器中进行表单请求验证

在单独的表单请求类中实现字段验证逻辑

通过匿名函数和验证规则类自定义字段验证规则

Artisan & Tinker

编写第一个 Artisan 命令

编写高级的 Artisan 命令

通过 Tinker 实现 Laravel 命令行交互式 Shell

数据库和 Eloquent

连接配置和读写分离

通过迁移创建数据表

通过填充器快速填充数据

查询构建器入门:数据库增删改查

查询构建器进阶:构建复杂的查询语句

Eloquent 模型入门:实现增删改查操作

Eloquent 模型进阶:批量赋值与软删除

Eloquent 模型进阶:访问器与修改器

Eloquent 模型进阶:查询作用域(全局、局部、动态)

Eloquent 模型进阶:模型事件及监听方式

Eloquent 模型进阶:关联关系(上)

Eloquent 模型进阶:关联关系(中)

Eloquent 模型进阶:关联关系(下)

结合 Bootstrap + Vue 组件实现异步分页

项目实战

基于 Laravel + Vue 构建一个类似 Twitter 的 Web 应用

API 接口开发:基于 Laravel 构建 & 测试 RESTful API

API 接口开发:结合 Laravel 5.5 和 Vue SPA 基于 jwt-auth 实现 API 认证

API 接口开发:使用 API Resource 来创建自己的 {JSON:API} 格式 API

工具系列

玩转 PhpStorm

一、主题篇:主题切换、自定义和安装第三方主题

二、代码导航篇:通过快捷键实现 PHP 代码的全局导航和上下文导航

三、插件篇:第三方插件的安装、使用和卸载

四、快捷键篇:快捷键预览、切换和自定义

五、代码模版篇:灵活使用代码模板功能提高编码效率

六、代码重构篇:通过代码重构提高代码复用性

七、小技巧篇:一些提高工作效率的小技巧(多处修改、分割窗口、搜索作用域)

八、Vim篇:基于 IdeaVim 插件模拟 Vim 编辑器进行编码

九、代码调试篇(上):基于 Xdebug 调试 PHP CLI 应用

十、代码调试篇(下):基于 Xdebug 调试 PHP Web 应用

十一、编码风格篇:使用 PHP CS Fixer 统一团队编码风格

十二、单元测试篇:基于 PHPUnit 进行单元测试

Vue 入门

基础语法

数据绑定基本实现与代码分析

使用 Vue.js Devtools 作为调试工具

列表渲染的基本使用和动态调整

事件监听和异步处理实现示例

属性和类名绑定的使用示例

通过计算属性动态设置属性值

组件开发

快速入门:基本使用和组件嵌套

组件通信:父子组件之间的数据传递和事件监听

组件插槽:父子组件之间的内容分发和插槽作用域

Vue Loader 篇(上):基于 Vue CLI 初始化原型项目

Vue Loader 篇(下):编写一个单文件 Vue 组件

在 Laravel 项目中编写单文件 Vue 组件

通过 Axios 发送 Ajax 请求获取接口数据渲染组件

组件实战

Laravel 组件开发快速入门(上):基于 Inertia + Vue 技术栈编写表单组件

Laravel 组件开发快速入门(下):基于 Livewire + Blade 技术栈编写表单组件

以下开始介绍如何在 Laravel 8 中基于纯 Vue 框架编写表单组件:

前奏篇(一):ES2015 新特性一览

前奏篇(二):Tailwind 与 Bootstrap 的区别和使用入门

在 Laravel 中基于 Vue + Bootstrap 快速开发表单组件

通过 ES6 新语法对 Vue 表单组件进行面向对象重构

通过 props 和 Vue 原型实例在不同组件之间共享数据状态

SOLID 原则在 Vue 组件开发中的应用:将单个表单组件拆分成可复用的子组件组合

基于子组件构建列表组件并实现视图模式切换功能

通过 Vue 过滤器对模型属性值进行格式化

基于 Laravel 8 模型工厂快速生成后端接口测试数据

基于 Laravel + Vue 组件实现文章发布、编辑和浏览功能

基于 Bootstrap + Vue 框架编写模态框组件并完成文章删除功能

为 Vue 模态框组件的打开关闭添加过渡/动画效果

基于 Laravel + Vue 实现文件异步上传组件和文章封面图片功能

在 Vue 框架中实现图片拖放上传组件

基于 Flickity 在 Vue 中实现轮播图组件并设置简单的博客布局

测试驱动开发

注:由于 SPA 中会使用 TDD 模式开发,所以先介绍 Vue 组件单元测试。

引入 Vue 测试套件 + Mocha + jsdom + Expect 测试 Vue 组件

基于 TDD 模式开发评论组件(上):数据绑定和列表渲染

基于 TDD 模式在 Laravel 项目中开发后端评论接口

基于 TDD 模式开发评论组件(中):父子组件之间的通信测试

基于 TDD 模式开发评论组件(下):Axios 请求后端接口测试

构建单页面应用

通过 Vue Router 初始化单页面应用项目骨架

页面布局(上):基于 Vue Router 命名路由实现动态路由导航

页面布局(下):引入 Tailwind CSS 框架构建博客应用 UI 界面

Laravel 后端博客文章数据相关 API 接口提供

通过后端 API 接口返回数据渲染 Vue 页面组件并实现分页功能

引入 Vuex Store 管理 Vue 组件数据状态的更新和获取

基于 Laravel + Vue + Vuex 实现博客应用文章发布功能

基于 Laravel Sanctum + Vuex + Vue 路由导航守卫实现用户认证

项目作业:自行实现用户反馈表单提交 & 后端处理代码,前端基于 Vue 表单页面组件实现,后端除了基本的表单验证,数据库存储之外,还要实现事件监听和异步队列处理邮件发送功能。

实战项目

博客

基于原生 PHP 构建

Laravel 博客入门项目

微信公众号、小程序开发

如何基于 Laravel 开发微信生态应用

单页面应用(SPA)

基于 Laravel + Vue 构建单页面应用

基于 Laravel + Vue.js 构建 LBS 项目

在线商城

基于 Laravel 构建完整的在线商城系统

直播网站

基于 Laravel 构建音视频直播应用

目前,本系列视频+图文教程正在更新中,对应的视频微享版(有1分钟时长限制,非完整版)会更新到学院君微信视频号,你可以扫码关注学院君视频号观看:

图文教程则会更新到学院君微信公众号:

相关推荐

纵横天下的意思
日博官网365bet

纵横天下的意思

09-11 阅读 9467
死光 图文攻略 全剧情关卡流程通关生存攻略
365bet中国客服电话

死光 图文攻略 全剧情关卡流程通关生存攻略

08-02 阅读 9491
大王卡月租多少
365bet中国客服电话

大王卡月租多少

06-27 阅读 3923