uchome的二次开发有感

来源:互联网 发布:在虚拟机中安装ubuntu 编辑:程序博客网 时间:2024/05/16 04:59

网络上关于uchome的二次开发的讨论和研究蛮多,我也是站在这些前人的肩上走过来的。以前是写c++,做应用程序的,从一个web开发和php的门外汉到基本了解web开发方法,也算是经过了一个艰难的时期。不过总体来说,还算顺利,很感谢上一个公司项目给我的帮助 - 用c++写得cgi,让我对http,html,json,javascript,xml+xsl,flash都有一定的基础。

我想,用c写过web程序的人,在理解上可能比直接写php,jsp,asp的朋友来来的深刻。因为有很多web程序的基础构件要靠你自己来完善,但是现在主流的服务器后台语言框架都帮你做了,比如说:get/post的数据编解码,http头,url重定向,缓存机制,session。我不算是精通,但从c写得cgi角度来讲,也算是入门了吧。总之,如果有对web开发原理感兴趣的朋友,可以考虑用c写写cgi。呵呵,扯远了。

对uchome二次开发,我认为简单来说必须掌握以下几点:

  网站入口文件需要include common.php

比如space.php, cp.php, do.php,作为网站入口,需要初始化很多全局变量,比如$_SGLOBAL

在入口php之后,是具体的模块php,具体的分发机制在入口文件中实现

你需要了解其原理是url中‘ac'或者'do'字段指定的内容,比如cp.php?ac=profile,那么打开的就是模块文件就是cp_profile

然后你需要掌握uchome里面全局变量的作用

这里有很多朋友都有说过,你可以google以下,我用的比较多得可就是$_SGLOBAL['db']和$space

调试方法

你最好有个支持debug的浏览器,我用的是google chrome,你可以用firefox。另外uchome里面的API showmessage()也很有用,可以查看很多变量。当你不清楚某一个全局变量到底是什么东西时,你可以用print_r在模板里面打出来,比如<!--{eval print_r($space)}-->,或者直接在php文件中用showmessage(print_r($space,TRUE))

最后讲一下对uc_client的扩展

uchome主要使用了php的call_user_func()函数,在uc_clinet/client.php中,一般指向uc_api_mysql,而uc_api_mysql()函数则负责分发到uc_client/control中的on*函数,再由on*函数call到uc_client/model中操作uc数据库。

末了,欢迎大家来我的网站“乐上网”,这是个基于uchome二次开发的SNS。主要功能是帮助你找到和你兴趣爱好相同的朋友,这是一个专门针对“兴趣爱好”的SNS,在乐上网,兴趣爱好不再是自我简介中的一段话,而是可选项。现在网站还比较朴素,但基本功能已经具备,希望大家来提点意见!

原创粉丝点击