PHP该怎么学?

时间:2022-12-02 04:56 阅读: 评论: 作者:admin

PHP该怎么学?

  怎么做代码零基础学编程应该从哪入手PHP 入门没啥好说的,会基本编码,基本的开发结构(通常指MVC,呵呵哒),类与对象,就差不多了,可以说是入门了。

  写 PHP 最多目前无非就是 OOP,面向对象,说时迟那时快。不开玩笑地说,与我共事的某些前辈是连 OOP 都搞不清的,这里我就不多说了。

  其实不是说一定要会,要去理解 OOP,只是如果你理解这个玩意,对于你后面的工作已经学习会非常的有好处。

  老梗了,所谓 MVC 很多人会说 Model, View, Controller, 其实这样说没错的,只是这样说不会让你更好地理解结构以及扩展性。

  MVC 我当前的理解是:调用(度),也很简单,其他框架也差不多这个原理,当然每个框架的实现方式都不一样。

  大致列了下最基础的框架底层原理,实际上咱们开发中 90% 接触的只是在Handle处的工作,至于Request、Match、Route等基础的对象或者数据,框架早已经封装好了,也无需过度纠结和头疼这方面的事情,先要把业务功能处理好,并且容错处理好即可。

  进阶这个真是个头疼的问题,啥叫进阶,我的理解是,做一些之前没有做过的(指本领域:PHP),例如:设计模式,SPL,缓存设计(Cache),研究框架,开发规范,单元测试,行为驱动开发,组件(包括自己着手开发的),Composer 等等的东西,都可以理解为进阶。

  设计模式,一个在软件设计中占有重要角色的课程,而我们又不得不去了解。而对于设计模式来说,很多人是抗拒的,因为他和普通的开发者有着不一样的思维方式,一个很明显的提升就是:设计,而设计应该是根据发展的变化而变化,业务的变化而变化,模式也一样,不会是永恒不变的。唯一不变的是,基础,这些技巧与思维少不了的是需要良好的基础。

  比较常见的是:file_get_contents,connection,有时候我们会很自然地遗忘这里其实会有一定几率出现超时,最严重的就是造成服务无响应,如下代码:

  容错是每个开发者在开发过程中必须要考虑的地方,没有代码没有 “八阿哥”,总会有意外的地方,做好容错可以最大程度地减少对用户的伤害以及可以有效提高在出错时的用户体验。百利而无一害。

  日志,一个很容易被无视而又非常非常重要的环节,可以说,这一环节比你做的任何一个地方的业务代码都要重要。

  而日志的设计需要考虑性能,不能因为日志而影响服务质量哦。所以在日的环节在完整性和效率上要做好权衡。

  缓存必须是针对业务情况而设计,不能生搬硬套。大公司的不一定适合你,开源方案也不一定不适合你,一定要找到自己合适的方案。

  通俗简单地说,缓存的目的是为了提高服务的响应速度以及质量,不能因为缓存的添加而导致服务异常。

  其实我们每天接触的东西都有它的实现原理,算法等等的东西,但我们一直都在使用,并没有很好地去理解他们当中的奥秘。时候有空去接触一下了。

  为什么人访问量上来了,咱们就要扩容,去扩展呢?原理很简单,看看咱们超市里面的收银台就知道了。咱们超市里面所有收银台不是每天每个位置都有人的,根据人流(流量)动态扩容,而且有些收一台的一个位置上设置有两个人(多线程/多进程,看个人理解),这个设计挺妙的。当人一多,就会开多各个位置收银台,和增加人手。那他是怎么知道人多的呢?也很简单,就是经理(Manager/Master进程或者是运维,看理解),他知道,内部调度安排人手。

  相信大家都有接触过很多不同的框架,CI, TP, Symfony, Yii, Laravel, Slim等等,最深刻,最相似的地方在哪里呢?可能有些没有,但是,有一点可以肯定的,就是,都是有一系列 Http 封装,Route 处理。因为这两是灵魂,剩下的是不是业务和结构。

  剩下的就是考验框架代码质量的时候了,这里有一系列的框架,有的轻量,有的重量,有的灵活,有的高效。其实说到这里很多朋友都大概了解框架的运行原理。

  我看过Symfony、Laravel、CI、Silex和ThinkPHP的代码,当然很粗略地看看。里面实现的大部分代码都是将各个处理模块 “粘合” 一起,也就是 Bridge。

  其实我这里希望更多的初学者多看看 ThinkPHP 的代码,然后也看看其他开源框架的代码,你会发现,除了 ThinkPHP 之外,你还可以发现更多新奇好玩的东西。

  具体框架开发系列我会找个时间与大家分享。框架的理解可谓到一段落,下次我会分享我对其他服务器的理解。

  我相信经过九九八十一难,能来到这个模式的人已经不多了。我自己还是菜鸟,不敢在这里胡说,这里会记录我所有的 PHP 底层学习的经过,这里的故事,我想我等不到下一个故事了。

  为什么要理解并学习这一方面的知识?若果你是一名有追求的 PHP 开发者,最终还是应该将精力落入到 “系统” 处,因为真正处理 PHP 程序的,正正是 “系统”,如何可以让自己的 PHP 做得更好,如何可以让自己的服务做的更好,如何可以让后端支持更加强大,灵活,高效,你就应该关注到底层系统的实现当中,但平时也不要忘了 PHP 的开发规范。

  在日常生活中,Http已经离不开大家了,从平时打开应用,打开浏览器,搜索,都是需要使用Http,应该没有比这个接触更多了吧。但是里面的奥秘你又知道多少?没关系,和我一起探索TCP/IP的奥秘吧。

  资深的工程师往往都会有意识的培养自己的技能树的,围绕少数核心技能/兴趣来有方向有计划的学习和参与项目。

  当然,最重要的是选择一个好的平台,大公司流程和技术积累会比较雄厚适合学东西,小公司担任主力开发更能发挥些,这些是不同阶段上不同诉求来决定的,一般建议在足以胜任经理以上级别前,还是选择制度健全有一定行业知名度的公司更好一些,因为这个选择同时也决定了你的主要交际圈;

  编程思想方面,看看代码大全、数据结构与算法,最好能结合知名开源项目的代码和文档阅读来体会,比如WordPress和Zend Framework都是值得好好读好好思考的项目;

  开发效率方面,了解一些开源的library,先各领域选择少数的一两个用好用熟练再说,比如Javascript用jQuery、上传用SWFUpload等;

  相关技能根据自己的实际需要,了解比较重要的一些点,比如MySQL、Memcache等,先强化了解基本使用、常见问题、主要优化手段等就好,慢慢跟着主技能一起提升吧;

  团队合作的能力,一般只要愿意主动承担责任个人HPH学习,甚至能把批评当自我提升的契机的话,提升都会很快,别人也会乐于和你合作。

  学历将决定你的起点,尤其是脚本语言,脚本语言你要是进不了一个好的平台,你想提高,几乎不可能,1E数据跟1W数据完全两回事,1E的PV跟1W的PV完全不一样,神马队列,缓存,分布式,小公司基本都是极其表面的使用,甚至在不少小公司,你50%以上的时间在整div和CSS,所以起码一个本科学历,没有就去弄一个。

  英语一定要学好,起码读写要不借助工具能看懂英文专业文章,php是用来做web的,发展极快,各种新技术层出不穷,等中文文档出来黄花菜都凉了,而且中文文档是经过了一道手的,比起原文还是有差距。

  从大到小,由面到点,不要老啃着细枝末节的东西不放,知识要放在整个项目和环境中去学。例如,学习框架的运行模式而不是只是学具体某一个框架,任何框架随手就用。多使用国外开源东西。

  至于PHP的前景,目前一边是越来越多的人开始学PHP,另一方面呢,越来越多的企业招不到PHPer.因为20个人里也不一定招到一个满意的。因为脚本语言的门槛比较低,所以现在市面上PHP培训异常火爆,很多人初中高中大学不好好学习,以为通过几十天的培训就能改变命运,任何东西,质变的前提是量变,越是简单的东西越不好学,因为人多可替代性强,你要不努力学习更多的东西可能就被下一波廉价码农所代替。

  交流方式有很多,各框架学习社区、观摩成熟的项目都是不错的选择,或者直接参与开源项目的开发讨论也是很好的办法。

版权声明:本文为 “个人代码云儿美,个人php学习” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://a.shandingren.com/a/sdd/2022/1202/263.html

留言与评论(共有 条评论)
昵称:
匿名发表
验证码: 点击我更换图片
排行榜
关于我们
扫码关注
Copyright © 2002-2017 南缘网 湘ICP备2022026174号-1