您的位置:

下载php封装类方法(php封装协议)

本文目录一览:

ThinkPHP中怎么使用自定义的封装类

类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php;

类的命名空间地址和所在的路径地址一致,例如 Home\Controller\UserController类所在的路径应该是 Application/Home/Controller/UserController.class.php;

确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写);

类名和文件名一致(包括上面说的大小写一致),例如 UserController类的文件命名是UserController.class.php, InfoModel类的文件名是InfoModel.class.php, 并且不同的类库的类命名有一定的规范;

类的导入加载可以参考手册的命名空间和自动加载,下面是地址:

命名空间:

自动加载:

如何在php扩展中封装一个c++类

首先,要到了Query归一化的C++版本源代码。

query归一化

引用第三方的类库有两种方法,一种是静态引用,一种是动态引用,推荐使用静态引用,因为静态引用的情况下,会把类库打包到php的扩展.SO文件中,这样我们不必担心依赖关系,带着类库到处跑了。

先用gcc产生.o文件,再用.o产生 最终的静态库 .a 文件

gcc -c -fpic queryword.cpp tradmap.cpp transcode.cpp -I . -O2

ar -r libqueryword.a queryword.o tradmap.o transcode.o

上边图中有产生的.o 和 .a文件

如果要动态编译so的话,就是这个:

gcc -c -fpic -O3 queryword.cpp tradmap.cpp transcode.cpp -I .

gcc -shared queryword.o transcode.o tradmap.o -o libqueryword.so

好,现在有了libqueryword.a静态库,我们就可以开始做我们的扩展了。

先使用ext_skel工具生成我们框架的骨架.

./ext_skel –extname=queryword

把上边的静态库放到 ./lib 目录下。

然后修改config.m4文件。

去掉一些注释符 dnl, 再添加两行,最后config.m4里,有用的就是这几行。

PHP_ARG_ENABLE(queryword, whether to enable queryword support,

Make sure that the comment is aligned:

[ --enable-queryword Enable queryword support])

if test "$PHP_QUERYWORD" != "no"; then

PHP_ADD_INCLUDE(./lib)

PHP_ADD_LIBRARY(stdc++, 1, QUERYWORD_SHARED_LIBADD)

PHP_ADD_LIBRARY_WITH_PATH(queryword, ./lib, QUERYWORD_SHARED_LIBADD)

PHP_REQUIRE_CXX()

PHP_SUBST(QUERYWORD_SHARED_LIBADD)

PHP_NEW_EXTENSION(queryword, queryword.cpp, $ext_shared)

fi

其中:

PHP_REQUIRE_CXX()用于指定这个扩展用到了C++

PHP_ADD_LIBRARY(stdc++, 1, QUERYWORD_SHARED_LIBADD) 用于将标准C++库链接进入扩展

PHP_NEW_EXTENSION用于指定有哪些源文件应该被编译,文件和文件之间用空格隔开.ext_skel默认生成的模块框架是针对C的,我们要使用C++,那以上说明的两个宏就是必须的.另外还要把queryword.c改名成queryword.cpp,所以PHP_NEW_EXTENSION原本包括的queryword.c也要修改.

默认生成的queryword.c(现在改名为queryword.cpp)了,已经包含了一个测试性质的导出函数,通过那个例子就可以大概明白怎么添加自己的函数了. zend_function_entry是导出函数列表, zend_module_entry描述了模块的信息. 不过因为是C++了,还是有几点要修改的,否则跑不起来:

网上下载了一个封装好的php源码,如何在另一个php文件中调用这个get_code_image的函数呢?

假设你这个二维码类的名字是Code

能实例化的,直接new一下,

$xxx = new Code;

$yyy = $xxx-get_code_image('');

就可以直接调用这个类下的方法了;

如何使用PHP获取客户端及服务器端IP的封装类

本文实例讲述了PHP获取客户端及服务器端IP的封装类。分享给大家供大家参考,具体如下:

客户端IP相关的变量:

1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP。

2. $_SERVER['HTTP_CLIENT_IP']; 代理端的IP,可能存在,可伪造。

3. $_SERVER['HTTP_X_FORWARDED_FOR']; 用户是在哪个IP使用的代理,可能存在,可以伪造。

服务器端IP相关的变量:

1. $_SERVER["SERVER_NAME"],需要使用函数gethostbyname()获得。这个变量无论在服务器端还是客户端均能正确显示。

2. $_SERVER["SERVER_ADDR"],在服务器端测试:127.0.0.1(这个与httpd.conf中BindAddress的设置值相关)。在客户端测试结果正确。

类如下:

class getIP{

function clientIP(){

$cIP = getenv('REMOTE_ADDR');

$cIP1 = getenv('HTTP_X_FORWARDED_FOR');

$cIP2 = getenv('HTTP_CLIENT_IP');

$cIP1 ? $cIP = $cIP1 : null;

$cIP2 ? $cIP = $cIP2 : null;

return $cIP;

}

function serverIP(){

return gethostbyname($_SERVER["SERVER_NAME"]);

}

}

$getIP = new getIP();

$clientIp = getIP::clientIP();

$serverIp = getIP::serverIP();

echo 'Client IP is ',$clientIp,'br /';

echo 'Server IP is ',$serverIp,'br /';

ThinkPHP里面怎么使用自己封装的类

TP:是一个PHP开源框架,你可以理解成一个工具箱把。里面很多类啊,业务逻辑啊都是封装好的,有自己的使用规则。如果你PHP不是很精通,我建议你还是先去做原生态的PHP,然后再用框架比较好。嘿嘿。

CMS:是一个内容管理系统,它不是一个特定的东西,很多公司都有CMS。

总结:TP是工具,CMS是产品。这样能理解吗?

分析:我估计你的意思可能是想找一个目前公司使用比较广泛的东西,给自己定目标是吗?怎么说呢。还是那句话,你的PHP不精通,这两个弄起来很困难,而且很费时间。不划算,知识这个东西不能空中楼阁,要一点一点的来,慢不怕,关键是每一天都有进步。这里我给你一点建议把。

建议:

1.PHP基础,函数的使用,自定义函数,变量的作用域,“”的作用等等,都 是基础的东西。

2.OOP,传说中的面向对象,这个怎么说呢,说复杂也复杂,说简单也简单,我的方法是你把生活中的东西抽象出来就学的很快。它包括的内容比较宽泛,需要上面第一条的基础,只要你第一条越扎实,你学OOP就回越快。OOP这个东西是个思想。建议:你开始的时候只要能看懂,能明白别人代码里OOP的意思就OK了,然后自己写一写。这里还包括有些东西,继承啊,封装啊,多态啊。你先了解着三者的用途,然后是抽象类啊,抽象方法啊,他们的规则啊,比如抽象类不需要实现,但其中必须要包含一个抽象方法啊。接口啊,接口是允许继承多个接口的,然后了解一下接口和抽象类的区别。然后再去研究一下PHP OOP里面的一些固定的语法或者说是规则。然后就OK拉,西西。

3.了解设计模式,自己写点东西,对这玩意有所了解,别学完了都忘了。。

4.然后你就可以去看TP或者CMS只类的东西了,对于CMS我建议,你还是先会用,然后再去研究它的构造。西西。