是的,都说PHP写框架门槛低,我觉得这是个好事,框架的目的是更高效率的开发,门槛低为高效率提供了更多基础。有这么好的基础没有理由不自己也尝试写个框架,这里整理下自己要写框架的规划。


基于PHP5.3.X
这个都出来几年了,一些新特性的确能提高代码效率。

 

CLASS不是全部

OOP编程方式是非常可取的,一说OOP,直接对应的就是CLASS化,但是我们还需要独立的函数,PHP有命名空间,这些函数可以用命名空间包装起来,达到包化


CLASS风格封装配置和常量定义

虽然命名空间隔离了代码,但是隔离不了常量定义,比如


<?php
/**
 * JingYes 框架使用的基本函数
 * 使用者可以预先定义这些函数
 * @author Yu HengChun <achun.shx@qq.com>
 * @copyright Copyright &copy; 2011 Yu HengChun
 * @license http://www.opensource.org/licenses/bsd-license.php
 */
namespace JingYes;
/**
 * JingYes class风格配置
 * 其它类里面也采用这种风格
 */
final class Config
{
    public static $conf=array(
    );
    /**
     * 配置扩展
     * @param string $key 键
     * @param array  $val 值
     */
    public static function extend($key,$val){
        if(is_array(self::$conf[$key]) and is_array($val))
            self::$conf[$key]=array_merge(self::$conf[$key],$val);
        else
            self::$conf[$key]=$val;
    }
}
if(!function_exists('JingYes\ThrowException')){
/**
 * 抛出异常信息
 * @param string $type 错误类型信息
 * @param string $message 错误细节信息模板
 * @param integer $code 错误类型代码,采用http错误代码
 * @param array $args 传递给 $message的参数,用于生成最终信息
 */
function ThrowException($type,$message,$code=501,array $args=array()) {
    $type=Config::$conf['error'][$type]?:$type;
    $message=message($message,$args);
    throw new \Exception($type.':'.$message,$code);
}
}
if(!function_exists('JingYes\message')){
/** 动态加载js的方法
 * 对提示信息进行转换翻译
 * @param string $message 错误细节信息模板
 * @param array $args 传递给 $message的参数,用于生成最终信息
 */
function message($message,array $args=array()) {
    $message=stripslashes($message);
    $message="\$message=\"$message\";";
    extract($args);
    eval($message);
    return $message;
}
}


只有注册用户登录后才能发表评论。
网站导航:

posts - 139, comments - 0, trackbacks - 0, articles - 0

Copyright © PHP博客