多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 插件的离线安装 > 关于插件的安装,在实际项目中常见的安装方式有`手动安装`、`离线安装`、`在线安装`。前几节讲的插件的安装要主要`手动安装`,这里咱们重点讲一下`离线安装`。 ## 安装方式 ### 手动安装 前几节所讲的安装是将插件的所有文件(解压后)上传到插件目录来实现的安装。这里的上传方式是一般是通过FTP等直接上传。 ### 离线安装 离线安装是指将安装包下载到本地(不需要进行解压),然后通过后台上传来实现的安装方式。 ### 在线安装 是指将远程插件仓库中的插件通过远程的方式获取并直接安装。这里的插件仓库一般是开发者提供的。 ## 离线安装的实现 ### 知识点 #### 1\. 插件离线包的制作 #### 2\. 文件上传 #### 3\. 在线解压 ### 离线包的制作 > 在这里要制定套规范。在这里咱们直接把插件目录打包成\*.zip格式的。 > 例留言插件打包后:`message.zip`文件名自定义,重要的是包里的内容。 ### 在线解压的实现 ~~~ <?php //解压缩 $zip = new \ZipArchive; //要解压的文件 $zipfile = "./test.zip"; $res = $zip->open($zipfile); if($res!==true){ return "操作异常"; } //要解压到的目录 $toDir = "./test"; if(!file_exists($toDir)) { mkdir($toDir,755); } //获取压缩包中的文件数(含目录) $docnum = $zip->numFiles; //遍历压缩包中的文件 for($i = 0; $i < $docnum; $i++) { $statInfo = $zip->statIndex($i); if($statInfo['crc'] == 0) { //新建目录 mkdir($toDir.'/'.substr($statInfo['name'], 0,-1)); } else { //拷贝文件 copy('zip://'.$zipfile.'#'.$statInfo['name'], $toDir.'/'.$statInfo['name']); } } ~~~ > 上传并解压完成后,可以直接执行安装操作