博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP技术栈
阅读量:7114 次
发布时间:2019-06-28

本文共 2321 字,大约阅读时间需要 7 分钟。

本文旨在给要学习 PHP 的新手一个大概的认知轮廓,在心里有个学习的结构,有的放矢,避免走太多弯路。大神请忽略。

入门阶段

预备知识

1、掌握基本HTML、JS、CSS语法;熟悉 Bootstrap。

参考:

验收最低标准:模仿写出jd.com或者vip.com首页第一屏内容。

2、熟悉Linux命令行

熟悉常用发行版系统(CentOS、Ubuntu)安装
熟悉常用命令行操作,包括文件管理、用户管理、权限管理、防火墙管理等
熟悉VIM使用

验收最低标准:掌握lnmp环境搭建。

PHP基础

掌握PHP基础语法、文件上传、cookie、Session、JSON。

掌握MySQL数据库连接:pdo使用。
掌握redis连接及简单应用。
掌握命名空间。
掌握面向对象编程思想。

参考:

学习框架

学会使用ThinkPHP框架。主要是该框架在国内使用普及率太高了。不建议使用Laravel入门,因为该框架使用了较多的语法糖、第三方库,对新手可能有难度。

验收最低标准:可以使用ThinkPHP最新版作为入手框架,写出一个简单的博客。页面简单写就行。数据之间使用TP的 display 渲染到页面。

学习写接口

学会 Charles 抓包,看豆瓣的接口返回的数据。

学会写接口(GET、POST)的就行。
学会使用 POSTMAN

验收标最低准:把上面的博客项目改成前后端分离的,先写完接口(最好有文档),再在页面里使用ajax调用接口数据。

至此,你已经入门了。如果需要继续往下,还要学习。

第二阶段

PHP

使用 composer 安装PHP第三方库

对于PHP断点调试非常熟悉
学习常用PHP扩展
使用 SPL
掌握 PSR 规范
掌握反射的使用
掌握设计模式
熟练使用常用框架。
了解php和php-fpm的大部分配置选项和含义。
熟悉HTTP协议。
熟悉正则表达式。

MYSQL

熟悉MYSQL优化的一些技巧,例如MySQL的性能追查,包括slow_log/explain等;对于order by、limit、like等一些坑能避开;能够熟练使用常用的索引;对于表结构创建选用哪种数据类型做到胸有成竹等等。

熟悉常用的配置,知道如何调优。
熟练配置主从。

NOSQL

掌握Redis使用:对于常用数据结构的经典使用场景非常熟悉;了解Redis的事务、RDB、AOF等机制。

掌握memcache的使用,知道与redis的区别。
了解一下MongoDB。

Linux

熟悉常用文本命令:例如wc、awk、split、diff、grep、sed等。

熟悉sort、uniq的使用。
熟练掌握ps、netstat、top等命令使用。
熟练使用Supervisor。
熟悉如何编写shell脚本。
能够理解Nginx的配置的含义。

第三阶段

PHP

该阶段PHP已经非常熟悉了,拥有快速开发项目、快速解决BUG的能力。代码遵循psr规范、稳定性很高。

熟悉消息队列使用,在很多场景合适的选择消息队列进行异步解耦。
熟悉如何使用 Elasticsearch 代替MYSQL的全文搜索功能。
熟悉多进程编程。
熟悉socket编程,对于网络IO模型有一定的认知,熟悉多路复用(select/poll/epoll)技术。
熟悉swoole框架,能应用于项目上。
不限制于框架本身,任何框架一天内快速入手。
对php的工作机制熟悉,熟悉php-fpm生命周期。
能够知道PHP相对于c等强类型语言性能为什么会慢。
对于PHP内部的实现原理有一定的认知,例如变量的实现、zend引擎的了解。
对于PHP的扩展有一定的认知,可以编写简单的扩展。

MYSQL

熟悉大批量的数据导入导出。对于线上大表操作可能带来的风险有预知。

熟悉分库分表。
对主从延迟能有效解决。
对于MySQL内置的一些函数能够熟练使用,熟悉触发器、存储过程的使用。
熟悉服务器核心性能优化选项 innodb_log_buffer_size、back_log、table_open_cache、thread_cache_size、innodb_lock_wait_timeout等。
对于MySQL内部索引的实现、事务隔离机制有一定的认知。

NoSQL

redis常用5中数据类型之外的数据结构也要能掌握一些。如bitmap、GEO、HyperLogLog、pub/sub等。

redis里的事务、管道、分布式锁能熟练使用。
对于redis的服务端结构能有一定认知。 熟悉redis里如何使用Lua。
尝试阅读redis源码。

Linux

对于nginx非常熟悉,能够熟练配置https、负载均衡、反向代理;能够使用 lua-nginx-module。

对awk/sed 等应用已经如火纯青,能够随意操作控制处理文本统计分析各种复杂格式的数据。
对于tcpdump、gdb、ltrace、strace、lsof等熟练使用。

其它

熟悉Linux应用编程:熟悉makefile使用;熟悉进程、信号、I/O知识;对于C语言有一定的了解。

熟练elk。
对于其它语言(例如java、c、golang)、其它领域(大数据)有一定的认知。
熟悉RPC、微服务架构。
能够支持对于千万级流量网站的正常开发维护工作。

结束语

技术无止境,未来有更多可能。

如果想快速提升Redis、MySQL等技能到第三阶段,请看下文。

本文首发于公众号"飞鸿影的博客(fhyblog)",欢迎关注。博客地址:。

转载于:https://juejin.im/post/5cf5420bf265da1bae38e5e4

你可能感兴趣的文章
Python版设计模式之监听者模式
查看>>
[Spring Security 5.2.0 翻译] 8 Architecture and Implementation
查看>>
使用 Sphinx 撰写技术文档并生成 PDF 总结
查看>>
Fastjson的基本使用方法大全
查看>>
SSH 超时设置
查看>>
webpack 最简打包结果分析
查看>>
NLPIR:数据挖掘深度决定大数据应用价值
查看>>
Flex 布局教程
查看>>
GET和POST两种基本请求方法的区别
查看>>
Webpack4 学习笔记 - 01:webpack的安装和简单配置
查看>>
二)golang工厂模式
查看>>
React 教程:快速上手指南
查看>>
Python 的 heapq 模块源码分析
查看>>
Jitsi快捷安装
查看>>
区块链技术的基本特点
查看>>
阿里云容器服务DaemonSet实践
查看>>
一个游戏拨账系统的数据库结算设计
查看>>
Kafka Network层解析
查看>>
css加载会造成阻塞吗?
查看>>
聊聊storm TridentWindowManager的pendingTriggers
查看>>