PHP相关概念

编程语言:

静态语言:编译型语言
C,C++,JAVA
优先:性能好,比解释语言高30%
缺点:每一次改动都得重新编译,用户接口不是那么好,很多东西都需要自己去写封装,开发周期长,维护成本大

动态语言:解释型语言
shell,perl,python
优点:开发周期短,开发成本低,各种造好的轮子直接拿来用,便于维护
缺点:性能差

facebook
动态语言->静态语言
php -> Hiphop ->C++

bash
perl
python Django
java, jsp, ssh(Spring, Structs, Hibernate)
ruby, rails
asp, php

学程序捷径步骤:
1.基本语法
2.算法,数据结构
3.编译原理

程序员需要懂语言,看语言,最后要能自己写出来,内化成自己的。

训话:一个人必须做自己最擅长的工作,如果不能做自己最擅长的工作,一定要用自己最擅长的方式去做自己工作

PHP is Hypertext Preprocessor 超文本预处理器

bash:
词法分析
语法分析(句法分析)
生成执行路径

opcode:操作码
php解释型,php
php
php source code --> 编译成二进制 --> 执行二进制
Zend:opcode

1.Scanning(Lexing)-将php代码转换成语言片段(Tokens)
2.Parsing 将Token转换成简单而有意义的表达式
3.Compilation-将表达式编译成opcodes
4.Execution-顺序执行opcodes,每次一条,从而实现php脚本的功能

CGI
Common Gateway Interface

request --> apache发现时php请求 --> php解释器解释成html --> apache的到html-->response

嵌入式web开发语言
index.php


?>

第一种模式:
CGI模式:apache + php解释器--这叫CGI模式

第二种工作模式:
模块模式Module机制:apache的本质是DSO:dynamic shared object
所以可以把php编译成apache共享模块,php_mod
不过这样apache既要处理静态也要处理动态内容

第三种工作模式:
FastCGI机制:apache + php服务器(内部有很多空闲的进程)-这样就不在是基于CGI了

Nginx比apache性能要好得多

php5.4已经内置了第三种工作模式,Nginx+fpm

yum install php53 php-mbstring
rpm -ql php53

你可能感兴趣的:(PHP相关概念)