Thinkphp引用第三方库的方法例如引用购物车:在项目Home目录下,新建一个文件夹(以下是我自己的demo)

Tool文件夹,在Tool文件夹中创建Tool.class.php文件。这个和你控制器或者模型的创建是一致的。

<?php
namespace Home\Tool;
abstract class ACarTool{
//向购物车添加一个商品
abstract public function add($goods_id,$goods_name,$shop_price); //向购物车减少一个商品的数量,如果为0则删除
abstract public function decr($goods_id); //从购物车删除某商品
abstract public function del($goods_id); //列出购物车的所有东西
abstract public function items(); //返回购物车中有几种商品
abstract public function calcType(); //返回购物车中商品的个数
abstract public function calcCnt(); //返回购物车商品的总价格
abstract public function calcMoney(); //清空购物车
abstract public function clear();
} class AddTool extends ACarTool{ //声明一个属性
public $item = array();
//单例模式
public static $ins = null;
public static function getIns(){
if(self::$ins == null){
self::$ins = new self();
}
return self::$ins;
} final protected function __construct(){
//session('?kache')检测是否存在session
$this->item = session('?kache') ? session('kache') : array();
}
//向购物车添加一个商品
public function add($goods_id,$goods_name,$shop_price){ if($this->item[$goods_id]){
$this->item[$goods_id]['num'] += 1;
}else{
$goods['goods_name'] = $goods_name;
$goods['shop_price'] = $shop_price;
$goods['num'] = 1; $this->item[$goods_id] = $goods;
} } //减少购物车一个商品的数量,如果到0则删除此商品
public function decr($goods_id){ if($this->item[$goods_id]){
$this->item[$goods_id]['num'] -= 1;
}
if($this->item[$goods_id]['num'] <=0){
$this->del($goods_id);
}
} //从购物车删除某商品
public function del($goods_id){
unset($this->item[$goods_id]);
} //列出购物车所有的商品
public function items(){
return $this->item;
} //返回购物车有几种物品
public function calcType(){
return count($this->item);
} //返回购物车商品的个数
public function calcCnt(){
$n = 0;
foreach ($this->item as $k => $v) {
$n +=$v['num'];
}
return $n;
} //返回购物车的总价格
public function calcMoney(){ $n = 0;
foreach ($this->item as $k => $v) {
$n += $v['num'] * $v['shop_price'];
}
return $n;
} //清空购物车
public function clear(){ $this->item = array();
} public function __destruct(){
session('kache',$this->item);
}
}

创建好购物车需要的类后。在需要的控制器下定义一个方法,引入第三方类库

$tool = \Home\Tool\AddTool::getIns();

最新文章

  1. ibatis order by 防止sql注入
  2. C/C++二维数组的用法
  3. 渗透杂记-2013-07-13 windows/mssql/mssql_payload
  4. java的final用法
  5. hdu 3709 数位dp
  6. python 之验证码
  7. Cupid&#39;s Arrow---hdu1756(判断点与多边形的位置关系 模板)
  8. 起点CG原创教程——digicel.FlipBook.6教程
  9. 如何使用SVN管理我们的源代码
  10. Verilog
  11. python3 AttributeError: &#39;NoneType&#39; object has no attribute &#39;split&#39;
  12. CentOS隐藏nginx版本号
  13. Spring二 Bean详解
  14. java中-静态代码块、构造代码块、构造方法的联系
  15. JavaScript随机排序算法1
  16. python之SQLAlchemy ORM 上
  17. Hibernate-ORM:05.Hibernate中的list()和iterator()
  18. 基于diango简易BLOG图片预览
  19. Kubernetes基础概念及架构概述
  20. Windows 8 Stroe Apps 控件

热门文章

  1. iOS 获取音频或是视频的时间
  2. ionic-CSS:ionic 列表
  3. 解决方案-CRM:Vtiger CRM
  4. __attribute__ (( __cleanup__))
  5. 2019 IEEEXtreme 13.0 Impact Factor 影响因子
  6. tensorflow TypeError: Can not convert a float32 into a Tensor or Operation
  7. centos 7 设置IP地址
  8. HDU 4325 离散化+树状数组 或者 不使用树状数组
  9. Android笔记之RoundedImageView
  10. Java oop第05章_多态、接口