admin

该用户没有分享资料


admin

php实现函数可变参数列表

今天在看wordpress源码时,发现这个用法的,分享之。

主要是利用func_get_args()、func_num_args()、func_get_arg()这三个系统函数来实现的,具体用法参看手册

代码如下:

<?php
/**
* 函数的多参数列表的实现
*
*/
function multiArgs()
{
/** 以数组的形式返回参数列表 */
$args = func_get_args();
/** 参数的个数 */
$args_num = func_num_args();
foreach ( $args as $key => $value )
{
echo ‘This is ‘,$key+1,’th argument:’,$value,’<br/>’;
}
echo ‘Number of args is ‘,$args_num;
}
multiArgs(‘one’,'two’,'three’);

/** output */
/**
This is 1th argument:one
This is 2th argument:two
This is 3th argument:three
Number of args is 3
*/
?>

本文地址:http://www.yaronspace.cn/blog/index.php/archives/277

wordpress插件机制解析

WordPress插件机制

一、    基本原理

WordPress中默认定义了很多扩展点(也可以叫做“钩子”),或者说注册了很多系统事件(WP中的叫法应该是“Action Tag”),比如“post_publish”表示表示发布文章时产生的事件。而插件要做的就是扩展这些扩展点,或者说挂接这些钩子,从而实现系统的扩展功能。add_action就是通常插件扩展某个扩展点用到的函数,而do_action 是扩展点本身开始执行的函数。

二、     实现机制

WordPress中保存了一个全局数组,数组中保存了每个扩展点中挂载(hook to)的函数列表,当执行到这些扩展点时,该扩展点下的函数就会自动执行,示意图如下:

在/wp-includes/plugins.php文件中是wodpress实现插件机制定义的API。值得注意的是:wordpress定义了两种类型的插件API,行为(actions)和过滤器(filters)。这两种类型的API从代码上看没有任 何区别,主要的不同反映在实际应用中。行为(actions)即是在内核执行到某个标记点时所要执行的一系列函数;而过滤器则是内核执行到此标记时,将一 些数据(通常是文本)传递给相应的函数,这些函数在数据库和浏览器之间对数据进行相应的修改,因此起到了“过滤器”的作用。

具体用法参看http://codex.wordpress.org/Plugin_API

本文地址:http://www.yaronspace.cn/blog/index.php/archives/275

php–register_shutdown_function()

void register_shutdown_function ( callback $function [, mixed $parameter [, mixed $... ]] )
Registers the function named by function to be executed when script processing is complete.

空间终于又恢复了~

空间经过三天的宕机,今天终于又重新恢复了,发文庆祝下,呵呵

ubuntu下删除编译安装的软件

1,直接删除目录

2,使用make uninstall不过之前得先进入源码文件进行./configure 然后才是make uninstall

本文地址:http://www.yaronspace.cn/blog/index.php/archives/269

tar.bz2文件解压方法

bzip2 -d  php.5.0.1.tar.bz2 会生成一个tar保,然后用tar命令进行解压

tar -xvf php.0.1.tar

本文地址:http://www.yaronspace.cn/blog/index.php/archives/267

tomcat启动多个实例的方法

第一种方法:安装多个tomcat应用程序,配置server.xml文件,使对应的端口没有重复即可。

第二种方法:一个tomcat应用程序启动多个端口;主要是通过配置server.xml文件来实现,<Service></Service>对应一个实例,通过增加多个<Service></Service>来实现多个tomcat实例。具体请参看:http://www.javaeye.com/topic/51128

本文地址:http://www.yaronspace.cn/blog/index.php/archives/265

tomcat中server.xml里三个端口的含义

shutdown端口: <Server port=”8005″ shutdown=”SHUTDOWN”>

http端口:<Connector port=”8080″ maxHttpHeaderSize=”8192″ maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″ enableLookups=”false” redirectPort=”8443″ acceptCount=”100″ connectionTimeout=”20000″ disableUploadTimeout=”true” />

AJP端口:<Connector port=”8009″ enableLookups=”false” redirectPort=”8443″ protocol=”AJP/1.3″ />

本文地址:http://www.yaronspace.cn/blog/index.php/archives/263

axis2介绍与快速入门

Axis2 is a Web Services / SOAP / WSDL engine, the successor to the widely used Apache Axis SOAP stack. There are two implementations of the Apache Axis2 Web services engine – Apache Axis2/Java and Apache Axis2/C.

快速入门:http://hideto.javaeye.com/blog/56835

本文地址:http://www.yaronspace.cn/blog/index.php/archives/261

在eclipse的环境下使用wtp开发web service【zz】

step 1:新建web project
eclipse的perspective切换到wtp提 供的j2ee的视图下。新建一个Dynamic web project取名为webservicedemo, 可以看到在webservicedemo project下面有三个文件目录。其中JavaSource是java源代码的目录, WebContent是web资源的目录, 包括jsp, web.xml等等资源。

step2: 新建一个简单的java class。
在JavaSource下新建一个自己的java class, 比如com.hairroot.test.logic. TransferMoney
public boolean transferMoney(float amount, String fromAccoutId, String
toAccountId) {
System.out.println(“transfering “+amount+” money from Account ”
+ fromAccoutId+” to “+toAccountId);
return true;
}

step3: 使用wtp发布java class.
右键TransferMoney class, 在右键菜单中可以看到有wtp提供的一个Web Services的支持。点击Create Web Service.这样按照wtp提供的wizard, 一步一步走下去就可以很顺利地将自己的java class发布成为web service.

事情就是这么简单, 当发布成功并且我可以在wtp自己为我建的webservicedemoClient的环境下测试自己的web service的时候, 心中还是万分激动的。:)

事实上, wtp0.7使用的axis1.2的版本来对web service来进行支持。 没有axis学习经验的人可能完全不知道自己的web service是怎么被发布出来的, 不过这都没有关系, 重要的是使用wtp的确能够使开发-发布web service变得很简单。

本文地址:http://www.yaronspace.cn/blog/index.php/archives/259