onlyoffice/docs-integration-sdk

v0.0.4 2024-09-25 09:58 UTC

This package is not auto-updated.

Last update: 2024-09-25 09:59:20 UTC


README

ONLYOFFICE Docs 集成 PHP SDK 为将 ONLYOFFICE 文档服务器集成到您的网站或应用程序(基于 PHP)提供了公共接口和默认实现。

先决条件

  • PHP: 版本 7.4.0 及更高版本

管理器

服务

使用方法

  1. 实现抽象 DocumentManager 类的方法
    public function getDocumentKey(string $fileId, bool $embedded = false)
    {
        return self::generateRevisionId($fileId);
    }
    
    public function getDocumentName(string $fileId)
    {
        return "sample.docx";
    }
    
    public static function getLangMapping()
    {
        return null;
    }
    
    public static function getFileUrl(string $fileId)
    {
        return "https://example-server.example/fileId/download/";
    }
    
    public static function getCallbackUrl(string $fileId)
    {
        return "https://example-server.example/callback";
    }
    
    public static function getGobackUrl(string $fileId)
    {
        return "https://example-server.example/filelist";
    }
    
    public static function getCreateUrl(string $fileId)
    {
        return "https://example-server.example/fileId";
    }
  2. 实现抽象 JwtManager 类的方法(使用您方便的第三方库进行 JWT 编码和解码)
    public function encode($token, $key, $algorithm = "HS256")
    {
        return "SOME.JWT.STRING";
    }
    
    public function decode($token, $key, $algorithm = "HS256")
    {
        return json_encode([]);
    }
  3. 实现抽象 SettingsManager 类的方法
    public function getServerUrl()
    {
        return "https://example-server.example/";
    }
    
    public function getSetting($settingName)
    {
        return null;
    }
    
    public function setSetting($settingName, $value, $createSetting = false)
    {
        // if ($createSetting === true) {
            // $this->yourMethodForCreateNewSetting($settingName, $value);
            // return;
        // }
        // $this->yourMethodForSetNewValueForSetting($settingName, $value);
    }
  4. 实现抽象 SettingsManager 类的方法
    public function processTrackerStatusEditing()
    {
        // $someTrackResult["error"] = 0;
        // return json_encode($someTrackResult);
    }
    
    public function processTrackerStatusMustsave()
    {
        // $someTrackResult["error"] = 0;
        // return json_encode($someTrackResult);
    }
    
    public function processTrackerStatusCorrupted()
    {
        // $someTrackResult["error"] = 0;
        // return json_encode($someTrackResult);
    }
    
    public function processTrackerStatusClosed()
    {
        // $someTrackResult["error"] = 0;
        // return json_encode($someTrackResult);
    }
    
    public function processTrackerStatusForcesave()
    {
        // $someTrackResult["error"] = 0;
        // return json_encode($someTrackResult);
    }
  5. 创建一个实现 HttpClientInterface 接口的类(使用 PHP 客户端 URL 库或其他任何第三方库来发送请求)
    class YourHttpClient implements HttpClientInterface
    {
        public function __construct()
        {
            $this->responseStatusCode = null;
            $this->responseBody = null;
        }
    
        public function getStatusCode()
        {
            return $this->responseStatusCode;
        }
    
        public function getBody()
        {
            return $this->responseBody;
        }
    
        public function request($url, $method = 'GET', $opts = [])
        {
            $this->responseStatusCode = 200;
            $this->responseBody = "{\"status\": \"OK\"}";
        }
    }
  6. 实现抽象 RequestService 类的方法
    public function getFileUrlForConvert()
    {
        return "https://example-server.example/file-url-for-check-convert";
    }
  7. 使用 DocEditorConfigService 在您的控制器中为编辑器创建配置模型。