ThinkPHP引用第三方库
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();


ThinkPHP引用第三方库的更多相关文章
- VS中引用第三方库的方法(配置sqlite数据库)
我们在编写程序时,,不可避免的会使用第三方的库文件,很少使用源文件(.cpp),大部分是使用对类进行声明的头文件和封装了类的链接库(静态lib或动态dll),比如我们写程序用的iostream这个库, ...
- 【Android Studio安装部署系列】十七、Android studio引用第三方库、jar、so、arr文件
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 在Android开发过程,经常需要用到第三方库以及jar.so.arr文件,那么如何引用到项目中呢?下面简单介绍下. 引用第三方库 ...
- VC中引用第三方库,常见的库冲突问题
Q:VC中引用第三方库,常见的库冲突问题 环境:[1]VS2008 [2]WinXP SP3 A1(方法一): [S1]第三方库(Binary形式的)如果同主程序冲突,则下载第三方库的源码[S2]保持 ...
- Flutter如何引用第三方库并使用
Flutter如何引用第三方库并使用 https://www.jianshu.com/p/bbda7794345e Flutter官网点击访问Flutter教程(一)Flutter概览Flutter教 ...
- pod引用第三方库的几种方式
pod引用库的原理,本质上是去找.podspec文件,podspec中包含库的地址及最新的版本号(tag标签),如果pod时没有指定版本,则pod install时会去下载podspec文件中指定的最 ...
- Angular-Cli中引用第三方库
最近在学习angular(AngularJS 2),根据教程使用angular-cli新建项目, 然而在添加JQuery和Bootstrap第三方库时遇到了问题... 初试 我最初的想法是直接将相对路 ...
- Laravel composer自定义命令空间,方便引用第三方库
第一步:自定义目录 在app文件夹下新建Library目录,做为第三方库的目录 第二步: 修改composer.json文件 autoload节点下的psr-4自定义命名空间 规则: key: 命名空 ...
- WPF 引用第三方库的控件在设计器加上设计时数据和属性
本文告诉大家如何在 VisualStudio 2022 的 XAML 设计器中,在设计时给第三方控件加上设计用的属性和数据的方法 此功能要求使用不低于 VisualStudio 2019 的 16.8 ...
- iOS开发 引用第三方库出现duplicate symbol时的处理方法
该篇文章是我自己从我的新浪博客上摘抄过来的, 原文链接为: http://blog.sina.com.cn/s/blog_dcc636350102wat5.html 在iOS开发中, 难免 ...
随机推荐
- Unity中的值传递与引用传递
1. 值类型 值类型变量本身保存了该类型的全部数据,当声明一个值类型的变量时,该变量会被分配到栈(Stack)上. 2. 引用类型 引用类型变量本身保存的是位于堆(Heap)上的该类型的实例的内存地址 ...
- class10_Frame 框架
最终运行效果图(程序见序号2): #!/usr/bin/env python # -*- coding:utf-8 -*- # ---------------------------------- ...
- Tomacat7启动报错-org.apache.catalina.deploy.WebXml addFilter
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter at org.apache.tomcat.ut ...
- uoj33 【UR #2】树上GCD
题目 大致是长剖+\(\rm dsu\ on\ tree\)的思想 先做一个转化,改为对于\(i\in[1,n-1]\)求出有多少个\(f(u,v)\)满足\(i|f(u,v)\),这样我们最后再做一 ...
- 【POJ】3660 Cow Contest
题目链接:http://poj.org/problem?id=3660 题意:n头牛比赛,有m场比赛,两两比赛,前面的就是赢家.问你能确认几头牛的名次. 题解:首先介绍个东西,传递闭包,它可以确定尽可 ...
- Tomcat调优详解
前言 在这里告诫一下那些感觉自己啥都会的朋友们,其实你会的可能只是皮毛,不要感觉这个东西以前已经做过了,就不想去做了 其实你还远没有达到精通的地步,遇到以前做过的东西,也要用心的再去做一遍,你可能会从 ...
- Eclipse中普通java项目转成Web项目
在eclipse导入一个myeclipse建的web项目后,在Eclipse中显示的还是java项目,按下面的步骤可以将其转换成web项目. 1.找到项目目录下的.project文件 2.编辑.pro ...
- linux命令输出到屏幕的同时保存到文件
有时候无法在一个屏幕中打印出所有显示内容 可以使用以下命令: ifconfig | tee ifconfig.log more ifconfig.log
- 解决VS2012新建MVC4等项目时,收到此模板加载程序集“NuGet.VisualStudio.Interop…”的错误
1.错误如图所示: 2.不管是VS2012,还是2013如果开始没安装Nuget包都或报这个错,因为VS2012就已经全面切换到使用NuGet这个第三方开源工具来管理项目包和引用模块了,使用VS201 ...
- 2019 Multi-University Training Contest 7 Kejin Player 期望dp
题目传送门 题意:有n个等级,在每个等级花费$ai$的代价有$pi$的几率升到$i+1$级,$1-pi$的概率降级降到$xi$(xi<=i),给出q次询问,每次询问从$l$级到$r$级的代价的期 ...