VEITOOL 框架开发文档(TP版)
官方文档
官网
登录
关于框架
免责声明
开发规范
安装部署
目录结构
配置信息
后端开发
前端开发
系统常量
基础配置
依赖框架
构建命令
基础模块
控制器类
权限控制
全局函数
常用方法
单页模式
主框组件
构建组件
搜索渲染
数据字典
VEITOOL文档系统
依赖框架
如果你需要自己重新安装依赖,可以安装如下步骤进行安装并调整。 ###安装最新TP框架 ``` txt // 注意本机的PHP版本是否符合最新版框架要求 composer create-project topthink/think tp // 更新 composer update topthink/framework ``` ###安装相关扩展 ``` txt composer require topthink/think-swoole (安装时需要PHP开启swoole扩展) composer require topthink/think-view composer require topthink/think-cache composer require topthink/think-captcha composer require topthink/think-multi-app composer require topthink/think-worker composer require topthink/think-image composer require topthink/think-log composer require topthink/think-queue composer require aliyuncs/oss-sdk-php composer require qcloud/cos-sdk-v5 composer require qiniu/php-sdk composer require phpoffice/phpspreadsheet composer require phpoffice/phpword composer require nelexa/zip // 请用原veitool内的以支持veitool插件解压需求 composer require veitool/admin // 请用原veitool内的覆盖 composer require paypal/rest-api-sdk-php ``` ###对TP框架调整 ``` php //【ThinkPHP6.0.12 关闭调试底部面板】 // vendor\topthink\think-trace\src\Html.php 43行出增加: if(!env('APP_TRACE'))return ; //【ThinkPHP6.0.12 映射问题修复 v8.1.1 已经无须改动】 // vendor\topthink\think-multi-app\src\Url.php 64行改为 $map = $this->app->config->get('app.app_map', []); if ($key = array_search($app, $map)) { $url = $key . '/' . $url; } else { $url = $app . '/' . $url; } // 对TP6.1.3 vendor\topthink\framework\src\think\middleware\SessionInit.php 第71行调整如下 $this->app->cookie->set($cookieName, $this->session->getId(), $this->app->config->get('cookie.expire')); // 配置 config/cookie.php 中的 expire 为 0 // 配置 config/session.php 中的 expire 为 86400 // 这样就可以实现关闭浏览器 cookie 失效必须重新登录 // 配置 config/cookie.php 中的 expire 为 86400 // 配置 config/session.php 中的 expire 为 86400 // 这样关闭浏览器后 cookie 1天之内再打开浏览器仍然有效 //【对依赖包压缩功能修改】 vendor\nelexa\zip\src\ZipFile.php // 方法 addFromString 增加了第4个参数 $setTime = true // 用来控制追加文件到压缩包时是否设置文件的修改时间 $setTime = true //【阿里云存储在http模式下需要改动】 vendor\aliyuncs\oss-sdk-php\src\OSS\Http\RequestCore.php 改为 public $ssl_verification = false; //【兼容php8.1\8.2】增加#[\ReturnTypeWillChange]注解,新版似乎已经修复 vendor\myclabs\php-enum\src\Enum.php #[\ReturnTypeWillChange] public function jsonSerialize() //【TP底层修改 受保护的方法不允许URL访问】 vendor\topthink\framework\src\think\route\dispatch\Controller.php 92行下增加 v8.1.1 改动在 \vendor\topthink\framework\src\think\route\Dispatch.php 160行下增加 //受保护的方法不允许URL访问 if ($reflect->isProtected()) { throw new ReflectionException('isProtected'); } //【swoole 组件调整 72行下增加业务逻辑以支持静态资源访问】 vendor\topthink\think-swoole\src\response\File.php if (in_array($mimeType,['text/plain','text/x-asm'])) { $extension = pathinfo($this->file->getPathname(), PATHINFO_EXTENSION); switch ($extension) { case 'css': $mimeType = 'text/css'; break; case 'js': $mimeType = 'application/javascript'; break; } } //think-view v2.0.5 版修改文件 \vendor\topthink\think-view\src\Think.php 191行增加以下代码以兼容插件目录的模板获取: if (isset($app)) { if ($this->config['view_path']) { $path = $this->config['view_path']; } else { $path = $this->getViewPath($app ?? $this->app->http->getName()); $this->template->view_path = $path; } } else { $view = $this->config['view_dir_name']; if (is_dir($this->app->getAppPath() . $view)) { $path = $this->app->getAppPath() . $view . DIRECTORY_SEPARATOR; } else { $appName = $this->app->http->getName(); $path = $this->app->getRootPath() . $view . DIRECTORY_SEPARATOR . ($appName ? $appName . DIRECTORY_SEPARATOR : ''); } $this->config['view_path'] = $path; $this->template->view_path = $path; } ``` ###命名空间调整 ``` txt 1. 修改项目目录下 composer.json "autoload": { "psr-4": { "App\\": "app", "addons\\": "addons" #增加插件目录 }, }, 2.重新生成autoload文件 composer dump-autoload ```