ThinkPHP5 扩展类库【官方修改版】【composer安装】

浏览:26436 发布日期:2016/05/06 分类:ThinkPHP5专区 关键字: tp5 验证码 图片操作 分页 扩展类库 auth
新增 妹子分页驱动, 使用方法参考
http://www.thinkphp.cn/topic/39042.html
配置:    //分页配置
    'paginate'               => [
        'type'     => 'amazeui',
        'namespace'=>'\\thinkextend\\',
        'var_page' => 'page',
    ],
-----------------------------------------------------------------
官方的扩展类库已经全部加进去了,稍后composer update 一下就可以了
-----------------------------------------------------------------

看到好多人都用到官方的ThinkPHP5 扩展类库,昨天没事试着做了一个composer安装包,自我感觉良好,哈哈!:::所有代码均由PHPStorm引入命名空间!
废话不多说,开始composercomposer require shenfakuan/thinkextend安装之后,会在你的vendor目录下生成对应的文件夹,看下你的 autoload_psr4.php 文件,你会看到有这么一行'thinkextend\\' => array($vendorDir . '/shenfakuan/thinkextend/src/thinkextend')说明你已安装成功了!
现在 只是弄了 分页类、验证码 和 图片操作类,其他的还没有弄,之后会逐步更新,大家可以收藏一下呦!

这些扩展类库基本上没有做修改,顶多就是命名空间的修改,其实就是为了学习composer包的制作而写的,哈哈!

附上使用方法,分页类(这个是从3.2里面直接拿过来的,然后把样式改成了bootstrap的样式,如果你不喜欢那就自己重写样式吧,尽量不要修改composer的包文件):
http://www.abc.dev/index/index/index/p/2.html        $count = Db::name('user')->count();// 查询满足要求的总记录数
//        var_dump($count);die;
        $Page = new Page($count, 10);// 实例化分页类 传入总记录数和每页显示的记录数(25)
        $Page->setConfig('prev', '上一页');
        $Page->setConfig('next', '下一页');
        $show = $Page->show();// 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
        $list = Db::name('user')->limit($Page->firstRow . ',' . $Page->listRows)->select();
        $this->assign('list', $list);//
        $this->assign('page', $show);// 赋值分页输出
        return $this->fetch();
效果查看:




验证码示例代码(验证码这个官方给出的几乎和3.2版本的没有区别,反正我没看源码):$verify = new Verify();
$verify->entry();
同样附上效果图:


怎么样 还不错吧



附上图片操作类库的图片缩放代码,至于水印的方式,自己研究去吧:/**
     * 生成缩略图函数
     * @param $img_url 图片路径
     * @param int $width 缩略图宽度
     * @param int $height 缩略图高度
     * @param int $thumb_type 缩微图截取类型
     * @param null $small_pic 无图片是默认图片路径
     * @return null|string
     */
    function thumb($img_url = '', $width = 100, $height = 100, $thumb_type = 0, $default_pic = null)
    {
        $default_pic = empty ($default_pic) ? '/static/images/no_picture.png' : $default_pic; // 默认图
        $img_path = '.' . $img_url;
        if (empty ($img_url)) return $default_pic;
        if (!file_exists($img_path)) return $default_pic;
        list ($width_t, $height_t, $type, $attr) = getimagesize($img_path);
        if ($width >= $width_t || $height >= $height_t) return $img_url;
        $img_name = basename($img_url);
        $img_path = str_replace($img_name, '', $img_path);
        //echo $img_path;die;
        $new_img_path = $img_path . 'thumb_' . $width . '_' . $height . '_' . $thumb_type . '_' . $img_name;
        $thumb_url = ltrim($new_img_path, '.');
        if (file_exists($new_img_path)) return $thumb_url;
        switch ($thumb_type) {
            case 1 : // 标识缩略图等比例缩放类型
                $Image = new Image();
                $Image::open($img_path . $img_name);
                $thumb = $Image::thumb($width, $height, THINKIMAGE_THUMB_SCALING)->save($new_img_path);
                break;
            case 2 : // 标识缩略图缩放后填充类型
                $Image = new Image ();
                $Image::open($img_path . $img_name);
                $thumb = $Image::thumb($width, $height, THINKIMAGE_THUMB_FILLED)->save($new_img_path);
                break;
            case 3 : // 标识缩略图居中裁剪类型
                $Image = new Image ();
                $Image::open($img_path . $img_name);
                $thumb = $Image::thumb($width, $height, THINKIMAGE_THUMB_CENTER)->save($new_img_path);
                break;
            case 4 : // 标识缩略图左上角裁剪类型
                $Image = new Image ();
                $Image::open($img_path . $img_name);
                $thumb = $Image::thumb($width, $height, THINKIMAGE_THUMB_NORTHWEST)->save($new_img_path);
                break;
            case 5 : // 标识缩略图右下角裁剪类型
                $Image = new Image ();
                $Image::open($img_path . $img_name);
                $thumb = $Image::thumb($width, $height, THINKIMAGE_THUMB_SOUTHEAST)->save($new_img_path);
                break;
            case 6 : // 标识缩略图固定尺寸缩放类型
                $Image = new Image ();
                $Image::open($img_path . $img_name);
                $thumb = $Image::thumb($width, $height, THINKIMAGE_THUMB_FIXED)->save($new_img_path);
                break;
            default :
                $Image = new Image ();
                $Image::open($img_path . $img_name);
                $thumb = $Image::thumb($width, $height, THINKIMAGE_THUMB_SCALING)->save($new_img_path);
                break;
        }

        return is_object($thumb) ? $thumb_url : $img_url;
    }
效果也有的:


目前弄了这三个,其他的我会逐步的弄进来,价格收藏吧!
最佳答案
评论( 相关
后面还有条评论,点击查看>>