一些子方法~~比如生成唯一字符串的

function _generateSessionId() 
{
    $salt = "423^&78fdf*^\tFGFyWEId4\ra&2!cr3s56O1^";
    return md5($salt . uniqid('', true) . mt_rand());
}

==生成一个唯一sessionId 声明一下:由于基于系统时间,通过uniqid生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数。

PhalApi -PHP轻量级开源接口框架 DI.php分析

文件中的PhalApi_DI 依赖注入类
具体可参考:https://docs.phalconphp.com/en/latest/reference/di.html
在默认的请求中的index.php中 response()函数,找到PhalApi.php $rs = DI()->response;,对的就是这句纠结我很久很久, DI() 函数 返回的是依赖注入类PhalApi_DI的一个实例,DI()->response;需要获取类中成员变量,触发魔术函数__get(),看到之后的这个函数:

    public function get($key, $default = NULL) {
    if (!isset($this->data[$key])) {
        $this->data[$key] = $default;
    }

    $this->recordHitTimes($key);

    if ($this->isFirstHit($key)) {
        $this->data[$key] = $this->initService($this->data[$key]);
    }

    return $this->data[$key];
    }

这个函数的意思是执行内部方法,取得成员变量response实例,但是成员变量response哪里来的呢?

    public static function one() {
    if (self::$instance == NULL) {
        self::$instance = new PhalApi_DI();
        self::$instance->onConstruct();
    }

    return self::$instance;
}

public function onConstruct() {
    $this->request = 'PhalApi_Request';
    $this->response = 'PhalApi_Response_Json';
}

通过上面获取一个单例实例的时候,执行了一个函数 onConstruct();为成员变量resquest 和response赋值,但是类中无此成员变量,在上一次触发前先触发_set()魔术方法;执行set()函数,对成员变量进行赋值,在此分析完毕,

PhalApi -PHP轻量级开源接口框架 初体验

机缘巧合下,接触了PhalApi这个接口框架,本着探索精神摸索了一番,首先使用git工具在 git clone https://git.oschina.net/dogstar/PhalApi.git 切换到release克隆下来,
上传到服务器,(我上传的服务器一个目录下);进行安装,安装完成后,访问http://domain/Public/,会返回他默认接口的数据,
这里我推荐使用Chrome下的jsonVIEW插件:

{
ret: 200,
-data: {
    title: "Hello World!",
    content: "PHPer您好,欢迎使用PhalApi!",
    version: "1.3.1",
    time: 1456827735
},
msg: ""
}

首先是访问了Public目录下的index.php文件,打开源文件,你会发现相应接口请求下会有这么一句:

$rs = $api->response();

查看这个response方法你会发现 :$service = DI()->request->get('service', 'Default.Index');
也就是当你没有定义访问莫个接口的时候,它会指向到Default模块下的Index接口
实现这一机制的是方法下面的这两句

        list($apiClassName, $action) = explode('.', $service);  
        $rs->setData(call_user_func(array($api, $action)));

通过工厂方法创建合适的控制器,然后调用指定的方法,最后返回格式化的数据。

sublime text - 快捷键

1:在一行中,command键+右箭头,直接跳到一行的结尾
alt键 + 左箭头 ,一个单词的选择

可以将sublime的设置放在Github上,这样就可以不用每次都安装了,我的地址是:https://github.com/xiaobinshiyan/sublime_setting.git
包含了一些自己的配置加上一些常用插件,,仅供参考————

禁止root用户远程登录

今天早上无意间看到一个文章,里面的一句话引起了我的注意,大概意思就是新买的服务器,要创建新用户,还有就是一个朋友给我提到过,想到服务器还是root用户登录,就配置了下。这里的文章网上一大把,但是需要记住的一些东西还是写下来吧;
cat /etc/group 查看用户组情况
对ssh配置文件操作的时候,需要重启ssh服务,(对配置文件进行操作的时候一定要重启,一定要重启,一定要重启,说三遍),已经进行了su获取权限,但是bash: service: command not found,什么鬼-原来:service命令是要用ROOT用户来执行的,而出错的用户是用su root切换到ROOT用户下,这个命令没有也不会把环境带过去!用如下命令就不会出错了

应该 su - root