codecamp

快速函数:人性化的关怀

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);
}

日志纪录:简化版的日志接口
DI服务速查:各资源服务一览表
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

八、视频教程

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }