配置
在入口文件里面我们会发现下面的配置:
->setSrMethods(array())
我们看到setSrMethods参数是一个数组,数组的结构和意义,我们下面进行介绍:
1.参数数组是关联数组。
2.数组的键
是要拓展Sr方法的名称。
3.数组的值
可以是下面两个情况:
a.字符串,此时字符串值作为类前缀,这个时候键
名称的方法的功能是方便的加载classes目录下的类
b.匿名函数,此时匿名函数就对应键
名称的方法。
下面结合实例进行理解:
1.注册
首先我们修改入口文件里面的配置注册我们的拓展的方法,如下:
->setSrMethods(array(
'task' => 'Task',
'testMethod' => function($test=null) {
return $test;
}
))
我们会看到数组键
拓展了两个Sr的方法:Sr::task($className)和Sr::testMethod($test)
2.调用
1.我们调用:Sr::task('TestTask')
加载的类文件是application/classes/Task
/TestTask.php
其实等价于调用:Sr::factory('Task
_TestTask')。
这样做的好处:
如果Task目录下面是我们经常用的一些功能类,我们可以通过Sr::task($className)方便的
加载Task目录下面的类库,而不用加上Task前缀,而且逻辑更加清晰。
2.我们调用:Sr::testMethod('testValue')
其实我们调用的就是我们注册的下面的匿名函数:
function($test=null) {
return $test;
}
我们传递给Sr::testMethod('testValue')的参数会依次传递给上面的匿名函数。
比如上面我们传递了传递给Sr::testMethod('testValue')一个testValue
,
那么上面的匿名函数的第一个参数$test值就是testValue
,
上面的匿名函数返回值就是Sr::testMethod()的返回值。
比如:Sr::testMethod('testValue')返回值就是testValue
,
因为上面注册的testMethod对应的匿名函数里面直接返回了传入的参数$test。