快速函数:人性化的关怀
1.18.1 提供快速函数的缘由
很多人,很多框架都在说遵循的是OOP,实际上很多都是面向过程的开发,或者是很呆板的面向对象。
而且你也会发现,面向对象和面向过程在某方面是相互补充的。而且,面向对象里面很痛苦的改动在面向过程中可以很容易实现,反之亦然。如面向对象中添加一个类成员变量(新数据)很简单,但在抽象父类中添加一个抽象方法(新方法)却很痛苦;而在面向过程中添加一个全局变量(新数据)很痛苦,但要添加一个新方法却很简单。
所以,没有绝对的好与不好,关键在于如何设计和如何使用。而PhalApi则遵循敏捷开发的思想,为了更多的接口开发人员减少代码编写和记忆的痛苦、体验开发的乐趣,我们思虑衡量再三,提供了以下的快速函数。
1.18.2 目前已有的快速函数
(1)获取全局DI实例的函数:DI()
为了定位获得全部服务资源,我们需要一个统一的入口,在这里即为PhalApi_DI的全局实例。
我们可以这样原始获取:
$di = PhalApi_DI::one();
也可以这样快速获取:
$di = DI();
也就是说:
function DI() {
return PhalApi_DI::one();
}
(2)国际化翻译函数:T()
在真正需要进行翻译的项目中,翻译函数的调用显然会到处可见。为了方便编写代码,这里取Translator的首写字母T作为快速函数的名字,在需要进行翻译时只需要调用T(),即可:
$msg = T('hello world');
$msg = T('hello {name}', array('name' => 'dogstar'));
对应地:
function T($msg, $params = array()) {
return PhalApi_Translator::get($msg, $params);
}