php服务器要掌握的技巧,新手必须要懂的PHP学习路线以及10个PHP优化技巧

原标题:新手必须要懂的PHP学习路线以及10个PHP优化技巧

3ce7e141f6f719c0268eb0d4fa302d3b.gif

适合PHP学习者的学习路线:

一、实战演练

熟悉语法&api -> 阅读thinkphp codeigniter wordpress ecshop等源码 -> 用PHP独立开发项目 -> 深入了解PHP引擎实现细节、扩展编写、性能优化等

(1周)HTML+CSS HTML5+CSS3

(2-3天)留言板或记事本,(增删改查,数组函数数据库函数)

(7天)bbs或企业网站,(模板、分页、权限)phpchina的高手PHP高手带路--问题汇总解答以及PHP手册

(1个月)学习discuz学习外国的开源程序(zencert Joomla drupal).学习phpchina上的精华知识。

(1个月)深入学习zf框架(增删改查,权限控制,前端模板页面等)

(长期总结)对自己做过的小项目进行总结,用面向对象思想,对结构优化。

看开源的框架源码(这步请注意找一些比较小巧的开源框架如 CI,Slim ),增强对 MVC 的理解

更加深入的系统的学习(MySQL Linux C 语言 java html css redis 等)

最紧要实战:

(2周)3个站(至少20个美工页面)psd to html 切制练习。

(1周)jquery实战演习

(1月)用zf框架,开发模块,达到灵活掌握

必须掌握的知识点:

数据库必须熟练掌握 mysql & sqlserver,同时必须熟练zendstdio的操作。

熟练进行phpmyadmin的操作。

adodb(数据库接口)+java+xml+ajax(异步Java和XML)+jquery(JS框架),

熟悉OOP编程,学习thinkphp,zf框架,学习smarty模板引擎,pear (PHP扩展与应用库),prototype(设计模式)。

对apache也应该买本管理员手册好好看看。

同时大致了解一下linux等等。以及服务器管理等操作。

-------------------------------------------------------------

二、学习建议

"函数参考"那部分不必全看,但是 日期与时间、文件系统、其它基本扩展、Session、变量与类型 这几部分建议一定要翻一下,里面介绍了很多常用的函数和类。

这些函数不必都记住,只要有个印象就行,以后用到时再回来翻,用的多了自然就记住了。

先从留言本做起,再做个个人博客,然后再做个复杂点儿的CMS,或者小OA,所谓经验,其实就是解决问题的方法,从项目中不断思考,就能不断收获!

想學好PHP OOP, 直接上Zend Framework 2,半年後你會覺得自己進步許多

总结:自学非常重要,实际项目经验也很重要。不要以为计算机基础不重要,学习计算机基础对学习编程语言非常有用。只要对自己狠一点,多下功夫,没有攻不破的东西。

1基础PHP程序员

重点:把LNMP搞熟练(核心是安装配置基本操作)

目标:能够完成基本的LNMP系统安装,简单配置维护;能够做基本的简单系统的PHP开发;能够在PHP中型系统中支持某个PHP功能模块的开发。

基本语法数组、字符串、数据库、XML、Socket、GD/ImageMgk图片处理等等;熟悉各种跟MySQL操作链接的api(mysql/mysqli/PDO),知道各种编码问题的解决;知道常规熟练使用的PHP框架(ThinkPHP、Zendframework、Yii、Yaf等);了解基本MVC的运行机制和为什么这么做,稍微知道不同的PHP框架之间的区别;能够快速学习一个MVC框架。能够知道开发工程中的文件目录组织,有基本的良好的代码结构和风格,能够完成小系统的开发和中型系统中某个模块的开发工作。

2中级PHP程序员

重点:提高针对LNMP的技能,能够更全面的对LNMP有熟练的应用。

目标:能够随时随地搭建好LNMP环境,快速完成常规配置;能够追查解决大部分遇到的开发和线上环境的问题;能够独立承担中型系统的构架和开发工作;能够在大型系统中承担某个中型模块的开发工作;

除了第一阶段的能力,安装配置方面能够随意安装PHP和各种第三方扩展的编译安装配置;了解php-fpm的大部分配置选项和含义(如max_requests/max_children/request_terminate_timeout之类的影响性能的配置),知道mod_php/fastcgi的区别;在PHP方面已经能够熟练各种基础技术,还包括各种深入些的PHP,包括对PHP面向对象的深入理解/SPL/语法层面的特殊特性比如反射之类的;在框架方面已经阅读过最少一个以上常规PHP MVC框架的代码了,知道基本PHP框架内部实现机制和设计思想;在PHP开发中已经能够熟练使用常规的设计模式来应用开发(抽象工厂/单例/观察者/命令链/策略/适配器 等模式);建议开发自己的PHP MVC框架来充分让开发自由化,让自己深入理解MVC模式,也让自己能够在业务项目开发里快速升级;熟悉PHP的各种代码优化方法,熟悉大部分PHP安全方面问题的解决处理;熟悉基本的PHP执行的机制原理(Zend引擎/扩展基本工作机制);

3高级PHP程序员

重点:除了基本的LNMP程序,还能够在某个方向或领域有深入学习。(纵深维度发展)

目标:除了能够完成基本的PHP业务开发,还能够解决大部分深入复杂的技术问题,并且可以独立设计完成中大型的系统设计和开发工作;自己能够独立hold深入某个技术方向,在这块比较专业。(比如在MySQL、Nginx、PHP、Redis等等任一方向深入研究)

作为基础核心技能,我们在第二阶段的基础上面,需要有更深入的学习和应用。从基本代码应用上面来说,能够解决在PHP开发中遇到95%的问题,了解大部分PHP的技巧;对大部分的PHP框架能够迅速在一天内上手使用,并且了解各个主流PHP框架的优缺点,能够迅速方便项目开发中做技术选型;在配置方面,除了常规第二阶段会的知识,会了解一些比较偏门的配置选项(php auto_prepend_file/auto_append_file),包括扩展中的一些复杂高级配置和原理(比如memcached扩展配置中的memcache.hash_strategy、apc扩展配置中的apc.mmap_file_mask/apc.slam_defense/apc.file_update_protection之类的);对php的工作机制比较了解,包括php-fpm工作机制(比如php-fpm在不同配置机器下面开启进程数量计算以及原理),对zend引擎有基本熟悉(vm/gc/stream处理),阅读过基本的PHP内核源码(或者阅读过相关文章),对PHP内部机制的大部分核心数据结构(基础类型/Array/Object)实现有了解,对于核心基础结构(zval/hashtable/gc)有深入学习了解;能够进行基本的PHP扩展开发,了解一些扩展开发的中高级知识(minit/rinit等),熟悉php跟apache/nginx不同的通信交互方式细节(mod_php/fastcgi);除了开发PHP扩展,可以考虑学习开发Zend扩展,从更底层去了解PHP。

-------------------------------------------------------------

三、高手进阶

英文好的话推荐看 https://tutsplus.com/ (免费版本http://code.tutsplus.com/),虽然要付费(年付15美金/月),但是你得到的将更多。

我已经持续付费两年了,最早学php,然后跟进CI、Laravel等框架,后来学jquery、angularjs等,都在项目中实际应用了,ror、nodejs也跟着学了学,但是没有机会使用。

老外高手做的教学不但教程安排合理,节奏比较快,不浪费你的时间而且让你能够保持高度注意力集中,并且可以看看高手的编程习惯和工具,学习到的都是业界最新的东西,如各种编辑器的workflow,秒杀国phper的视频。

研究php内核

php技术架构

最好能参与php开源项目

-------------------------------------------------------------

四、常见问题

技术线(偏深度):

1. 基础知识,比如数据结构,多线程,I/O,Http协议等

2. 语言深度,比如PHP的运行机制,性能优化,APC(以及其原理等)

3. 源码阅读,比如看过哪些框架,其中的机制是怎么样的,往细了问

4. 知识宽度,静态语言,比如C、Java等,我始终觉得只会一门语言不是什么好事情

分享10条PHP性能优化的小技巧:

(1)foreach效率更高,尽量用foreach代替while和for循环

(2)循环内部不要声明变量,尤其是对象这样的变量

(3)在多重嵌套循环中,如有可能,应当将最长的循环放在内层,最短循环放在外层,从而减少cpu跨循环层的次数,优化程序性能

(4)用单引号替代双引号引用字符串以实现PHP性能优化

(5)用i+=1代替i=i+1。 符合c/c++的习惯,效率还高

(6)优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作,达到PHP性能优化的目的

(7)尽量的少进行文件操作,虽然PHP的文件操作效率也不低的

(8)尽可能的使用PHP内部函数

(9)在可以用PHP内部字符串操作函数的情况下,不要用正则表达式

(10)feof、fgets、fopen、在可以用file_get_contents替代file、系列方法的情况下,尽量用 file_get_contents,因为它的效率高得多。 但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值