ThinkPHP 多应用多模块建立方式

Posted 思考的大腿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP 多应用多模块建立方式相关的知识,希望对你有一定的参考价值。

Thinkphp3.2.2及以后版本同一应用多模块和多应用多模块的设计已经比以前的版本更加简单快捷。

注:入口文件为index.php,内容为:

<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.Apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <[email protected]> // +---------------------------------------------------------------------- // 应用入口文件 // 检测PHP环境 if(version_compare(PHP_VERSION,‘5.3.0‘,‘<‘)) die(‘require PHP > 5.3.0 !‘); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define(‘APP_DEBUG‘,true); //定义项目名称 define(‘APP_NAME‘,‘Home‘); // 定义应用目录 define(‘APP_PATH‘,‘./App/‘); // 引入ThinkPHP入口文件 require ‘./ThinkPHP/ThinkPHP.php‘; // 亲^_^ 后面不需要任何代码了 就是如此简单
一、同一应用多模块

方法①

最简单的方法就是此方法,直接在应用目录App下复制Home文件夹,改名为Admin,并修改控制器的应用空间即可,我就是用的此方法。

访问两个模块的地址分别是:

http://127.0.0.1:8080/Thinkphp5/index.php/或http://127.0.0.1:8080/Thinkphp5/index.php/Home http://127.0.0.1:8080/Thinkphp5/index.php/Admin
方法②

在入口文件所在目录新建一个文件admin.php。键入以下代码(和同目录index.php大体相同,只是修改了第7行)

<?php // 应用入口文件 // 检测PHP环境 if(version_compare(PHP_VERSION,‘5.3.0‘,‘<‘)) die(‘require PHP > 5.3.0 !‘); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define(‘APP_DEBUG‘,True); define(‘BIND_MODULE‘,‘Admin‘); // 定义应用目录 define(‘APP_PATH‘,‘./Application/‘); // 引入ThinkPHP入口文件 require ‘./ThinkPHP/ThinkPHP.php‘; // 亲^_^ 后面不需要任何代码了 就是如此简单
然后访问此php文件即可在App目录下自动新建一个Admin模块。

访问两个模块的地址分别是:

http://127.0.0.1:8080/Thinkphp5/index.php http://127.0.0.1:8080/Thinkphp5/admin.php
二、多应用多模块

在根目录新建相应的入口文件即可,指定项目名称和应用目录即可。

三、继承公用配置代码的方法

通常一个应用下的多个模块使用部分相同的配置代码,如何实现继承公用的配置文件呢?

方法如下(公用代码以数据库配置代码‘DB_DSN’为例):

在App目录下新建一个config,php文件,贴入以下多模块的公用代码

<?php return array( //‘配置项‘=>‘配置值‘ ‘DB_PREFIX‘=>‘tp_‘, ‘DB_DSN‘=>‘mysql://root:@localhost:3306/thinkphp‘, ); ?>
在每个模块单独的配置文件中这样写:

<?php $arr=include ‘./App/config.php‘; $arr2=array( //‘配置项‘=>‘配置值‘ //此处配置此模块私有的配置 ); return array_merge($arr,$arr2); ?>
这样既可实现公用的配置代码。因为thinkphp的配置代码会返回一个数组,使用array_merge方法合并两个数组即可。

四、本文手打,=_=,文章源地址:http://www.iiii.name/thinkphp-2015-2-16.html

以上是关于ThinkPHP 多应用多模块建立方式的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp6----创建多模块

thinkphp6----创建多模块

thinkphp 入口文件模块绑定/多模块开启

thinkphp 入口文件模块绑定/多模块开启

thinkphp模块设计

ThinkPHP5只让路由对index作用,不对admin作用。多模块多入口方式隐藏后台地址及路由冲突解决方案