关键词不能为空

php自学要多久「自学php的真实感受」

作者:admin
来源:http://www.sdzsb8.cn/zsxx/94451.html
日期:2023-04-01 15:42
评论:0
阅读 182
我是零基础自学的php,真的零基础,没有一丝的程序基础…第一本书是《php和mysql web开发》,一页一页啃的,有一页肯不过去,我就从第一页从新看,第20页我卡了很久...

文章来自:php自学中心

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

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

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

php老司机和你聊聊学习底层源码的一些感悟

坚持,耐心,时间

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

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

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

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

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

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

三、反射机制学习

什么是反射呢?

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

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

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

这里自己找个例子加强一下。

四、依赖注入 控制反转

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

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

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

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

六、路由

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

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

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

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

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

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

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

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

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

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

比如下面的图解:

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

php老司机和你聊聊学习底层源码的一些感悟

类自动加载的时候会用到的一些属性

底层容器的一些属性内容

php老司机和你聊聊学习底层源码的一些感悟

底层容器的一些属性内容

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

php老司机和你聊聊学习底层源码的一些感悟

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

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

php老司机和你聊聊学习底层源码的一些感悟

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

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


本文来自网络,不代表「专升本要什么条件_专升本要几年_成人高考专升本_山东专升本信息网」立场,转载请注明出处:http://www.sdzsb8.cn/zsxx/94451.html

php自学要多久「自学php的真实感受」的相关文章

  • 北京高考「北京高考户籍学籍要求」

    北京高考「北京高考户籍学籍要求」:2021年北京高考报名下月1日启动,外省学籍考生要想回京参加北京市2021年高考,还需进行学业水平合格性考试成绩认证,认证将于11月2日至11月4日进行。北...来源:央视新闻客户端记者从北

    招生学校
  • 大学英语六级难吗「大学英语六级有必要考吗」

    大学英语六级难吗「大学英语六级有必要考吗」:大学英语六级比起英语四级难度大很多,从词汇量上来说,四级也就是高考完后的水准,3500的词汇量四级其实应该差不多了,所以考四级要趁早,千万不要等到大二大三...刚刚考完英语四级,

    资讯
  • 我国社会的主要矛盾「我国主要矛盾的三次变化历程」

    我国社会的主要矛盾「我国主要矛盾的三次变化历程」:党的十九大明确作出了“中国特色社会主义进入新时代”的重要判断,并对新时代我国社会主要矛盾的变化作出了新的概括——“我国社会主要矛盾已经转化为人民日益增...来源:新华日

    招生学校
  • 出国留学需要什么「出国留学门槛最低的国家」

    出国留学需要什么「出国留学门槛最低的国家」:留学性价比很高的国家,高校林立,综合教育实力强劲。计划去留学的小伙伴们肯定都了解出国留学是有各种条件的,那么韩国成人留学申请条件及费用是什么情况呢?下面...随着留学门槛越

    资讯
  • 今年成考考试时间「成考重要时间表」

    今年成考考试时间「成考重要时间表」:网报时间一般为一周,时间非常短,而且需要抢名额,所以同学们一定要在此之前做好预报名工作。 一、2022年全国成人高考考试时间 2022年10月15-16日 二、 成人高考...还有一个多月的时间

    资讯
  • 执业医师报名要求「普通人能考中医证吗」

    执业医师报名要求「普通人能考中医证吗」:【导读】报考中医执业医师证具有规定学历的考生需要毕业后在医疗、保健机构实习满一年;师承人员需要高中以上的文化,并且连续跟随师傅学习满3年,指导老师必须有...2007年,卫生部门

    资讯
  • 人力资源学习「自学人力资源在线学习」

    人力资源学习「自学人力资源在线学习」:导读:大家好,下面小编来为大家分享一下,人力资源管理学习网,人力资源管理自学网站这个很多人还不知道,下面是详细讲解,现在让我们一起来看看吧! 佰荟人力资源学...本报记者 方超 石

    招生学校
  • 雅思口语考试「想考雅思可以自学吗」

    雅思口语考试「想考雅思可以自学吗」:考雅思可以自学吗 雅思 如果不想去参加培训班的话,可以选择自己学习,下面是福州朗阁雅思小编为大家整理的关于 考雅思可以自学吗 的相关资料,希望帮到大家。 雅...零基础考雅思可以

    资讯
  • 河北自学考试专业「河北自学考试报名入口官网」

    河北自学考试专业「河北自学考试报名入口官网」:河北自考报名官网入口 小编了解到,2022年10月河北自考报名入口将于6月10日-15日(每天8:00-22:00)开通,考生可登陆河北省教育考试院高等教育自学考试网上信息系统...t2018年10月...

    资讯
网站公告