当前位置: 首页 > 后端技术 > PHP

PHP技术栈

时间:2023-03-29 20:19:15 PHP

本文旨在给想学习PHP的新手一个大概的认知提纲,心中有个学习架构,有的放矢,少走太多弯路。请大神无视。入门阶段预备知识1.掌握基本的HTML、JS、CSS语法;熟悉Bootstrap。参考:https://www.runoob.com/html/h...https://www.liaoxuefeng.com/w...https://www.runoob.com/css/cs...最低接受度标准:模仿京东或唯品会首页首屏内容。2、熟悉Linux命令行熟悉常见发行版系统(CentOS、Ubuntu)的安装熟悉常用命令行操作,包括文件管理、用户管理、权限管理、防火墙管理等熟悉VIM最低标准使用与验收:掌握lnmp环境搭建。PHP基础掌握PHP基本语法、文件上传、cookie、Session、JSON。掌握MySQL数据库连接:pdo的使用。掌握redis连接和简单应用。主命名空间。掌握面向对象编程的思想。参考:https://www.runoob.com/php/php-tutorial.html学习框架学习使用ThinkPHP框架。主要原因是框架在国内太流行了。不建议使用Laravel入门,因为该框架使用了较多的语法糖和第三方库,对于新手来说可能比较吃力。最低验收标准:您可以使用最新版本的ThinkPHP作为入门框架来编写一个简单的博客。简单地写在页面上。使用TP的显示将数据呈现到页面。学写接口,学Charles抓包,看豆瓣的接口返回的数据。只需学习编写接口(GET、POST)即可。学习使用POSTMAN。最低验收标准:把上面的博客项目改成前后端分离,先写接口(最好有文档),然后在页面用ajax调用接口数据。此时,您已经开始了。如果你需要继续,你必须学习。第二阶段,PHP使用composer安装PHP第三方库。您对PHP断点调试非常熟悉。学习常见的PHP扩展。使用SPL掌握PSR规范。掌握反射的使用。掌握设计模式,熟练使用常用框架。了解php和php-fpm的大部分配置选项和含义。熟悉HTTP协议。熟悉正则表达式。MYSQL熟悉一些MYSQL优化的技巧,比如MySQL性能跟踪,包括slow_log/explain等;可以避免一些陷阱比如orderby,limit,like;能熟练使用常用指标;表结构创建选择哪种数据类型要有信心等等。熟悉常用的配置,知道如何调优。熟练掌握主从配置。掌握RediswithNOSQL的使用:非常熟悉常用数据结构的经典使用场景;了解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内部索引和事务隔离机制的实现有一定了解。NoSQLredis中除了常用的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语言有一定了解。熟练的麋鹿。对其他语言(如java、c、golang)等领域(大数据)有一定了解。熟悉RPC和微服务架构。可支撑千万级流量网站的正常开发和维护。结语科技无止境,未来有更多可能。