thinkphp6多应用模块配置使用

news2024/11/16 7:21:21

1.安装thinkphp6

6.0之前安装都是从Git或者直接下载安装包进行安装,从6.0开始安装方式就改成了composer进行安装了,安装命令如下:

稳定版:composer create-project topthink/think tp
开发版:composer create-project topthink/think=6.0.x-dev tp

最后的tp可以定义比如定义为自己的项目名称,如果是生产环境上面使用的项目就是使用稳定版本就行

默认安装完成后是单应用模式,结构目录如下:


www  WEB部署目录(或者子目录)
├─app           应用目录
│  ├─controller      控制器目录
│  ├─model           模型目录
│  ├─ ...            更多类库目录
│  │
│  ├─common.php         公共函数文件
│  └─event.php          事件定义文件
│
├─config                配置目录
│  ├─app.php            应用配置
│  ├─cache.php          缓存配置
│  ├─console.php        控制台配置
│  ├─cookie.php         Cookie配置
│  ├─database.php       数据库配置
│  ├─filesystem.php     文件磁盘配置
│  ├─lang.php           多语言配置
│  ├─log.php            日志配置
│  ├─middleware.php     中间件配置
│  ├─route.php          URL和路由配置
│  ├─session.php        Session配置
│  ├─trace.php          Trace配置
│  └─view.php           视图配置
│
├─view            视图目录
├─route                 路由定义目录
│  ├─route.php          路由定义文件
│  └─ ...   
│
├─public                WEB目录(对外访问目录)
│  ├─index.php          入口文件
│  ├─router.php         快速测试文件
│  └─.htaccess          用于apache的重写
│
├─extend                扩展类库目录
├─runtime               应用的运行时目录(可写,可定制)
├─vendor                Composer类库目录
├─.example.env          环境变量示例文件
├─composer.json         composer 定义文件
├─LICENSE.txt           授权说明文件
├─README.md             README 文件
├─think  
————————————————

单应用模式没什么好说的了,直接使用就行了,重点是来看一下多应用模式的配置和使用,多应用模式和单应用模式区别就在app目录结构

2.配置多应用模式

切换到框架根目录下面执行以下命令(应该是框架任何位置都可以,但是没有试,这里在根目录下面运行命令)

composer require topthink/think-multi-app

安装完成之后

框架vendor目录下面多了一个目录 think-multi-app (单应用模块是没有这个目录的)

 表示多应用模块安装成功

删除原来app目录下面的controller文件夹,TP是根据是否有这个文件夹来判断单应用模式还是多应用模式的,所以这个必须删除。

删除完成之后来测试一下使用命令创建一下应用,比如我这里创建一个admin应用

php think build admin

创建完成之后

框架app目录下面就多了一个admin应用

会自动生成demo应用,自动生成的应用目录包含了controller、model和view目录以及common.php、middleware.php、event.php和provider.php等文件。

浏览器里面直接访问admin应用

也就是对应到

3.多应用模式中模板视图的使用

安装使用think-template模板引擎,只需要安装think-view 模板引擎驱动。

可以参考可以参考thinkphp6文档里面 视图

框架根目录下面执行
composer require topthink/think-view

安装完成之后配置模板文件

可以参考thinkphp6文档里面 视图->模板渲染

第一种方式

默认情况下,框架会自动定位你的模板文件路径,优先定位应用目录下的view目录,这种方式的视图目录下就是应用的控制器目录。

├─app
│  ├─app1 (应用1)
│  │   └─view(应用视图目录)
│  │   	 ├─index            index控制器目录
│  │     │  └─index.html    index模板文件
│  │ 	 └─ ...             更多控制器目录
│  │ 
│  └─ app2... (更多应用)

还有第二种方式,这里没做演示,可以参考thinkphp6文档里面 视图->模板渲染

下面使用简单代码演示一下

admin应用下面的index控制器里面的login方法

对应到视图文件就是和admin应用同级的view目录下面创建index目录(对应index控制器目录),index目录下面创建login.html文件对应index控制器下面的login方法

 传递变量给模板文件这里使用助手函数view()

第一个参数是模板名称,第二个参数是传递的变量值,是一个数组形式,如上写法是是为了将数据拼接成数据格式传递过去

然后login.html模板文件里面解析控制器传递过来的变量

 

浏览器访问

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SOLIDWORKS官方认证考试

SOLIDWORKS官方认证考试: CSWA认证 CSWP认证 CSWPA认证 CSWE认证 SOLIDWORKS认证考试是达索SOLIDWORKS公司推出的全球性认证考试项目,是作为衡量您所具备的SOLIDWORKS应用专长与能力的一种测试和认可,主要考察对设计、仿真一体化、机电一体…

Hadoop 生态圈及核心组件简介Hadoop|MapRedece|Yarn

文章目录大数据时代HadoopHadoop概述Hadoop特性优点Hadoop国内外应用Hadoop发行版本Hadoop集群整体概述HDFS分布式文件系统传统常见的文件系统数据和元数据HDFS核心属性HDFS简介HDFS shell操作Map Reduce分而治之理解MapReduce思想分布式计算概念MapReduce介绍MapReduce产生背景…

低代码,是稳打稳扎还是饮鸩止渴?

2023年,业内对低代码的发展充满了想象。 人们认为,未来低代码它的商业价值不可估量。 据Gartner的最新报告显示,到2023年,全球低代码开发技术市场规模预计将达到269亿美元,比2022年增长19.6%。 随着数字化进入深水区&a…

数据仓库、数据集市、数据湖,你的企业更适合哪种数据管理架构?

建设企业级数据平台,首先需要了解企业数据,确认管理需求,并选择一个数据管理架构。那么面对纷繁复杂的数据来源,多元化的数据结构,以及他们的管理使用需求,企业数据平台建设该从何处入手呢?哪个…

Zabbit

目录 一、zabbix概述 zabbix是什么 主要特点 运行机制 zabbix监控原理 zabix常见的五个程序 zabbix端口号 架构 二、安装 zabbix 5.0 1、部署zabbix服务端(端口号10051) 1、关闭防火墙、修改主机名 2、下载zabbix源 3、 更换为阿里源 4、安…

chapter-2数据库基本知识

以下课程来源于MOOC学习—原课程请见:数据库原理与应用 考研复习 前言: 抽象与模型 1.对数据不同抽象层次中的对象采用不同的模型进行描述 人的姓名、性别—>概念模型---->DBMS支持的数据模型---->物理模型 2.概念模型:按用户观…

PHP通过函数来了解字符串格式化的案例和代码

目录 前言 一、字符串空格的删除 1.tri()函数 2.ltrim()函数 3.rtrim()函数 二、字符串大小写转换 1.strtolower()函数 2.strtoupper()函数 三、格式化数字 前言 1.以下介绍PHP的相关知识; 2.本弹窗界面可以根据简单的要求实现一使用功能。同时可以实现自定义…

Kubernetes 部署 StarRocks 集群

文章目录StarRocks简介系统架构图安装部署StarRocks手动部署通过 Docker部署使用 StarGo 部署管理通过 StarRocks Manager部署管理通过 Kubernetes部署工作原理逻辑图部署 StarRocks Operator部署 StarRocks 集群访问 StarRocks 集群集群内访问 StarRocks 集群集群外访问 StarR…

了解高可用

图片来自网络 高可用定义 “高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。 设计系统的可用性,最重要的是满足用户的需求。系统的失败只有当其导致服务…

不完美解决谷歌Chrome在设置background cover和fixed属性后,滚动屏幕出现背景图片的拉伸

业务场景: 让元素有背景图. 背景图不随着页面滚动而移动,相对于浏览器窗口固定. 根据屏幕尺寸,背景图自动覆盖式填充,不能有接缝和重复. 元素要有圆角. 通过js入参动态设置背景图. 不便截图,相信各位上面可以看明白了. 复现: css是这样的 .main {width: 90%;background-…

Chat GPT5的主要介绍

Chat GPT-5是一种基于人工智能技术的对话系统,用于进行自然语言处理和对话,以提供更好的服务。 它是由OpenAI公司开发的,是GPT系列的最新版本。 GPT代表着"生成式预训练",因此Chat GPT-5基于神经网络,通过预…

STM32F103RCT6 103RE 103R8 103RB 103C8 103CB 103VE 103VC

这些型号均属于意法半导体(STMicroelectronics)的STM32F103系列微控制器,其特点如下: STM32F103RCT6:512 KB Flash、64 KB RAM,LQFP64封装;STM32F103RE:512 KB Flash、64 KB RAM&am…

webgl-矩阵、旋转、平移、缩放 glMatrix组件

引入新组建glMatrix glMatrix.js /*! fileoverview gl-matrix - High performance matrix and vector operations author Brandon Jones author Colin MacKenzie IV version 3.4.3 Copyright (c) 2015-2021, Brandon Jones, Colin MacKenzie IV. Permission is hereby granted…

JAVA开发运维(关于渗透测试与漏洞修复)

对于C端的网站,H5,小程序或者app都需要进行渗透测试。 渗透测试是模拟真实黑客的攻击手段,对目标网站或主机进行全面的安全评估。 与黑客攻击不同,渗透测试的目的是尽可能多地发现安全漏洞,而真正的黑客只需要找到一种…

TCP与UDP的区别

一、TCP协议 TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,具有下面这些特征 1)面向连接 是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接&#xff0…

浏览器DOM(上)——节点

文档对象模型是用来描述文档,这里的文档,是特指 HTML 文档。同时它又是一个“对象模型”,这意味着它使用的是对象这样的概念来描述 HTML 文档,DOM 也是使用树形的对象模型来描述一个 HTML 文档。 DOM API 大致会包含 4 个部分。 …

【MySQL数据库原理】MySQL 数据库环境变量设置问题完整解决与数据库删除测试

目录 1、环境变量与终端问题2、数据库删除测试1、环境变量与终端问题 在上一篇文章中提到mysql专用终端会失效的问题,通常使用一段时间之后,点击会出现闪退的情况,主要原因是没有配置好环境变量。 因此,要解决上述问题就需要配置环境变量,这样就可以在Windows终端失效m…

域名解析设置方法

域名解析设置都是实时生效的,一般只需几秒即可同步到各地 DNS 上,但各地 DNS 均有缓存机制,解析的最终生效取决于各运营商刷新时间! 一、A记录 ①.主机名必须填写; 常用主机名有:www//*,效果参见上图说明&…

【linux】基于环形队列的生产者消费者模型(信号量)

文章目录一、引入二、信号量2.1 信号量的概念2.2 信号量的PV操作2.3 信号量接口2.3.1 信号量初始化sem_init2.3.2 信号量销毁sem_destroy2.3.3 信号量等待sem_wait(P)2.3.4 信号量发布sem_post(V)三、基于环形队列的生产者消费者模型3.1 引入环形队列3.2 环形队列的访问3.3 代码…

java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))

java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))一、饿汉模式单例(本身及时线程安全的)二、懒汉模式单例1.懒汉模式第一版,用INSTANCE null判断是否初始化…