Malvin's Blog

无志者千难万难,有志者千方百计

0%

class A {
       const STATUS_SUCCESS = 1;
             const STATUS_FAILED = 0;
}

要怎样才能判断类中是否包含 A::STATUS_SUCCESS 这个变量呢? 理论上来讲,我们可以使用PHP的 Reflection 机制,如:

$ref = new ReflectionClass('A');
print_r($ref->getConstants());

/* 输出:

Array
(
    ['STATUS_SUCCESS'] => 1
    ['STATUS_FAILED'] => 0
)

*/

但是, 使用 反射 的话,对性能影响可是很大的,如果只需要简单的判断是否存在某某名称的常量,可以这样操作:

class A {
       const STATUS_SUCCESS = 1;
             const STATUS_FAILED = 0;

             public function checkStatus()
             {
                     return defined("self::STATUS_SUCCESS");
             }

}

var_dump((new A)->checkStatus());

/* 输出:

    bool(true)

 */

通过这种方法,能简单的判断是否出现是否存在常量。 have fun!

ThinkPHP 中有一个叫行为扩展的功能模块,其实就是设计模式当中的“监听者模式” (当然啦,这个还是处于十分粗糙的),对于网站的初始化等处理还是挺有用处的。 当中有一个行为标签叫 app_begin ,见名知意,就是在整个应用最开始时执行的操作。 但是有个缺憾,在 app_begin 这个标签的 Behavior 无法执行 session 的 增删改查 ,到底为何呢? 可以查看 TP 的源码: ThinkPHP/Library/Think/

App.class.php

阅读全文 »

还是一个老生常谈的问题,究竟使用 python3 还是 python2 好呢?假如你用的 nix 平台,当然, 2和 3 可以并存。 有鉴于本人使用的是 Mac , 所以介绍的还是如何在 Mac 下安装 python3 。

阅读全文 »

中国网络差真系不是说笑的,用 npm 下载3个包竟然要半小时,受不了。因此我们需要为 npm 更换一个淘宝源。 理论上,加入你要安装 koa ,可以这样做:

npm –registry=https://registry.npm.taobao.org install koa

然后,秒速的就下载完,但是你会发现,每次 install 都要加 –registry=https://registry.npm.taobao.org ,这么麻烦?来一个一劳永逸的方法,直接安装淘宝的 cnpm ,运行:

npm install -g cnpm –registry=https://registry.npm.taobao.org

等到完成后,你就可以使用 cnpm 来代替 npm 命令来下载了,如上例 koa , 可以使用如下命令安装:

cnpm install koa

这样,其实命令就等价于:

npm –registry=https://registry.npm.taobao.org install koa

  至此,OVER,大家可以去看看淘宝源网址:http://npm.taobao.org/

使用Laravel 5.1 的时候,免不了和 gulp 打交道,因此,系统当中必须要有好的 nodejs 啊,原生的 npm 和 nodejs 是在太旧了,因此想用 homebrew 来管理 nodejs ,因此,我们需要先删除原来的 node ,步骤如下:

sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm /usr/local/share/systemtap/tapset/node.stp
sudo rm /usr/local/share/doc/node/gdbinit

然后,就可以通过 homebrew 来安装 nodejs 了:

brew install node
node -v

由于实际的开发当中,可能存在多个项目的情况,如果是在本地自行搭建的坏境的话,就很有可能需要使用多个域名了,当然,也可以是 localhost / localhost:81 / localhost:82 这样来访问多个项目。其实,有更加便捷的方法(忽略自行修改/etc/hosts,这种哈,会改死人的),使用一个管理dns的工具: dnsmasq。 1 、安装dnsmasq 已经默认各位Mac下有homebrew , 安装:

阅读全文 »

最近不知为何,忽然爱上了 Python , 无论做小爬虫,还是简单的文件处理都是很尝心悦目的。 不过,还是不太熟悉python的包和函数,来来来,让我 markdown 一下: 文件头,请导入:

阅读全文 »