php语言是什么?
PHP,即“PHP: Hypertext Preprocessor”,是一种被广泛应用的开源通用脚本语言,尤其适用于 Web 开发并可嵌入 HTML 中去。
它的语法利用了 C、Java 和 Perl,易于学习。该语言的主要目标是允许 web 开发人员快速编写动态生成的 web 页面,但 PHP 的用途远不只于此。
<html>
<head>
<title>Example</title>
</head>
<body>
<?php
echo "Hi, I'm a PHP script!";
?>
</body>
</html>
现状
zend公司 以及 zend引擎
PHP最开始是由Rasmus Lerdorf在1994年发明,原名为Personal Home Page(PHP),最初底层由perl语言开发,后改为C语言开发,此时的PHP/IF即为用C语言开发的一些CGI工具程序集... 1995年6月8日Rasmus Lerdorf将PHP/FI的代码公开。任职于Technion IIT公司的两个以色列程式设计师:Zeev Suraski和Andi Gutmans,重写了PHP的解释器,成为PHP 3的基础,而PHP也在这个时候改称为Hypertext Preprocessor (PHP). 经过几个月测试,开发团队在1997年11月公布了PHP/FI 2,随后就开始PHP3的开放测试,最后在1998年6月正式发布PHP3。Zeev Suraski和Andi Gutmans在PHP 3发布后开始改写PHP的核心,在1999年发布的PHP解释器命名为Zend Engine,Zend来源于这两个人名字中的Zeev 和 A****ndi, 而他们也在以色列的Ramat Gan成立了以他们的名字命名的Zend Technologies公司来管理PHP的开发。PHP4+以上版本,虚拟机(解释器) 从此被称为 Zend Engine。
其他主要公司
facebook HHVM(HipHop Virtual Machine)
在php7出现之前就是高性能php引擎的代名词,php7出来之后无明显优势,可能会放弃php
php与其他语言的对比
简介
- javascript 多用在浏览器中,但最近几年因为node.js的兴起,可以用来搭建异步服务器,全栈工程师最爱
- java 全能,独有的gc机制,目前应用最广泛。缺点是强调运行效率而太重
- python 全能,易上手,除了运行效率外没有任何硬伤
- php 只能开发服务器端程序,易上手,运行效率偏低,为了向下兼容有很多比较难理解的语法
具体语法
- python open('xxx.txt')
- php fopen('xxx.txt')
- java
简单 File xxfile = new file(xx);filereader(xxfile);
复杂 new BufferedReader(new InputStreamReader(new FileInputStream("xxx.txt")));
- python print('hello')
- php echo 'hello';
- java system.out.println('hello');
开发、运行效率
从语法上来说,java是为了改进c而诞生,因此仍然是面向机器
Make it fast, even if it is not guaranteed to be portable
php/python 对开发者友好,开发效率高,运行效率低。
运行效率 C>java>php>python
开发效率 python>php>java>c
但是80%的阻塞可能只来自20%的代码,对于这种代码,可以用c来重构,然后被php/python都可以调用。
常用的开发工具
从价格上也可以看出现在各个语言的差距
- java intellij 企业/个人 499/149 美元
https://www.jetbrains.com/idea/buy/#edition=commercial - php phpstorm 企业/个人 199/89 美元
https://www.jetbrains.com/phpstorm/buy/#edition=commercial - python pycharm 企业/个人 199/89 美元
https://www.jetbrains.com/pycharm/buy/#edition=commercial
php的两个重要扩展
pecl
http://pecl.php.net/
用c语言开发的扩展,被官方所承认,运行速度最高
composer
https://packagist.org/explore/
用php语言开发的扩展,现在最被常用,鱼龙混杂
因为php语言是脚本语言不需要编译,所以即使插件不不符合自己的需求也容易修改
中国镜像 https://www.phpcomposer.com/
pear
如果是老代码,也常可以看见,目前基本利用不多
框架自己的扩展 yii2
http://www.yiichina.com/extension
php开发的常用web框架
国内 thinkphp 通用 laravel ,yii
既可以通过下载zip包的形式进行部署,也可以通过composer来安装
下面是网上对于其他框架的一些看法
类似yaf,Phalcon 这些 C 扩展的框架,除了带来性能的提升外,几乎没有别的优势,所以它的场景非常明确,就是牺牲运维和开发舒适度,追求 PHP 极限性能的场景。
1. 它并不是唯一的提升性能的办法,比起 db 端,web 端水平扩展非常容易,nginx 负载均衡,或者弄个 haproxy,把机器堆起来,基本也就解决问题了。追求单机性能,上 HHVM 难度也并不大。
2. 网站在访问量变大的过程中,往往最先顶不住的是 db,除非你的需求特殊,或者你的网站已经大到某种程度,你花在 db 端优化的时间绝对超过你花在 web 端的时间。
3. 因为是pecl扩展,运维 部署 开发都带来了一定的麻烦。不想展开了,稍微想想应该就能明白。
总而言之,除非需求特殊,都不建议项目上 yaf,人生苦短,请用 Laravel。
php开发的常用产品
cms类wordpress , 论坛类 discuz
学习途径
- https://www.imooc.com/learn/54 一些网上的入门教程
- http://php.net/manual/zh/index.php 官方文档
- http://www.yiichina.com/doc/guide/2.0 常用web开发框架yii2 开发指南