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