##二次开发>加载类
>文件夹名 : __Class
**命名规则**
类的命名规则以“.class.php”结尾
文件名前面部分和类名必须相同
如:"user.class.php"
~~~
class user{
//...自己的代码
}
~~~
* * * * *
**存放位置**
请将类存放在程序目录下的“__Class"文件夹中
>如果有父程序,也可以存放在父程序的"__Class"文件夹中
系统会自动由下往上遍历
* * * * *
**加载方法**
>C($classname,$path,$init)
@参数1:类名
@参数2:模块目录,请写相对路径,如"Group1" ,非必须, 缺省值是当前控制器目录,如果是整数会被当作参数3
@参数3:是否返回实例化对象,每个大于0的数字都是一个独立的实例对象
**实例**
http://phpstart.xyz/test/group1/index/cat
~~~
class index{
function cat(){
C("cat");
}
}
~~~
第一步:执行/test/group1/index.php中的 cat()方法
第二步:判断"/test/group1/__Class/"目录下"cat.class.php"是否存在,如果不存在则往上遍历(第三步)
第三部:判断"/test/__Class/"目录下"cat.class.php"是否存在,如果不存在返回false,存在则引入类文件,默认会返回实例对象
**实例参考2**
http://phpstart.xyz/test/group1/index/dog
* * * * *
**调用其他模块(子程序)的类**
调用其他程序的类,只需要带上模块的目录即可
**实例代码**
~~~
class index{
function dog2(){
echo "new index()->dog2()<br />";
$dog = C('dog','group2');
$dog->talk();
}
}
~~~
上面的代码会从test/group2/__Class 开始往上遍历
* * * * *
**调用其他程序的类**
调用其他程序的类,只需要$path以“/”开头,并附上相对于项目根目录的相对路径
**实例**
~~~
class index{
function dog3(){
echo "new index()->dog3()<br />";
$dog = C('dog','/test2/group2');
$dog->talk();
}
}
~~~
上面的代码会从test2/group2/__Class 开始往上遍历
http://phpstart.xyz/test/group1/index/dog3