承接 onlyoffice/docs-integration-sdk 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

onlyoffice/docs-integration-sdk

最新稳定版本:v1.3.0

Composer 安装命令:

composer require onlyoffice/docs-integration-sdk

包简介

ONLYOFFICE Docs integration SDK

关键字:

README 文档

README

ONLYOFFICE Docs Integration PHP SDK provides common interfaces and default implementations for integrating ONLYOFFICE Document Server into your own website or application on PHP.

Prerequisites

  • PHP: version 7.4.0 and higher

Managers

Manager Description Default implementation
DocumentManagerInterface This manager is used for working with files, and string data associated with documents. DocumentManager (abstract)
FormatsManagerInterface This manager is used for working with document formats. FormatsManager
JwtManagerInterface This manager is used for generating and verifying authorization tokens. JwtManager (abstract)
SettingsManagerInterface This manager is used to manage integration application settings. SettingsManager (abstract)

Services

Service Description Default implementation
CallbackServiceInterface This service is used for processing the response of the Document Server. CallbackService (abstract)
DocEditorConfigServiceInterface This configuration generation service is used for opening the document editor. DocEditorConfigService
RequestServiceInterface This service is used to make requests to the ONLYOFFICE Document Server. RequestService (abstract)

Usage

  1. Implement the methods of the abstract DocumentManager class:
    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. Implement the methods of the abstract JwtManager class (use third-party libraries for JWT encoding and decoding, whichever is convenient for you):
    public function encode($token, $key, $algorithm = "HS256")
    {
        return "SOME.JWT.STRING";
    }
    
    public function decode($token, $key, $algorithm = "HS256")
    {
        return json_encode([]);
    }
  3. Implement the methods of the abstract SettingsManager class:
    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. Implement the methods of the abstract SettingsManager class:
    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. Create a class that implements the HttpClientInterface interface (use PHP Client URL Library or any other third-party library to make requests):
    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. Implement the method of the abstract RequestService class:
    public function getFileUrlForConvert()
    {
        return "https://example-server.example/file-url-for-check-convert";
    }
  7. Use DocEditorConfigService to create a config model for the editors in your own controllers.

统计信息

  • 总下载量: 33.88k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 5
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2026-01-04