http://www.thinkphp.cn/topic/39042.html
配置:
//分页配置
'paginate' => [
'type' => 'amazeui',
'namespace'=>'\\thinkextend\\',
'var_page' => 'page',
],-----------------------------------------------------------------官方的扩展类库已经全部加进去了,稍后composer update 一下就可以了
-----------------------------------------------------------------
看到好多人都用到官方的ThinkPHP5 扩展类库,昨天没事试着做了一个composer安装包,自我感觉良好,哈哈!:::所有代码均由PHPStorm引入命名空间!
废话不多说,开始composer
composer 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;
}效果也有的:
目前弄了这三个,其他的我会逐步的弄进来,价格收藏吧!
最佳答案