# moyu-cloud-encrypt **Repository Path**: moleft/moyu-cloud-encrypt ## Basic Information - **Project Name**: moyu-cloud-encrypt - **Description**: moyu-cloud-encryp可以通过Composer添加到你的项目中,为你的项目提供快捷简单的php文件加密服务 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: https://encode.phpth.cn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-14 - **Last Updated**: 2022-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: PHP, Composer ## README # moyu-cloud-encrypt 本composer包基于 陌屿云加密([encode.phpth.cn](https://encode.phpth.cn)) 开发 一个优雅、使用简单、易于拓展的云加密类库 ## 使用方法 ### 使用Composer安装 ```shell composer require moleft/moyu-cloud-encrypt ``` ### 引入autoload ```php include __DIR__'/vendor/autoload.php'; ``` ### 检查是否支持某种加密方式 ```php use Moyu\CloudEncrypt\Driver; $result = Driver::support('sg11'); var_dump($result); // true ``` ### 初始化加密 ```php use Moyu\CloudEncrypt\Driver; // 设置核心参数 $config = [ 'user' => '', 'pass' => '', 'apikey'=> '' ]; // 首次使用 Driver 创建加密实例时需要调用 setConfig $driver = Driver::setConfig($config)->getInstance('sg11'); // 切换加密实例不需要调用 setConfig $driver = Driver::getInstance('goto'); ``` ### 使用Try...Catch捕获异常 ```php use Moyu\CloudEncrypt\CloudEncryptException; use Moyu\CloudEncrypt\Driver; try{ // 设置核心参数 $config = [ 'user' => '', 'pass' => '', 'apikey'=> '' ]; // 创建加密实例 $driver = Driver::setConfig($config)->getInstance('sg11'); // TODO 加密具体业务逻辑 // ... } catch(CloudEncryptException $e){ // 获取错误信息 exit($e->getMessage()); } ``` ## 内置方法 ### 设置额外参数 ``setParameter()`` ```php // 使用 setParameter($key, $value) 设置键对值 $driver->setParameter('comment', '自定义加密注释'); // 使用 setParameter([key1=>value1,key2=>value2]) 批量设置键对值 $driver->setParameter(['comment'=>'自定义加密注释',...]); ``` ### 设置加密文件 ``setFile()`` 加密文件不能用 ``setParameter('file',$filePath)`` 设置 ```php // 直接传入绝对路径或相对路径即可 $driver->setFile($filePath); ``` ### 开始加密 ``encrypt()`` 必须要当配置好所有的参数之后,才可以调用encrypt()加密,如果缺少参数或者加密失败会抛出 ``CloudEncryptException`` 异常 这时我们可以用``try..catch``尝试捕获 ```php $driver->encrypt(); ``` ### 保存加密文件 ``saveFile()`` 当加密成功后,可以调用 ``saveFile($filePath)`` 方法保存加密好的文件 注意:如果路径不存在,他会自动创建,所以你不需要担心这方面的问题 ```php $driver->saveFile($saveFilePath); ``` ### 获取加密结果 ``success()`` 此方法必须要在调用 ``saveFile()`` 之后才可以调用,因为 ``encrypt()`` 在加密失败的时候,会抛出异常 如果加密成功调用 ``success()`` 返回会布尔值 ``true`` 或 ``false`` ```php $result = $driver->success(); var_dump($result); // true or false ``` ### 获取云端返回的消息 ``message()`` 有的时候我们可能想要知道云端返回了什么消息,这时可以使用 ``message()`` 方法来查看云端的消息 ```php $driver->message(); ``` ## 链式操作 为了优雅与简单共存,所有的内置方法都可以使用链式操作来调用。当然,如果你喜欢的话,甚至可以链式调用 ``success()`` 和 ``message()`` 尽管这并没有什么用 ```php try { // 设置核心参数 $config = [ 'user' =>'', 'pass' =>'', 'apikey' =>'' ]; // 获取加密实例 $driver = Driver::setConfig($config)->getInstance('sg11'); // 第二次使用 // $driver = Driver::getInstance('sg11'); // 依次设置 参数 -> 文件 -> 开始加密 $result = $driver->setParameter(['comment'=>'测试','Ver'=>'72']) ->setFile(__DIR__.'/test.php') ->encrypt() ->saveFile(__DIR__.'/test2.zip'); // 判断加密结果 if($result->success()){ // 获取云端消息 echo $result->message().'
'; exit('加密成功'); }else{ exit('加密失败'); } } catch (CloudEncryptException $e) { exit($e->getMessage()); } ``` ## 自定义加密驱动 为了方便后续添加其他的加密驱动,这里提供了自定义加密驱动的方法 ### 1. 在Driver目录下创建驱动文件,格式为``[驱动名]Driver.php`` 比如,我们要创建一个Custom加密,则需要在Driver目录下创建一个叫做``CustomDriver.php``的文件 ### 2. 命名空间与继承 按照Psr-4命名规范,我们的命名空间必须为 ``Moyu\CloudEncrypt\Driver`` 自定义驱动必需要继承自 ``Moyu\CloudEncrypt\Encrypt`` ```php '', 'pass' =>'', 'apikey' =>'' ]; // 获取加密实例 $driver = Driver::setConfig($config)->getInstance('custom'); // 依次设置 参数 -> 文件 -> 开始加密 $result = $driver->setParameter(['parameter1'=>'custom','parameter2'=>'custom']) ->setFile(__DIR__.'/test.php') ->encrypt() ->saveFile(__DIR__.'/test2.zip'); // 判断加密结果 if($result->success()){ // 获取云端消息 echo $result->message().'
'; exit('加密成功'); }else{ exit('加密失败'); } } catch (CloudEncryptException $e) { exit($e->getMessage()); } ```