手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP

step by step 学习PHP之一

这是一个比较初级的教程,应该也会一直延续下去,直到这一次教完结束
上课之前的准备
1、AMP程序,关于这一类的程序相对比较多,我这里还是推荐妖怪的apmxe,嗯,在这里有下载:apmxe备份
2、JRE ,如果你有安装360,直接到软件中心可以下载,否则到sun.com找到jre下载:http://java.com/zh_CN/download/windows_xpi.jsp?locale=zh_CN
3、netbeans ,一款用来开发PHP的IDE(事实上有很多种IDE,但我推荐它的原因是免费、跨平台),下载地址为:http://netbeans.org/downloads/start.html?platform=windows&lang=zh_CN&option=php
4、editplus 如果仅仅用来修改一两个单独的PHP文件,那么editplus应该是可选的【备用软件notepad++,理由是它免费,而editplus不免费】,editplus官网地址:http://www.editplus.com
5、PHP中文手册,开发PHP时的必备之选,下载地址:http://phpdocs-cn-chm.googlecode.com/files/php_manual_en-HonestQiao-20110507-Beta-V0.9.8.gz

OK,做完上述准备工作,让我们先一步一步的开始
1、安装apmxe,安装过程中,我们选择目标地址为d:\www,因此最终生成的路径就是d:\www\apmxe,打开这个目录会发现里面已经有很多目录了:apache22,php5,mysql5,cgi-bin,htdocs,etc,var等目录。现在我们一一介绍一下这些目录:

  1. apache22,这是apache存放的目录
  2. php5 ,自带的是PHP5.2,还不是5.3,主要因为5.3中有一些功能暂时还用不上,所以5.2也足够了
  3. mysql5 ,嗯mysql5 server,具体版本是 5.0.27,虽然有点老,但足够了
  4. cgi-bin,这个目录一般是用来处理perl的,但APMXE里并没有自带perl,因此这个目录你就当成是无效的吧(如果你有安装perl,也可以尝试着看一下目录下的文件)
  5. htdocs,WEB存放的目录,系统安装完后,已经有一些自带的程序在里面了,是QEE的一些案例,由于目前我们不是学习QEE开发,因此可以将目录下的examples和qeephp这两个目录先备份后再删除,当然phpmyadmin和xcache-admin目录还是保留着。phpmyadmin是一个可视化管理mysql的WEB程序,xcache-admin则是用来对xcache进行管理的程序。
  6. etc,apmxe程序的一些配置文件,如果你需要更改配置,修改后缀名为.template的文件,修改完后,重启apmxe,则会自动更新成最新的配置。直接修改配置文件是无效的。程序每次运行都会将.template的文件更名覆盖配置文件。
  7. var目录,很明显这是一些存放环境变量的目录,apmxe是绿色软件,因此session和tmp都不会写到系统目录里,都默认放到var目录下了。仔细看一下data目录,其实这是mysql的数据库文件,LOGs目录则是存放了WEB运行的一些日志,包括访问正常和不正常的一些日志等,用于查看WEB运行时的一些记录。

  推荐apmxe还有另外一个原因,那就是此版本的apmxe默认apache运行的端口是9000,因此访问的路径是:http://localhost:9000/ ,这有什么好处呢?它避免了下载软件和apmxe同时打开的时候,80端口的冲突(很多下载软件为了提速,都占用了80端口)
2、安装JRE,再安装netbeans。
3、安装editplus,【关于editplus可配置的东西就太多了,可以查看:http://neatstudio.com/?action=search&searchid=1118】

-----------------------------------------------------------------------------
打开netbeans,创建一个PHP的项目,项目目录指向到d:\www\apmxe\htdocs\lesson1,PHP运行环境选择为5.2,项目名称改为lesson1,点击下一步,将默认访问的URL :http://localhost/lesson1改为带端口的http://localhost:9000/lesson1,然后直接点击完成。

在IDE左侧的项目管理窗口中点击窗口前的+号,在源文件目录下点击右键,创建PHP文件,内容如下:

PHP代码
  1. <?php  
  2. echo "hello ,world";  
  3. ?>  

然后按F6,我们可以在浏览器里发现页面上输出了hello,world【说明,F6是运行项目的意思】

 

在上面的代码中我们要说明几点,<?php ,这个代表了PHP代码的开始,虽然也可以写成<?,但我们还是需要从标准出来,不要使用简写,而是需要用完整的<?php来进行表示。

既然<?php代表了开始,那么什么代表结束呢?OK,从上面的代码里我们可以看到?>,是的"?>"这个就代表了PHP代码的结束,因此我们可以认为,一段完整的PHP代码是应该包含在<?php 与 ?>之间的。

接下来我们说明一下echo "hello,world";

echo 是PHP的一个函数,它用来对浏览器中进行输出。常用的语法是echo $val; $val是一个非array或object或resource的变量(当基于这些变量时,输出的结果并非预料中的结果 )

被双引号""包含着的hello,world,是一个字符串,因此在初期我们可以认为echo 被用来输出字符串到浏览器显示。

最后,每一句PHP代码的结束标记是;,当一个PHP语句中出现了;,也就代表了该行代码的结束。

-------------------第一课先到这里,第一课我们了解了PHP运行环境以及IDE的安装,并写了一个程序员们爱用的hello world做了一个简单的测试,并在浏览器正常输出。

 下一课我们会讲解变量,常量以及赋值。如果对于上文有意见和建议,可以通过留言来反馈。谢谢

Tags: php, learn, apmxe

在Yii框架中使用Hprose或PHPRPC

Yii:

XML/HTML代码
  1. Yii is a high-performance PHP framework best for developing Web 2.0 applications.  
  2.   
  3. Yii comes with rich features: MVC, DAO/ActiveRecord, I18N/L10N, caching, authentication and role-based access control, scaffolding, testing, etc. It can reduce your development time significantly. 

PHPRPC:

XML/HTML代码
  1. PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。  
  2.   
  3. 目前该协议的最新版本为 3.0。该版本目前已有以下几种语言的实现:  
  4.   
  5.     ASP,ActionScript,Delphi/C++Builder/Kylix,Java,JavaScript,NET,PHP,Python,Ruby,Perl,Lazarus(Free Pascal)  
  6.   
  7. 其中 ASP、.NET、Java、Ruby、Python 和 PHP 版本除了提供客户端实现外,还提供了服务器端实现。  

HPROSE:

XML/HTML代码
  1. Hprose (High Performance Remote Object Service Engine) 是一个商业开源的新型轻量级跨语言跨平台的面向对象的高性能远程动态通讯中间件。它支持众多语言,例如 C++, .NET, Java, Delphi, Objective-C, ActionScript, JavaScript, ASP, PHP, Python, Ruby, Perl 等语言,通过 Hprose 可以在这些语言之间实现方便且高效的互通。  
  2.   
  3. Hprose 易学易用,且功能强大,您只需很短时间的学习,就可以用它方便地构建出跨语言跨平台分布式的电信级应用系统。  

如何在Yii中使用Hprose或者PHPRPC呢?我这里简单介绍一下Yii下hprose的应用方法

 

1、下载hprose的PHP版本,嗯,别看了,是混淆过的,但不影响你使用。

2、将下载后的hprose拷贝到yii项目的/protected/extension/hprose目录下

3、新建一个apicontroller:

大小: 43.99 K
尺寸: 299 x 376
浏览: 2031 次
点击打开新窗口浏览全图

我这样的方式是最简单的,将一些actionIndex的方法都公开了,在实际应用中当然不可以这样。不过我这里是测试,当然是无所谓的

访问http://localhost/project/test/ (project是我的项目名称,test是controller, index是action,由于默认action是index,所以我省略了)

浏览器中返回了:

XML/HTML代码
  1. Fa4{s11"actionIndex"s11"afterAction"s5"hello"s3"sum"}z  

由此其实我们也可以基本确认有四个方法可以使用actionIndex,afterAction,hello,sum,这主要是因为我把当前类当成发布对象了。(不主张啊不主张)

 

4、继续下一步,

PHP代码
  1. <?php
  2. include("./protected/extensions/hprose/hproseHttpClient.php");  
  3. $client = new HproseHttpClient("http://localhost/project/test");  
  4. $result = $client->sum(1,2,3,4,5);  
  5. print_r($result);  

 

OK,浏览器输出了15,就这样完成了一个简单的HPROSE应用。

当然我这样的方式太简单了,文档在这里有下载,我就不再画蛇添足的提供了:http://www.hprose.com/documents.php。

因为只是简单的的一些应用,暂时也看不到hprose的性能比phprpc提升了多少。

---------------备注

由于Yii对于大小写敏感,因此在new HproseHttpServer();的时候,Hprose的H不能大写,否则,它会自动寻找HproseHttpServer.php,但由于PHP的hprose的文件中首字母都是小写。因此在new的时候就需要:new hproseHttpServer();

Tags: yii, hprose, phprpc

Oauth二三事

这两天在做微博同步,于是对于oauth又重新开始折腾了。其实在之前我也做过类似的笔记,例如这个 关于oauth的几篇文章 ,于是在做这个同步的时候也参考了这些其中的一两篇,比如老王的基于PECL OAuth打造微博应用,但由于我不想加载pecl的oauth库,所以就不能使用了。
于是我就根据官方的SDK进行了处理,但由于需要同时支持两个或更多微博,结果就造成了oauth类的冲突了。而事实上经过测试,还不能加载一个屏蔽一个,因为有些微博对oauth类中的部分做了修改。于是最后我采用了namespace来解决了这个问题。
因为这次我是把weibo的类库做了独立处理,但由于不是每一台服务器都支持5.3的namespace,也在犹豫是不是要重新修正oauth类,但这样之后,官方的SDK我就不能覆盖性的更新了。真纠结呀。
hightman也在重写类似的东西,大家都在重复造轮子,可是怎么办呢?官方万一更新SDK,添加了新接口,我们怎么办,虽然会有一些接口的URL提供我们调用,但总归是直接使用会更方便啦。随便说说而已,目前已经解决,实在吐血的情况下那我就是干脆自己学着新浪他们一样也提供接口。哈哈,做点无耻的事情。。。

Tags: oauth, namespace, weibo, pecl

yii的一些小技巧

笔记。。。
Yii的cache大家用起来可能是比较爽,直接Yii::app()->cache->get,就over了。在这个时候,我们可以配置相应的cache方式,比如数据库,memcache,apc,eacc.....(太长,记不住),等等。但是,怎么样能够让memcache缓存与文本缓存或其他缓存共用呢?

所以,不要纠结于普通的想法。嗯,在main.php的cache数组元素下,建一个同级数组。如:
        'fc' => array(
            'class' => 'CFileCache',
            'directoryLevel'=>1,
        ),
然后在项目中就可以直接Yii::app()->fc->get,或者Set了。是不是很方便 ?

Tags: yii, memcache, filecache, apc

PHP编码规范

这是一份比较老的规范了,不是我写的,事实上现在看起来也并不是特别的完善,但不要忘了,它是几年前的东西。
其实规范这玩意,只是大家用来忽悠的一套玩意,说有用吧,其实每个人的习惯都不一样,强制规范一下,确实很痛苦,但是不规范吧,如果团队中开发的人很多,那就非常痛苦了。

事实上我更希望是通过IDE来进行格式化,但,每个人喜欢的IDE都不一样,这确实很痛苦。很让人郁闷。。。嗯 。我的代码一般是用NetBeans进行格式化的。定义好formatter后,按alt+shift+f格式化。

这几句话不错:

XML/HTML代码
  1. 标准不是项目成功的关键,但可以帮助我们在团队协作中有更高的效率并且更加顺利的完成既定的任务。  
  2. 1. 程序员可以了解任何代码,弄清程序的状况  
  3. 2. 新人可以很快的适应环境  
  4. 3. 防止新接触PHP的人出于节省时间的需要,自创一套风格并养成终生的习惯  
  5. 4. 防止新接触PHP的人一次次的犯同样的错误  
  6. 5. 在一致的环境下,人们可以减少犯错的机会  
  7. 6. 程序员们有了一致的敌人   

上附件 。。。

附件: php编码规范.chm (45.93 K, 下载次数:2006)

Tags: php, 编码规范