PHP高级开发

PHP高级开发是做什么的?本页面为用户提供了PHP高级开发的岗位职责,以及本职位近些年的薪资待遇情况、就业趋势、招聘趋势、面试经验等信息,综合图表数据多方面解析该职位的热度。
2024-04-26 18:00:00 更新

PHP高级开发简介

岗位职责
简介 有太多的原因使得PHP成为世界上最受欢迎的脚本语言——高度灵活、简单易用——不过写PHP(或者任何这种语言)代码时,人们常常陷入单调重复而令人生厌的体力活动的窘境。而这正是PHP开发框架大显身手的地方。 通过提供一个开发Web程序的基本架构,PHP开发框架把PHPWeb程序开发摆到了流水线上。换句话说,PHP开发框架有助于促进快速软件开发(RAD),这节约了你的时间,有助于创建更为稳定的程序,并减少开发者的重复编写代码的劳动。这些框架还通过确保正确的数据库操作以及只在表现层编程的方式帮助初学者创建稳定的程序。PHP开发框架使得你可以花更多的时间去创造真正的Web程序,而不是编写重复性的代码。 PHP开发框架背后的思想被称为“模型—视图—控制器”(MVC)。MVC是这样一种架构模式,它隔离了业务逻辑与UI,允许其一改变而另一者不受影响。(也可以说是关注点的隔离)在MVC中,模型负责数据,视图负责表现,控制器则是程序主体或者说是负责业务逻辑。从本质上说,MVC拆分了一个程序的开发过程,这样你就可以修改独立的每一部分,而其他部分不受影响,这是十分重要的,它使得编写PHP代码更为快捷简单。 使用PHP框架 开发者可能出于不同的考虑而使用PHP开发框架,不过首当其冲的原因是为了加速开发过程。相似工程之间的代码重用能够节省开发者大量的时间和精力。PHP开发框架内置了预建的模块,免去了冗长又令人厌烦的编程工作。这样开发者就能够把时间花在开发实际程序上,而不是每一次都要为每一个项目重建基础模块。 稳定性是开发者使用框架的另一个重要原因。尽管简单是PHP最大的资本,也是许多人喜爱这个脚本语言的原因,它也是PHP的“潘多拉之盒”,尤其是那些初学者而言,PHP是如此的简单以至于他们会完全没有意识地写出低质量的代码。这样的PHP程序可能在大多数时间内仍正常工作,但你可能已在代码中留下了巨大的安全漏洞,使其易受攻击。要时刻牢记PHP是一门很宽松的语言十分重要,因此确保不在代码中遗留任何安全漏洞是重中之重——即使程序看起来工作正常。 最后一点,PHP开发框架是可扩展的,并且有许多框架可供选择。你也可以创造你自己的,不过许多开发者决定从那些流行的知名的开发框架中做选择,因为它们往往有着庞大的支持团队,以及相关的论坛/社区方便你与其他使用同一个框架的开发者相互交流。注意,你应当事先检验你的项目是否需要使用框架,这里提供一份简单的列表以供参考:使用框架能否节省你(和其他任何会使用它的人)的时间和精力?是否能够让程序得到更好的表现?能否提高稳定性?如果你对上面任何一个问题的回答是肯定的,那么使用PHP开发框架对于这个项目就可能是正确的选择。 开始使用PHP开发框架 这是开发者,无论初学者还是经验丰富的专家,常常询问的问题,但又真的没有直截了当的答案。对于许多初学者而言,框架提供了良好的稳定性和简洁性,所以他们认为只要能用就应该用框架。它能够减少低质量代码的产生,并加快项目进度。 另一方面,许多经验丰富的PHP程序员把框架视为那些不懂得如何写出高质量的清晰的代码的“初级”程序员而设计的工具。这句话对错与否有待商榷,但事实上PHP开发框架的确是用来节省时间和提高编程效率的工具。 在忙于接近最后期限的工程时,使用PHP开发框架将带来巨大的效益,因为它能够极大地加快编程进度。所以如果你时间紧迫,使用PHP开发框架是极其正确的。应当把PHP开发框架列入考虑范围的另一个例子是当你忙于一个有大量重复代码的项目时,因为它有助于减少重复工作量。 PHP开发框架的关注点 去搜索PHP开发框架的人将会看到各式各样的选择,你甚至可以创建你自己的,尽管只推荐PHP专家们这么做。在寻找最适合你需求的PHP开发框架时,你要时刻想着谁会使用和/或彻头彻尾地修改它,这点很重要。如果会有许多人使用这个程序,最好用一个大多数开发者都熟悉的框架。另一方面,如果你想要一个自己使用的Web程序,你最好选择一个你觉得最舒服的PHP开发框架——管它是流行还是不受欢迎呢。 在寻找PHP开发框架时应该考虑多种因素:简单易用、灵活开发、性能、在其它开发者中间的流行程度、强大的特性、以及支持和论坛。我推荐你先尝试几款不同的PHP开发框架,从中找出一个最适合你需求的,各种框架之间有些微的差异,有着不同的优势和劣势。就拿Zend Framework来说,V3版本之后就带有了丰富的功能,再加上一个可扩展的支持系统,这一切都是因为它存在了足够久。作为对照,CakePHP是另一个比Zend Framework年轻的PHP开发框架,它的支持系统的规模就略微小些(尽管对这个框架的支持正在飞速增长),但CakePHP更加用户友好且简单易用。 如你所见,每种PHP开发框架都有它自己的优点,所以最好先做一些尝试,捕捉一些错误以便找出哪个框架能最好地服务于你的需求。另一种很好的选择框架的方式是咨询你那些身处开发者社区的同事,问问他们喜欢哪个。那些真正用过某个框架的人会告诉你它是否易用,特性,可用的支持,框架周边的社区所涉及的领域,他们还可能告诉你它的缺点。 最常见的错误 任何一种类型的编程都会出现错误,不过PHP开发框架能够极大地限制这些错误的产生,因为它从开发过程的一开始就提供了经过验证的正确代码。而且看来重复的代码编写会增加错误出现的概率,而框架彻底解决或至少减少了那个问题。 这就是说,使用PHP开发框架仍然又需要注意的问题。例如,除非你是个PHP专家,否则你应该选择一个流行些的框架,它们有着丰富的支持和一定的活跃用户基数(下面会列举一些流行的PHP开发框架)。有许多框架只有少得可怜的支持甚至没有支持,并且/或者是由对PHP了解有限的人创建的。这些框架会导致你的程序不能正常工作,更坏的情况下会导致你的网站出现灾难性的安全问题。 另一种常见的错误是没有确保数据库和网站服务器兼容特定的框架。例如Seagull PHP Framewor推荐如下配置: PHP:PHP 4.3. 是最低配置,之后的版本也支持,PHP 5.1.1 及更高版本也可以。请避免任何 5..x 系列的东西。 MySQL:MySQL 4..x, 4.1.x 和 5..x 都支持,你也可以使用 3.23.x。Apache:Seagull 在 1.3.x and 2.x 系列的 Apache 中工作得很好。 如果你不能满足这些要求,你就不能得到所选择框架可能的最佳性能。就算你是PHP专家,也应该在尝试框架之前阅读其文档以确保兼容性。 和上面这个错误比较类似的,不按照推荐安装步骤去安装你的PHP开发框架也会给你带来令人头痛的烦恼。仍然用Seagull作为例子——Seagull的Wiki上有一份详细的框架安装流程,其中有几个关键步骤有时候常常被粗心或者没有戒心的开发者轻易地忽略了。关键是你一次就把框架装好会让你在接下来的实际开发中节约不必要的时间开销。 流行的PHP开发框架 近几年来,随着PHP作为一门被许多开发者选作他们的脚本语言而不断演化,PHP开发框架如雨后春笋般走上荧屏。人们总是在争吵到底哪个PHP开发框架最好,但不是每个框架都是为所有人而产生的,这本来是很简单的事实。这里列举五个最好的最受欢迎的PHP开发框架: The Zend Framework The Zend Framework 在开发社区中有大量的追随者,它致力于Web 2.风格的程序。因为它众多的追随者组成的活跃用户开发的扩展支持,Zend被称为“The PHP Company”。Zend是一个,也可能不是,今天可用的最受欢迎的PHP开发框架。它有健壮的特征能够支持协作开发,它需要一些PHP的额外知识。 Yii Framework Yii是一款非常简洁优秀开源的PHP框架,致力于追求简洁,安全,自由,高效,是中小型项目首选框架。框架构架合理,一键生成完全合乎规范的大型网站文件夹架构,网站架构一目了然。强大的外部类库支持,分布式存储,强大的缓存系统,单入口MVC模式,面向对象编程,具有微内核设计,移植性强,松散耦合等特点,能集成到你任何一个系统里面。无论您是一个NewPHPer 还是OLDPHPER,那么E框架是您的首选。学习完Yii框架后您可以快速并且轻松的驾驭其他框架,步入php高手之列。 CakePHP CakePHP 无论对于初学者还是职业PHP开发者都是很好的选择。它基于与Ruby on Rails同样的原则而设计,它十分注重快速开发——这使得它成为一个非常好的用于RAD的开发框架。它快速增长的支持系统,简洁性和可测量性使得CakePHP成为今天可用的最受欢迎的PHP开发框架之一。 Symfony Symfony是为那些更加职业的主要开发企业级程序的开发者而准备的——特别是 Askeet 和 Yahoo! Bookmarks。这款开源PHP开发框架有着丰富的特性,做起这些来绰绰有余,它主要的缺点是比其他的框架略微慢一些。 Codelgniter Codelgniter 以它的简单易用,性能和速度而闻名。与 Symphony 不同,这款PHP开发框架对于共享主机的用户而言很理想,如果你想有一个小型覆盖面的框架。它提供了简单的解决方案,还有扩展的知识库,通过视频教程,用户指南和wiki来提供支持。 初学者应当考虑CodeIgniter。 Seagull Seagull 是一个良好的PHP开发框架,可以用来开发Web,命令行和GUI程序。这是一款无论对初学者还是职业程序员而言都及其简单的开发框架。对于初学者,Seagull提供一套包含样例程序的库,经过简单修改就能符合你的要求,而对于专家级程序员,Seagull提供了一整套设置选项——包括最佳练习,标准的和模块化的代码库——来快速简单地构建Web程序。Seagull有一个活跃的用户社区以及丰富的支持文档。 总结PHP开发框架对于各种能力层级的开发者都是一种减少重复编码需要的良好方式,同时加快开发过程,确保创建Web程序时写了正确的代码。这不仅加速了复杂程序的开发,同时也减少了你代码中的安全漏洞从而加强了PHP的安全性。 尽管一些专家级PHP程序员感觉没必要使用开发框架开发Web程序,它们在快速软件开发中仍然有巨大优势,比如在紧迫的期限下。而对于初学者或中等开发者,开发框架能够提高PHP学习效率同时促进练习编写高质量的代码且减少低质量代码,后者因为PHP自身的“宽松”特性而常常出现。 今天有许多可以使用的PHP开发框架,因此开发者肯定能找到一款满足他们在特性,支持,速度,可测度性等等方面的需求的框架。如今被开发者使用的顶级PHP开发框架包括:The Zend Framework,CakePHP,Symfony,Codelgniter和Seagull。 thinkphp ThinkPHP是一个开源的PHP框架, 是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于26年初,原名FCS,27年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现,也已经越来越多地受到国内PHP开发人员的认可。 使用ThinkPHP,你可以更方便和快捷的开发和部署应用,当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单、兼容和快速的特性中受益。简洁、快速和实用是ThinkPHP发展秉承的宗旨, 作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。 Canphp Canphp是一个中国开源的php框架,主要的设计理念就是为了追求简单,减少php初学者的学习成本,而且追求高效率,模版类不提供其他标签,直接应用php的源代码,还有它是微内核设计,移植性强,松散耦合等特点,能集成到你任何一个系统里面。其中集成的http类相当的强大,采集图片速度相当的快,为什么这样呢?因为适用了模拟异步多进程的原理。 InitPHP InitPHP是一款轻量级的开源框架,采用分层体系架构,按需加载,具有高效、安全、易扩展、方便学习和修改框架本身等特点。InitPHP框架给您提供了详细开发手册,支持mysql分布式扩展,缓存体系自由切换,原生态的视图模型,多模型部署等。 kyphp KYPHP是一个中国开源的PHP框架,kyphp严格尊守OOP和MVC的理念,具有控件化、可扩展性强。kyphp设计理念是自由、简单。既可以用php源码编程,也可以使用标签,支持多语言,多数据库,多皮肤,多模型部署等。
查看全文

PHP高级开发工资

整体分布
历年变化
最低:¥2,001
最高:¥78,800
月收入平均值约
¥14,542
高于平均值约占
0%
月收入中位数
¥15,000
近半年趋势
下降
解读:PHP高级开发在全国的平均月薪为¥14,542,中位数为¥15,000,其中¥7k-12k工资占比最多,约34%。
来源于254386份样本

PHP高级开发就业

同比上月,人才热度
+4.23%

PHP高级开发招聘

同比上月,职位数量
-0.08%

PHP高级开发面经

面试官主要考察大用户...
匿名用户
面试了职位:PHP高级开发
未通过未通过
面试官主要考察大用户数据量的一个处理,PHP性能调优,也问了问我关于windows phone开发的基本问题
2 年前 发布
先做了一份笔试题,前...
匿名用户
面试了职位:php高级开发
未通过未通过
先做了一份笔试题,前面的都是一些基础题,不太难,大概半个小时就ok了,后面两道一道是mysql的,另一道是系统设计方面的
2 年前 发布
扯淡的一次面试过程.
匿名用户
面试了职位:php高级开发
未通过未通过
1. 第一轮技术面试,面试官是**的家伙,问了laravel相关底层的东西,比如队列,中间件. 2.问了mysql优化与索引相关的知识. 3. 问了前端js相关. 4.问了php statics 关键字觉得答的基本没问题,然后说他们leader不在,要等周一,等周一就等吧,周一也没给信儿,周自己问的,然后说没通过.你说没通过就没通过吧,你到是通知一下,非得自己去问,觉得公司没什么诚意招人. ...查看更多
2 年前 发布
3
面试官看起来比较急的样子
匿名用户
面试了职位:PHP高级开发
未通过感觉没戏
面试官看起来比较急的样子,问的很快。更多地是提一个问题让你自己去发挥。问题也算是由浅入深,第一个问题就是魔术方法有哪些,各自什么场景使用,内存回收机制,Session与Cookie原理等。其次重点问的是数据库原理,优化方式有哪些,索引怎么实现的,MyISAM与InnoDB的异同,原理是什么,不同数据库使用场景,性能对比等等。Redis特点,持久化原理,各类型存储原理,队列怎么实现等等,还有FPM进程原理。 问的都比较简单,但是能回答的有多深完全看自己发挥。感觉没发挥好,说的并不是他想要的,自我感觉回答能有70分。可惜直接让我回去等消息。 ...查看更多
2 年前 发布
3
先做一份笔试题,前面...
匿名用户
面试了职位:php高级开发
未通过未通过
先做一份笔试题,前面都是一些基础的题,难度不大,后面两道 一道是mysql的,一道是系统设计的,mysql的题主要是索引的使用,sql语句的优化,最后一道是,有一个系统,用户发帖量很大,读写比例大概是10:1,怎么设计系统(可从数据库优化,架构,缓存等方面考虑)...查看更多
2 年前 发布
查看更多 5 条面试经验
寻找更多岗位洞察

小程序

看准APP

公众号

看准公众号

APP

看准APP