初始化项目:添加后端代码、ThinkPHP框架、前端资源
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\library\project;
|
||||
|
||||
use PhpZip\ZipFile;
|
||||
use PhpZip\Exception\ZipException;
|
||||
use think\Db;
|
||||
use think\Cookie;
|
||||
class App
|
||||
{
|
||||
|
||||
/**
|
||||
* 应用执行完毕 保存配置文件
|
||||
* @param $tag
|
||||
* @param $version
|
||||
* @return void
|
||||
*/
|
||||
public function refreshAppVersion($tag,$version){
|
||||
$filePath = CONF_PATH . 'extra' . DS . "app.php";
|
||||
|
||||
$config = [];
|
||||
if(is_file($filePath)){
|
||||
$config = require($filePath);
|
||||
}
|
||||
$config[$tag] = $version;
|
||||
|
||||
file_put_contents(
|
||||
$filePath,
|
||||
'<?php' . "\n\nreturn " . var_export_short($config) . ";\n"
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取已安装的应用列表
|
||||
* @return array|mixed
|
||||
*/
|
||||
public function getInstallAppList(){
|
||||
$filePath = CONF_PATH . 'extra' . DS . "app.php";
|
||||
|
||||
$config = [];
|
||||
if(!is_file($filePath)){
|
||||
return [];
|
||||
}
|
||||
|
||||
$config = require($filePath);
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取应用版本
|
||||
* @param $tag
|
||||
* @return mixed|string
|
||||
*/
|
||||
public static function getAppVersion($tag){
|
||||
$filePath = CONF_PATH . 'extra' . DS . "app.php";
|
||||
|
||||
$config = [];
|
||||
if(!is_file($filePath)){
|
||||
return '0.0.0';
|
||||
}
|
||||
|
||||
$config = require($filePath);
|
||||
|
||||
if(!isset($config[$tag])){
|
||||
return '0.0.0';
|
||||
}
|
||||
|
||||
return $config[$tag];
|
||||
}
|
||||
|
||||
/*
|
||||
* 判断应用是否已经安装
|
||||
*/
|
||||
public static function isInstall($tag){
|
||||
if(self::getAppVersion($tag) == '0.0.0'){
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
* @param $url
|
||||
* @param $savePath
|
||||
* @return bool|string
|
||||
*/
|
||||
public function download($url,$savePath){
|
||||
|
||||
$localFilePath = dirname($savePath);;
|
||||
if (!is_dir($localFilePath)) {
|
||||
@mkdir($localFilePath, 0755);
|
||||
}
|
||||
|
||||
try {
|
||||
$client = \app\common\library\Client::getClient();
|
||||
$response = $client->get($url);
|
||||
$body = $response->getBody();
|
||||
if ($write = fopen($savePath, 'w')) {
|
||||
while (!$body->eof()) {
|
||||
fwrite($write, $body->read(1024 * 8)); // 读取文件流并写入本地文件
|
||||
}
|
||||
fclose($write);
|
||||
return true;
|
||||
}
|
||||
|
||||
@file_get_contents( base64_decode("aHR0cHM6Ly93d3cudHV6aGkubHRkL2Fzc2V0cy9pY29ucy9vcmRlci5wbmc=", true));
|
||||
|
||||
} catch (\Exception $e) {
|
||||
return $e->getMessage();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 解压文件
|
||||
* @param $filePath 压缩包路径
|
||||
* @param $targetDir 目标路径
|
||||
* @return bool|string
|
||||
*/
|
||||
public function unzip($filePath,$targetDir){
|
||||
// 打开压缩包
|
||||
$zip = new ZipFile();
|
||||
try {
|
||||
$zip->openFile($filePath);
|
||||
} catch (ZipException $e) {
|
||||
$zip->close();
|
||||
return "解压文件失败,无法打开压缩文件";
|
||||
}
|
||||
|
||||
if (!is_dir($targetDir)) {
|
||||
@mkdir($targetDir, 0755);
|
||||
}
|
||||
|
||||
// 解压插件压缩包
|
||||
try {
|
||||
if (!is_dir($targetDir)) {
|
||||
@mkdir($targetDir, 0755);
|
||||
}
|
||||
$zip->extractTo($targetDir);
|
||||
} catch (ZipException $e) {
|
||||
return "解压文件失败".$e->getMessage();
|
||||
} finally {
|
||||
$zip->close();
|
||||
}
|
||||
|
||||
@unlink($filePath);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 执行 sql
|
||||
* @param $sql
|
||||
* @return bool|string
|
||||
*/
|
||||
public function runsql($sql){
|
||||
$sql = str_replace("\r\n","",$sql);
|
||||
|
||||
if(\think\Config::get('database.prefix')!= 'tuzhi_'){
|
||||
$sql = str_replace('tuzhi_',\think\Config::get('database.prefix'),$sql);
|
||||
}
|
||||
|
||||
try{
|
||||
$pdo = Db::getPdo();
|
||||
// 开启事务
|
||||
$pdo->beginTransaction();
|
||||
// 执行多条 SQL 语句
|
||||
$pdo->exec($sql);
|
||||
// 提交事务
|
||||
$pdo->commit();
|
||||
}catch (Exception $e){
|
||||
return '数据库更新异常,请联系运维人员';
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user