thinkphp5获取请求域名的方法
1、获取不带http协议和参数的域名:
结果是:www.abc.com或abc.com
2、获取带http协议的域名:
结果是:http://www.example.com 或 https://example.com
然后执行:
结果是:www.example.com或example.com
3、去掉 www.(只留主域名)
结果是:example.com
4、模板里(html 视图)
5、前端 JS
...
thinkphp6 真实业务场景:接口实战(缓存接口 + 日志接口)
企业级最常用、最标准、能直接放进你项目里的代码,让你彻底理解:
一个类实现多个接口在 TP6 里到底怎么用。
一、先定义两个接口(制定规矩):
1. 日志接口(app/library/LogInterface.php):
2. 缓存接口(app/library/CacheInterface.php):
二、写一个用户类,同时实现这两个接口:
文件:app/library/UserServic ...
如何区别Trait、接口和抽象类
一句话总结:
1、Trait是特征,类似函数,为了解决单继承不能多复用的问题,有实现、能复用、能多use。
例如:
在需要使用Trait的类里可以use多个Trait,中间用英文“,”隔开,例如:use A, B;
2、interface是接口,制定规则,只定方法名,不写方法体,只有规定没有实现。
关于一个类可以实现多个接口的说明:
即一个类可 ...
Trait不是类也不是接口具体怎么使用
Trait不是(抽象的和实质的)类也不是接口(interface),只是用来把公共代码打包提供给其他类使用。
由于php是单继承,即一个类只能有一个父类,所以Trait的作用就非常明显了,他可以让多个类共享使用公共的方法,绕过单继承的限制。
Trait里可以定义属性和方法,支持静态成员但不能定义常量。
1、静态成员,使用static修 ...
php定义抽象类abstract并继承该抽象类
首先我们在app\absclass目录创建一个Car.php类,代码如下:
然后我们在app\controller目录创建具体类Geely.php两个控制器类,代码如下:
抽象类中已将具体实现的普通方法,可以直接在子类中使用$this调用,如$this->start();
但如果是在抽象类定义的是抽象方法,比如run()方法,即只有方法名没有方法体(无大括号)则必须 ...
php使用interface可以implements多个接口实现
在interface中约束方法,则在implements的类中必须要实现接口中约束的方法,示例如下:
1、在app\intfaceclass目录创建CanFly.php类,代码如下:
2、在app\controller目录创建Plan.php和AirPlan.php两个控制器类,代码如下:
如果在Plane.php和AirPlane.php中不实现fly()方法,则会报错。
...
wgs84转gcj02坐标php类库实现方法
类库代码:
方法调用:
在需要的页面use类库,比如:
use addons\eshop\library\Zbzh;
调用代码:
就可以了。
thinkphp6使用模型操作查询数据库
一、find查单条数据:
1、查单条数主键查询,例如:
2、单条数据条件(查询构造器)查询,例如:
3、为了防止查询的数据不存在返回null,我们可以使用:
a、主键查询示例代码:
b、条件查询示例代码:
假设我们前面的查询都是赋值给了$user,那么我们使用$user->name就可以使用name的值了。
要查询一个查询返回的是否空模型 ...
thinkphp6版本开始支持多应用如何开启多应用支持
框架默认安装的是单应用模式,切换到应用根目录运行下面的命令:
安装后的目录就可以按照多应用模式的结构进行调整。
详细参考官方手册:多应用 · ThinkPHP6.0入门必读 · 看云
thinkphp使用composer安装教程
通用安装命令:
这个命令会安装thinkphp最新版,现在是thinkphp8,如果需要安装指定版本的比如think6.1,可以使用下面的名称:
注意tp是应用根目录,可以随意定义,th是在宝塔站点设置里的网站目录,而运行目录则是tp目录下的public,这个是唯一对外可访问的入口目录。 ...