辅助函数文件函数列表(thinkphp\helper.php)

function A($name, $layer = CONTROLLER_LAYER)
{
    return \think\Loader::controller($name, $layer);
}
function C($name = '', $value = null, $range = '')
{
    if (is_null($value) && is_string($name)) {
        return \think\Config::get($name, $range);
    } else {
        return \think\Config::set($name, $value, $range);
    }
}
function cookie($name, $value = '')
{
    if (is_array($name)) {
        // 初始化
        \think\Cookie::init($name);
    } elseif (is_null($name)) {
        // 清除
        \think\Cookie::clear($value);
    } elseif ('' === $value) {
        // 获取
        return \think\Cookie::get($name);
    } elseif (is_null($value)) {
        // 删除session
        return \think\Cookie::delete($name);
    } else {
        // 设置session
        return \think\Cookie::set($name, $value);
    }
}
function D($name = '', $layer = MODEL_LAYER)
{
    return \think\Loader::model($name, $layer);
}
function dump($var, $echo = true, $label = null)
{
    return \think\Debug::dump($var, $echo, $label);
}
function db($config = [])
{
    return \think\Db::connect($config);
}
function E($msg, $code = 0)
{
    throw new \think\Exception($msg, $code);
}
function G($start, $end = '', $dec = 6)
{
    if ('' == $end) {
        \think\Debug::remark($start);
    } else {
        return 'm' == $dec ? \think\Debug::getRangeMem($start, $end) : \think\Debug::getRangeTime($start, $end, $dec);
    }
}
function I($key, $default = null, $filter = '', $merge = false)
{
    if (0 === strpos($key, '?')) {
        $key = substr($key, 1);
        $has = '?';
    } else {
        $has = '';
    }
    if ($pos = strpos($key, '.')) {
        
        $method = substr($key, 0, $pos);
        if (in_array($method, ['get', 'post', 'put', 'delete', 'param', 'request', 'session', 'cookie', 'server', 'globals', 'env', 'path', 'file'])) {
            $key = substr($key, $pos + 1);
        } else {
            $method = 'param';
        }
    } else {
        $method = 'param';
    }
    return \think\Input::$method($has . $key, $default, $filter, $merge);
}
function import($class, $baseUrl = '', $ext = EXT)
{
    return \think\Loader::import($class, $baseUrl, $ext);
}
function L($name, $vars = [], $lang = '')
{
    return \think\Lang::get($name, $vars, $lang);
}
function M($name = '', $tablePrefix = null, $connection = '')
{
    return \think\Loader::table($name, ['prefix' => $tablePrefix, 'connection' => $connection]);
}
function R($url, $vars = [], $layer = CONTROLLER_LAYER)
{
    return \think\Loader::action($url, $vars, $layer);
}
function S($name, $value = '', $options = null)
{
    if (is_array($options)) {
        
        \think\Cache::connect($options);
    } elseif (is_array($name)) {
        
        return \think\Cache::connect($name);
    }
    if ('' === $value) {
       
        return \think\Cache::get($name);
    } elseif (is_null($value)) {
       
        return \think\Cache::rm($name);
    } else {
       
        if (is_array($options)) {
            $expire = isset($options['expire']) ? $options['expire'] : null; 
        } else {
            $expire = is_numeric($options) ? $options : null; 
        }
        return \think\Cache::set($name, $value, $expire);
    }
}
function session($name, $value = '')
{
    if (is_array($name)) {
       
        \think\Session::init($name);
    } elseif (is_null($name)) {
        
        \think\Session::clear($value);
    } elseif ('' === $value) {
        
        return \think\Session::get($name);
    } elseif (is_null($value)) {
        
        return \think\Session::delete($name);
    } else {
        
        return \think\Session::set($name, $value);
    }
}
function T($class, $ext = EXT)
{
    return \think\Loader::import($class, TRAIT_PATH, $ext);
}
function trace($log = '[think]', $level = 'log')
{
    if ('[think]' === $log) {
        return \think\Log::getLog();
    } else {
        \think\Log::record($log, $level);
    }
}
function U($url, $vars = '', $suffix = true, $domain = false)
{
    return \think\Url::build($url, $vars, $suffix, $domain);
}
function V($template = '', $vars = [])
{
    return \think\View::instance(\think\Config::get())->fetch($template, $vars);
}
function vendor($class, $ext = EXT)
{
    return \think\Loader::import($class, VENDOR_PATH, $ext);
}
function W($name, $data = [])
{
    return \think\Loader::action($name, $data, 'Widget');
}

2 分析

1 A()
调用Loader::controller,创建控制器实例。
>$name:控制器名称
$layer:控制层

Loader分析见另:自动加载器实例化


2 C()
调用Config::get() Config::set()操作配置参数
>$name:配置参数名称
$value:配置参数值,为空则get获取,否则set设置
$range:参数作用域

Config分析见附:全局配置文件


cookie()
调用think\Cookie操作cookie数据
>$name:
>>数组:初始化cookie
为空:清除cookie

$value:
> null : 删除session
' ' : 获取cookie的$name
其他 : 设置cookie的$name的值

Cookie分析见另:Cookie.php文件


3 D()
调用Loader::model()创建数据模型对象
>$name:数据模型名称
$layer:数据模型业务层

Loader分析见另:自动加载器实例化


dump()
调用Debug::dump()格式化友好输出数据
>$var: 输出数据
$echo: treu,直接输出;false,返回结果
$label:标签控制

Debug分析见另:Debug.php文件


db()
调用Db::connect()创建数据库连接对象
>$config:数据库连接配置

Db分析见 另:Db.php文件


4 E()
调用Exception()抛出异常
>$msg:异常消息
$code:异常代码,默认为0

Exception分析见Exception.php文件

5 G()
调用Debug::remark()记录资源使用情况
>$start:开始标签
$end:结束标签
$desc:小数位

Debug文件分析见另:Debug.php文件

6 I()

调用think\Input获取输入数据,
>$key:键名[get.xx,表明参数来源,]
$default:默认值
$filter:过滤出来
$merge:

Input文件分析见另:Input.php文件


import()
调用Loader快速导入类库


7 L()
调用Lang::get()获取语言变量配置
> $name:语言变量名称
> $vars:
> $lang:

Lang分析见 另:Lang.php文件


8 M()
调用Loader::table()创建模型对象
> $name: 模型名称
> $tablePrefix: 数据表前缀
> $connection 数据库连接信息


9 R()
到普Loader::action()远程调用控制器的操作
> $url:模块/控制器/方法url
> $vars:调用参数
> $layer:


10 S()
调用Cache实现缓存
> $name:缓存名称
> $value:缓存数据
> $options:缓存参数

Cache分析见另:Cache.php文件


11 T()
调用Loader快速导入Traits
> $class:trait库
> $ext:文件后缀

Traits的原理见基础原理的php的trait


trace()
调用Log操作日志细心
> $log:log字符串
> $level:日志级别

Log分析见另:log.php文件


12 U()
调用Url生成url
> $url,基础url
> $vars,参数
> $suffix,
> $domain,

Url分析见另:Url.php文件


13 V()
快速创建视图对象,
> $template:文件名称
> $vars:模板变量

View分析见V:视图渲染文件


venodr()
调用Loader快速导入插件


14 W()
调用Loader::Action(),渲染输出Widget组件
> $name:Widget名称
> $data:参数

3 总结

26个字母中除 B,F,H,J,K,N,O,P,Q,X,Y,Z外实现了14个单字母函数。

2个导入函数import,vendor

2个通信函数session,cookie

2个调试函数dump,trace

1个数据库函数db

总共21个辅助函数

支持MySQL 和 sqlite数据库,快速构建项目原型,直接生成前后台CRUD代码片段,还可根据需要自行定制代码模板,减少重复劳动。 写这个东西的原因是因为我最近沮丧的发现很多时候我都在做重复的事情,比如重复写最简单的CRUD方法,编写表单,写前台样式表等等。 2014年9月27日23:53:38更新:升级至0.3版,此次变化较大,放弃了单文件的形式,但是功能更加丰富,支持直接生成文件,快速构建项目原型 ThinkphpHelper ============== 支持MySQL 和 sqlite数据库,快速构建项目原型,直接生成前后台CRUD代码片段,还可根据需要自行定制代码模板,减少重复劳动。 写这个东西的原因是因为我最近沮丧的发现很多时候我都在做重复的事情,比如重复写最简单的CRUD方法,编写表单,写前台样式表等等。 Thinkphp对于后台操作的支持已经非常强大,再加上最近非常流行的Bootstrap框架让前台样式也变得容易遵循一个标准,于是我决定开始写一个属于自己的代码生成器。 我希望它操作足够简单,让人一看就懂,对MySql和Sqlite数据库都能够稳定生成CRUD代码就好,还如果还能顺便生成一些符合Bootstrap框架的View代码就更好啦。 ThinkphpHelper诞生至今多谢大家的支持。在这个版本中我放弃了单文件的形式,以便实现更多想法。你可以看到现在界面更漂亮了,功能也更强大了。这个版本最大的亮点就是支持直接生成文件,除了数据库外,你只需要写3行左右的代码就可以快速构建出一个原型系统。我建议你可以根据你的需要自行修改Template文件夹下的模板,使之更符合你的项目需求。 测试中我使用的是Sqlite数据库,复制数据库文件到项目目录下,如使用Mysql数据库可以省略此步骤。 将TPH文件夹复制到项目目录下。 修改项目配置文件,主要是配置数据库信息。 访问一下TPH,应该看到以上界面 点击“生成模块选项”选择好目标模块,把需要生成的表名打上勾,点击生成。成功后,会有提示生成路径。此步骤主要是为了生成布局文件。 点击“生成CRUD代码”,注意选择和上一步相同的数据表,点击生成文件。 修改Index控制器下的index方法内容为:$this->show();如图 再次访问你的项目,have fun. 注意,在使用之前一定要准备好你的数据库以及数据库里的数据表,并且配置好你的模块,不过聪明的你一定知道它是怎么用的对吧? 支持Thinkphp3.2.2 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 项目地址:https://github.com/zhuanqianfish/ThinkphpHelper 详细使用说明地址:http://zhuanqianfish.github.io/ThinkphpHelper ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ThinkphpHelper遵循Apache2开源协议发布,并提供免费使用。 标签:Web框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值