php介绍

javaphp比较:

参见文章:

http://blog.csdn.net/jinxfei/archive/2010/08/10/5801280.aspx

http://www.zendstudio.net/archives/some-php-development-tips-from-my-own/

上手复杂度:PHP

我用 Java 做了 2-3 年的 Swing 开发,然后转向WEB,第一个接触的框架是 Struts,当时的感受就是要配置的东西太多了,前后鼓捣了三个多月,才感觉渐入佳境了。

如今PHP从开始了解到现在总共三个月左右的时间(而且只是业余时间),其中有一周的时间在看PHP官网的文档,了解主要的语言特性,后面基本上就是边看边改代码,并照猫画虎的写东西。虽说当年对软件开发的理解不能和今天相提并论,但客观的说,PHP的确简单、易学,而且特别适合做WEB开发。

开发感受:各有胜场

PHP
最让我不爽的地方:

经常是出错后屏幕一片空白(White ScreenOf Death,都有专有名词了,可见这是PHP出错表现的一大特性),什么信息都没有。

这可通过error_reporting (打印在web容器log里)和 display_errors(直接在输出上显示)来设置
开发工具的auto complete能力远不如javaIDE方面还在起步阶段

PHP比较爽的地方:

php中,数组和哈希表等价,而且是使用最广泛的数据结构,变长参数+数组做参数,能大大提高写代码的灵活性。

基本上不用为NPE(null pointer error)担心。Php存在垃圾自动回收机制

访问数据库比JDBC简单多了,不用什么持久化框架也能很快的写出类似DAO的代码。Php也存在ORM框架,但是php的特点不适合搞这些东西,php就是要简单,高性能,针对特定应用。

许多专为WEB设计的特性,使得从页面获取信息,或者向页面输出信息都变得非常轻巧。

谈不上爽或者不爽的特性:

echo 的内容直接到前台页面上了,一开始我以为echojavaSystem.out一样,会写到日志。

由于不像Java那样对classpath以及class的路径有着严格的要求,一时之间还不习惯,原来创建一个Java类放在什么地方基本上没什么可考虑的,但现在经常要决策一个文件该放在哪个目录下。

因为可以OOP,也可以不OOP,所以,增加新功能点的时候,经常很纠结O还是不O

代码风格啊!太习惯了getData这样的命名,是在不适应get_data这样的函数,因此,执着着,没有入乡随俗的改过来,也好,一眼就可以看出,哪些是属于框架的,哪些是属于我的。
平台对比
如果拿PHPJAVA比,我觉得PHP是瑞士军刀,而JAVA则是家庭五金维修工具N件套,N >=100,在解决网站开发这一问题上,PHP的确是小巧、易用,但也有不尽如人意的地方。
比如,我发现J2EE中几乎必不可少的JDBC连接池,在PHP中约等于无,所以,用户请求过来,如果需要访问数据库,都是现连、现取、现关,究其原因,是架构不同造成的。
  实际上,J2EE中有Web Container的概念,用户请求是由Container分配的线程完成的,线程可以使用进程的内存空间交互数据;PHP是依附于Apache的,每 次用户请求,Apache都启动一个新的进程来执行PHP脚本,进程执行完,一切资源都回收了,所以在默认情况下,一个PHP脚本想要留下点全局的东 西并不容易(我一开始就被 global 这个关键词给骗了);当然,也不是说不同的请求之间完全没法交换数据,只是这样需要使用共享内存,或者使用文件做持久化。
不过,Apache用进程处理请求应该比线程模式要更加健壮,因为在J2EE中,因为一个线程的问题导致整个Container挂掉的情况屡见不鲜。
OOP
PHP主流版本已经对OOP的支持很好,但因为历史原因,好多PHP的开源项目的代码都是不那么OOP的。一开始,我是跟着框架的习惯,用不怎么OOP的方式写代码,在写了十几个零散的函数之后,终于忍不住,又全部重构成对象了。
  做了这么多年的JavaOOP的思想已经非常深入,虽然当年从学校出来的时候,也是从结构化程序设计转向面向对象的,但N年之后,再从面向对象转向结 构化,这种不习惯的感觉更加强烈。也许是OOP真的是更加符合自然的思考习惯吧,现在看着一长串的零散的函数,很有一种不安全的感觉,况且还要挖空心思的 为方法起名,以避免冲突,累!
总结
1、应该把PHP纳入自己的开发工具箱
2PHP不够完美,但可圈可点之处甚多。
3、面向对象为PHP增色不少
4、在开源领域,PHP方面比较发达的是最终应用,所以才有那么多人使用wordpress建独立博客,哪怕没有开发经验;JAVA方面比较发达的是开发框架和类库,给程序员们使用的。从这个角度来讲,Java是个小众的语言。 

php联合java

http://hi.baidu.com/lei0827/blog/item/28439a4e923234ced1c86a18.html

直接调用的方式

1、种是用php自身带的模块调用java(经过网友的证明发现这种方法不好)。

2、通过php-java-bridge模块调用java。(经过网上普遍推荐)。[最新的版本实现是基于pjb,感觉倒不如直接用http调用.]


间接调用的方式

3、通过webservice或者直接http方式访问java服务

 

xmpp php

http://code.google.com/p/xmpphp/ 这个稍微强一点

http://www.code.blitzaffe.com/pages/phpclasses/files/jabber_client_52-11

由于php对多线程支持的不好,且对象生命周期短,几个php xmpp库都不理想,不知道怎么实现webchat。

考虑的问题:怎么在1个session里面保持住连接,不至于每次请求都登陆一次吧。

 

php运行环境:

web服务器(apache, nginx)--开源免费

php--开源免费

zendframework--开源免费

经过实际应用证明的高性能,稳定,可用。

http://blog.s135.com/post/314/

http://lin128.blog.51cto.com/407924/277272

http://guogoul.com/2008/07/08/nginx_2/

 

使用php的应用:

www.yahoo.com

www.baidu.com

www.sina.com

www.163.com

www.sohu.com

这些就足够了


Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1