自学PHP有哪些书籍和教程值得推荐?

关注者
4,828
被浏览
1,177,918

91 个回答

刚给一位亲戚整理了一份关于 Web 开发学习的方案,他也是想成为 PHP 攻城狮,所以这里也贴一下给他的学习路线和思路。


网络上教程太多,五花八门,为他总结这份方案的目的,在于最高效的学习。真的不需要看 100 个 PHP 基础课程或者书籍来学习 「PHP Web 开发」。「PHP Web 开发」是技能,只需要看刚刚需要的知识,然后做项目练习,在练习中成长。这个方案,也兼顾了 @countryRoad 同学提到的,**保护学习的乐趣**,找到舒适感,获取成就感,在积极的过程中学习是最高效。


PHP 无法单独学,因为是 Web 开发的专属语言,需要整套的 Web 开发知识。Web 最基本的学习可以从 HTML+CSS 开始。第一步是学习一下下面这个交互课程:


HTML+CSS基础课程-慕课网


交互课程的好处是可以实时反馈,并且一开始不需要为开发环境的事情担忧,直接上手。注意上面那个课程不要求完全学会,过一遍即可,不懂的东西先记起来,然后跳过,后面再不断 Review ,不要妄想一下子学会全部。编程是 「技能」多一点,重在练习,这里我们只求知道个大概,以方便后面其他课程的继续。


接下来就是 PHP 基础和进阶课程了:


PHP入门篇_PHP入门视频教程-慕课网

PHP进阶篇_php视频教程-慕课网


还是跟学习 HTML 一样,过一遍即可,我们的目的只求知道个大概,以方便后面其他课程的继续,不懂得东西后面等我们慢慢上手,找到舒适感了,再逐个击破。


有了上面的基础知识,接下来可以开始学习实战课程了。这是最重要的一步,一个 PHP 工程师的能力,完全是靠项目累积出来的。我们经常笑称为「打怪升级」,从第一个项目开始,每做多一个项目,能力值和经验值就会增加。


一个概念要放在脑子里面,这是很多人一路学过来经常猜的坑,那就是:不要看太多书或者文档,要动手做,你真正的 PHP 学习是从你开发第一个项目开始。


因为编程是一门技能,你看再多的书,最多只是知识,知识和技能是有区别的。就如你可以预想到的,一个人看了三个月 NBA 篮球视频,期间连球都没摸到,到了球场肯定还是不会打球。他真正的篮球学习,从他开始动手的那一刻起。


PHP 的学习,可以归纳为三个类型:


  1. 语言的基础语法学习,这些是 ifelse, while, switch, class, function, trait 等;
  2. 内置函数/类学习,这些是 array 的操作,string 的操作,cookie 等;
  3. 应用学习,这些是队列、计划任务、注册登录、缓存、邮件、分页、权限管理、ORM等;


第一和第二,入门是上面提到的慕课网的交互课程,进修是在 PHP: PHP 手册 - Manual 里面。所以后面随着学习的深入,文档要多看,有个心理准备,作为一位 PHP 高级工程师,文档基本上得过 5 ~ 10 遍。


第三部分的学习,可以借助一个优秀的框架来学习,站在巨人的肩膀上。跟着框架学习的好处在于你能确保走在一条正确的路径上,框架解决的是实现生产环境中遇到的通用问题,所以基本上框架学习涉及的话题,那都是 PHP 开发中经常会面对的问题,并且你学习到的是解决方案。


学习框架提供的每一个功能,并且在学习的时候问下面几个问题:

  • 这个功能为什么会出现?解决了什么问题?
  • 这个功能通用性有多强?为什么会被放到框架里面?
  • 这个功能在设计上有哪些优于其他框架的地方?


PHP 框架首推 Laravel ,原因见这里: 最好的 PHP 框架是什么?为什么?


Laravel 学习资料,入门先看这个《Laravel 入门教程》 ,这本书是我专为 PHP/Laravel/Web 初学者定制的,也是我的公司 「优帆远扬」 estgroupe.com/ 的工程师必修课。


此书将教你如何使用 Laravel 一步一步构建一个类似新浪微博的应用,注册、登录、授权、ORM 使用等,甚至是从 0 到部署。让你从实际开发中体会到 Laravel 开发的敏捷、愉悦与轻松。


书中涉及到 HTML、CSS、JavaScript、PHP 和 Laravel 等 Web 开发相关的基础知识。不仅于此,还会对这些基础知识点进行延伸扩展,为你讲解一些在 Web 开发中更为专业、实用的技能,如 Git 工作流、Gulp 前端工作流、Bootstrap 框架基本使用,上线部署代码等。这些知识将为你未来的编程开发奠定下坚实的基础。


此书的线索性很强,我们故意这样设计,让读者能跟着线索练习下去。这里的要求是,跟着此书做 5 遍。


学完此书,有了第一个项目经验。接下来就可以学 《Laravel 进阶课程 - 从零开始构建论坛系统》 。作为 Web 全栈工程师系列书籍的第二本书,本书以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。编码规范遵循 Laravel 项目开发规范 ,应用程序架构思路贴近 Laravel 框架的设计哲学。在本课程的学习中,你不仅能学到使用 Laravel 开发一个论坛项目,还能学到安全优先、高扩展性的大型项目架构经验。


学完进阶课程,就可以开始阅读 Laravel 的文档 d.laravel-china.org ,尝试着去理解文档中涉及的话题。


遇到问题可以到 Laravel China 开发者社区 里面找答案,或者提问题,提问题时注意看下 社区发帖和管理规范


Laravel China 开发者社区 这个是国内现在最靠谱的 PHP/Laravel 社区,还算是蛮有技术氛围的,至少我们一班管理员都是一直以这个为目标在努力。


后面的学习就是不断的看 PHP 手册 + Laravel 文档 + 做自己的项目,或者公司项目。


还是要强调一下,DO IT 、DO IT 、DO IT 。动手练习是编程的唯一学习方法。


Summer

楼上各位说的都太复杂了。严重不同意。

首先一点,不管学什么东西,保护自己的兴趣的是最重要的。其次是清晰知道自己的水平,智商,能力,选择合适的学习路径。(一个小学生喜欢数学,你让他直接学微积分吗?)

学习材料,按难度来排序,由低到高是:

1.看视频,边看边写(快速上手,搭个一键安装环境,记事本打开,敲下:<? echo "Wow php";?>,恭喜你已入门PHP!)

2.看书,大爱这本,

PHP与MySQL程序设计 (豆瓣)

3.看开发手册(新手一定别看,此法只适用于已有编程经验的人)

当然,难度和效率是呈正比的。

建议一般新手,按1-》2 走,一定要边学边用,自己写着玩都行

此法适用于各种语言的新手入门

备注:

在你入门以后,尽早通读一遍手册很有必要,知道PHP能做什么很重要,并请忽略他怎么做,在你实践的时候再去关注怎么做。。

PHP: PHP 手册

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

这个回答是三年前写的,有些东西可能过时了,不过思路不过时。

现在学php,一定学现代php。具体看

@Summer

的回答,他是laravel China 的创始人,建议靠谱,我本人也非常喜欢laravel,也是laravel China 的活跃用户。

建议各位入门之后,必读,modern php,php之道,php手册。