欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

学习PHP框架只停留在会用层面,职业生涯肯定走不远

时间:2022-10-20 22:32:42 | 浏览:4679

工作这么多年,也面试过很多PHP工程师,我发现很多PHP工程师只停留在使用框架的层面,然而对框架底层根本没有深入去了解,那么这就会给自己的职业生涯带来一定的瓶颈,当遇到问题的时候你就无从下手,不知道如何去排查与调试,更别说去扩展核心库,相反

工作这么多年,也面试过很多PHP工程师,我发现很多PHP工程师只停留在使用框架的层面,然而对框架底层根本没有深入去了解,那么这就会给自己的职业生涯带来一定的瓶颈,当遇到问题的时候你就无从下手,不知道如何去排查与调试,更别说去扩展核心库,相反,如果大家对框架底层源码有一定的了解,这样的问题就变得简单很多, 学习某一项语言都是需要耐心,学习框架贵在坚持,这会让你对PHP全局以及框架底层有质的飞跃。


总而言之:搞技术的,既然入坑了,就得知道一个理念:知其然还得知其所以然,停留在会用阶段,职业生涯肯定走的不远!因为你没有深入。。。


那么有小伙伴就开始质疑了,那我要如何选择一门框架呢?就拿PHP来说吧,PHP有N多框架,比如YII,ThinkPHP,laravel等等,这几个都有自己的优势和特点,在国内ThinkPHP确实用的很多,这里其实我想表达的是:不管你学习哪个框架并不重要,我们需要选择一个然后安心的学好它的底层,学习需要坚持,耐心+时间,比如你学会了一个框架之后,那么其他框架你自学下很快就会上手,因为框架的核心思想基本是相通的,它们的基础都是PHP,不要想得太复杂。那么现在就就拿ThinkPHP来举例,我们如何学习他的底层呢?

我们可以从以下几个方向入手:

一、 框架中是如何加载这些类库的?

学习框架底层如何加载类库这一步是必须的,因为我们要知道框架是如何加载不同目录下的不同文件,如果是框架通过composer安装的类库,同样我们都要弄清楚是如何被加载到框架的,那我们就要从thinkLoader.php文件入手了。接下来如何做?所以学习框架底层一定要带着问题和思考的态度去学习,这样成长肯定很快。

比如我想自己创建一个自定义leifeng目录 也想把它被加载到框架中,当你了解了如何加载文件的,也试试加载自己定义的文件吧。这个时候恭喜你底层第一步你搞懂了。


二、设计模式学习(工厂模式、单例模式、注册树模式、门面模式等)

你想提升自己php的技能,那你就必须学习一下设计模式,虽然这个经常在面试中遇到,但是希望你不仅仅只是为了应付面试,而是要真正的弄清楚什么是设计模式。我之前整理过,可以看看这个教程

【进阶】PHP常见的设计模式,我觉得你还是要搞懂!

【视频】设计模式是成功经验的总结,趁早学对进阶很有帮助!


三、反射机制学习

什么是反射呢?

在PHP的面向对象编程中的对象,它被系统赋予自省的能力,而这个自省的过程,我们把它叫做反射。

我们对反射的直观理解可以是,根据达到地,找到出发地和来源这么一个过程,通俗来讲就是,我给你一个光秃秃的对象,完事你可以根据这个对象,知道它所属的类,拥有哪些方法。

在PHP中,反射是指在PHP运行状态中,扩展分析PHP程序,导出或者提取出关于类、属性、方法、参数等的详细信息,包括注释。这种动态获取信息以及动态调用对象方法的功能,被称为反射API。


四、依赖注入 控制反转

经常听过吧,是否有去了解,敲敲代码实现一下。简单了解一下

(1)依赖注入是从应用程序的角度在描述,可以把依赖注入,即:应用程序依赖容器创建并注入它所需要的外部资源;

(2)而控制反转是从容器的角度在描述,即:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源.

我之前整理过,可以看看这个教程

【推荐】什么是依赖注入与Ioc容器


五、研究TP框架中的容器、门面Facade think/Container thinkFacade

六、路由

以上2-6点的具体分析 可以直接通过index.php入口文件去跟进,看看框架里面走了哪些流程,如何实现,用到哪些工具栏,环境变量,如何配置等等。

说到框架的路由是如何做的,通过跟进,我们会在App类中 在routeInit路由初始化这个方法,它是路由的核心,具体基础路由类库是如何引入的。你都能看的明白的


七、底层控制器、模型、视图的基础类库分析

八、其他一些工具类的分析

比如:异常处理、缓存等核心类库分析。


以上这些基本上涵盖了框架的核心内容,代码本来就是很枯燥的一个东西,在研究框架底层这个过程更是枯燥和痛苦的,但是我们需要坚持【坚持下来就能改变世界了】阅读框架代码不是看一遍就完事了,看不懂,我们就多看几遍,并且在看的过程中我们还需要做点如下几点:

1、在你有疑问的地方打上断点,输出相关的内容出来 看看他到底返回什么内容,因为这样更加直观,便于你真正意义上理解

2、我们需要思考它为什么要这样做?我这样做可以吗?能不能变通、或者有没有更好的方法?因为带着问题和思考的态度去学习 更加有利于你的个人成长

3、在研究源码的时候有不懂得地方肯定很正常的,这个时候一定要记住多利用百度或者谷歌

4、有个讲师提醒我,一定要多画图, 因为您去研究源码然后还能通过图的方式画出来 这更加有基于您学习以及深入理解,它真的能起到事半功倍的作用!


比如下面的图解:

类自动加载的时候会用到的一些属性,并且类的自动加载和他们息息相关



底层容器的一些属性内容



instances属性就是最终的容器核心



框架底层配置文件走过的流程图



在这里我主要是想表达我们一定要边看源码,边通过图例记录下来,深入理解,对你学习很有帮助的。写到这里,感谢阅读!


让大家对PHP以及底层框架有更深入的理解,在这里推荐一套学习教程,一步步分析ThinkPHP的底层源码,在分析的过程中,逐步提升技术水平。

课程目录

1-1 面试必备,加薪首选课

1-2 为什么要学习框架源码

1-3 如何高效的学习框架源码

1-4 版本要求以及框架获取和安装

2-1 类自动加载初始

2-2 spl_autoload_register初学习

2-3 自动加载Loader深度分析

2-4 自动加载Loader深度分析

2-5 自动加载Loader深度分析

2-6 在框架中新增自定义类

2-7 composer下类的自动加载

3-1 配置文件概述

3-2 PHP底层ArrayAccess类巧用分析

3-3 性能体现

3-4 高性能yaconf编译安装

3-5 load加载深度分析

3-6 load加载深度分析

3-7 TP框架底层优化

3-8 config底层类库优化 试看

3-9 其他内容源码分析

4-1 单例模式

4-2 注册树模式

4-3 如何理解依赖注入和控制反转

4-4 PHP反射机制深入学习一

4-5 PHP反射机制深入学习二

4-6 玩转自己的容器类

4-7 Countable巧用

4-8 获取容器里面的实例分析 试看

4-9 Container容器类实战

4-10 类库分析

4-11 图例分析

4-12 让小伙伴真正意义理解门面模式

最后,大家如果觉得本文不错就点个赞吧~! “点关注,不迷路”,每天带你分享不一样的PHP技术资讯

相关资讯

PHP学习Thinkphp框架(1)——关于Thinkphp结构目录和数据库操作

Thinkphp:=> 简介:是由上海顶想公司开发的一款,PHP写成的,开源的MVC框架;官网:http://www.thinkphp.cn下载:https://github.com/top-think/framework 环境要求:

国产PHP框架ThinkPHP与SpeedPHP的浅析对比

本文主要简析两个国产的PHP框架ThinkPHP与SpeedPHP。通过学习发现,它俩在很多方面有着相似但又不同的地方:1.单一入口,二者都是单一入口文件。每个app都需要一个入口文件,且只能有一个入口文件。ThinkPHP生而就有多app

《PHP》什么是PHP框架,为什么要用PHP框架

PHP框架是什么?PHP框架提供了一个用以构建web应用的基本框架,从而简化了用PHP编写web应用程序的流程。这样不但节省开发时间,有助于建立更稳定的应用,而且减少了重复编码的开发。框架还可以帮助初学者建立更稳定的应用服务,这可以让你花更

「PHP发展史」PHP5.2到PHP5.6中新增的功能详解

截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护的 PHP5.2, 其余的一半用户在使用 PHP5.3。因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本

新手学习php怎么入门?含学习路线、5大php性能优化技巧!

对于一个php开发刚刚入门的程序员来说,经常会碰到学习方向的疑惑。如果没有人知道,php新手很难明确自己应该从哪里开始学习。今天w3cschool就给亲爱的小伙伴们分析php语言学习的方向性问题。首先,html是你必须要学习的,因为它是前端

PHP前景如何?如何系统的学习PHP?

PHP能做什么?可以用来做网站、游戏、APP、小程序。。。PHP能做任何事,但其最主要的应用,就是与数据库交互来开发web应用(web应用也就是网站啦)作为一名先进的PHPer,迫切的想提高自己的编码水平,首先,面对PHP众多杂乱无章的各种

学习PHP开发技术难不难?零基础参加PHP培训能学好吗?

PHP开发运用十分广泛,众所周知,PHP编程语言与其他编程语言相比会简单很多,因此越来越多的人加入了PHP学习的队伍,但是对于软件技术方面,没有任何基础,很多人都害怕学不会,都存在这样的疑问:学习PHP开发技术难不难?零基础参加PHP培训能

扣丁学堂简述PHP培训需要了解学习的PHP语法

如今参加PHP培训学习的小伙伴越来越多,但是每一位都能学到专业实用的技能成为高薪的PHP开发工程师吗?当然不是,学习PHP开发并不是那么容易的,当然也没有想象中那么困难,想要成为专业的PHP开发工程师一定要选择专业靠谱的PHP培训机构学习。

参加扣丁学堂PHP培训学习贵吗PHP培训需要多少钱

由于现在的PHP开发工程师在企业中有着很重要的地位,因此PHP开发工程师的薪资和就业环境都是非常不错的,所以现在有越来越多的人选择参加PHP培训机构学习PHP开发技术,那么参加PHP培训学习的费用高吗?参加扣丁学堂PHP培训学习贵吗?在互联

PHP中文网第十九期,php学习最佳路线

学习PHP的过程分为4个阶段,一步步前行,为每个阶段 设定一个学习目标,并安排好学习计划,达到目标后就可以开启下一阶段的学习。已学完,有需要看文章最后<阶段一:入门>这是刚刚接触PHP时的入门阶段,先要了解PHP的开发能力,并多接触一些用P

为什么很多人学习PHP编程都喜欢自学成才?推荐几个php自学网站

PHP编程语言是目前编程语言中最热门的编程之一,PHP应用领域最多的是WEB开发,PHP和mysql结合可以做出完美的网站,目前大多WEB网站都会选择PHP开发,开源成本低,高效质量好。学习PHP编程其实比较容易,如果你学过HTML、CSS

PHP开发者的福音,解读PHP异步通信框架Swoole的机制

在中国互联网行业膨胀的12-16年,PHP语言凭借自身易上手,开发周期短的优势,深受各中小企业的喜爱。小编也很荣幸在2009年底进入这一行业,为自己谋生分得一杯羹。但是PHP又先天有它的局限性,导致客户很多需求无法得到满足。大家都知道,P

ZWebPHP基于API的简易PHP开发框架

ZWebPHP 框架设计目的:标准化、体验统一、简单可靠、易于扩展后端PHP框架基于PHP、smarty 构建。基于composer自动加载。完全基于API接口设计,API文档自动生成。权限包含菜单访问权限和API接口访问权限。工具类、数据

PHP组件及框架推荐系列:PHP世界中最好的日志组件——Monolog

这也许,不,就是PHP世界中最好的日志组件—— Monolog所有的 PHPer,请站在巨人的肩膀上。随着 Composer 的普及,PHP 组件化开发思想越来越深入人心,我们没有必要重新自己打造轮子,只要确定需求和目标,设计好软件的架构,

「php框架教程」给PHP初学的你10个最常用的函数

PHP的功能越来越强大,里面有着非常丰富的内置函数。资深的PHP程序员对它们可能都很熟悉,但很多的PHP学习者,仍然对一些非常有用的函数不太熟悉。这篇文章里,我们就列举10个你或许不了解但实用的PHP函数,供大家参考和学习。1. php_c

友情链接

网址导航 SEO域名抢注宝宝起名网妈妈知道币圈信托理财网今日佳木斯飞盘运动俱乐部网红名人榜任贤齐歌迷网今日石家庄正典燕窝个人养老金资讯网赵今麦影迷网孩子王A股恩施大峡谷旅游攻略驾校宝典学习网百事可口可乐股票网女性彩妆品牌南充新闻头条网
PHP编程知识网-php开源建站系统、PHP程序员网站开发、php编程工具、php菜鸟教程下载、PHP网络编程教学、php网络编程、php工程师、php菜鸟教程数据库、PHP网站开发、PHP精品源码网站、php程序员入门、php零基础入门教程、php源码搭建网站流程、php从入门到精通第2版、php开发简单网站、php制作网站实例、php网站开发实例教程源代码、php中文网破解版、php中文网。
php编程知识 yoceo.cn ©2022-2028版权所有