Submitted by gouki on 2011, June 29, 11:40 AM
Submitted by gouki on 2011, June 27, 10:26 PM
这是一个比较初级的教程,应该也会一直延续下去,直到这一次教完结束
上课之前的准备
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等目录。现在我们一一介绍一下这些目录:
推荐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文件,内容如下:
然后按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做了一个简单的测试,并在浏览器正常输出。
下一课我们会讲解变量,常量以及赋值。如果对于上文有意见和建议,可以通过留言来反馈。谢谢
Submitted by gouki on 2011, June 29, 3:24 PM
Yii:
PHPRPC:
HPROSE:
如何在Yii中使用Hprose或者PHPRPC呢?我这里简单介绍一下Yii下hprose的应用方法
1、下载hprose的PHP版本,嗯,别看了,是混淆过的,但不影响你使用。
2、将下载后的hprose拷贝到yii项目的/protected/extension/hprose目录下
3、新建一个apicontroller:
我这样的方式是最简单的,将一些actionIndex的方法都公开了,在实际应用中当然不可以这样。不过我这里是测试,当然是无所谓的
访问http://localhost/project/test/ (project是我的项目名称,test是controller, index是action,由于默认action是index,所以我省略了)
浏览器中返回了:
由此其实我们也可以基本确认有四个方法可以使用actionIndex,afterAction,hello,sum,这主要是因为我把当前类当成发布对象了。(不主张啊不主张)
4、继续下一步,
OK,浏览器输出了15,就这样完成了一个简单的HPROSE应用。
当然我这样的方式太简单了,文档在这里有下载,我就不再画蛇添足的提供了:http://www.hprose.com/documents.php。
因为只是简单的的一些应用,暂时也看不到hprose的性能比phprpc提升了多少。
---------------备注
由于Yii对于大小写敏感,因此在new HproseHttpServer();的时候,Hprose的H不能大写,否则,它会自动寻找HproseHttpServer.php,但由于PHP的hprose的文件中首字母都是小写。因此在new的时候就需要:new hproseHttpServer();
Submitted by gouki on 2011, June 1, 10:10 PM
这两天在做微博同步,于是对于oauth又重新开始折腾了。其实在之前我也做过类似的笔记,例如这个 关于oauth的几篇文章 ,于是在做这个同步的时候也参考了这些其中的一两篇,比如老王的基于PECL OAuth打造微博应用,但由于我不想加载pecl的oauth库,所以就不能使用了。
于是我就根据官方的SDK进行了处理,但由于需要同时支持两个或更多微博,结果就造成了oauth类的冲突了。而事实上经过测试,还不能加载一个屏蔽一个,因为有些微博对oauth类中的部分做了修改。于是最后我采用了namespace来解决了这个问题。
因为这次我是把weibo的类库做了独立处理,但由于不是每一台服务器都支持5.3的namespace,也在犹豫是不是要重新修正oauth类,但这样之后,官方的SDK我就不能覆盖性的更新了。真纠结呀。
hightman也在重写类似的东西,大家都在重复造轮子,可是怎么办呢?官方万一更新SDK,添加了新接口,我们怎么办,虽然会有一些接口的URL提供我们调用,但总归是直接使用会更方便啦。随便说说而已,目前已经解决,实在吐血的情况下那我就是干脆自己学着新浪他们一样也提供接口。哈哈,做点无耻的事情。。。
Submitted by gouki on 2011, May 26, 6:02 PM
笔记。。。
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了。是不是很方便 ?