onlyoffice / docs-integration-sdk
ONLYOFFICE Docs 集成 SDK
v0.0.4
2024-09-25 09:58 UTC
Requires
- vlucas/phpdotenv: ^5.6
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 及更高版本
管理器
服务
使用方法
- 实现抽象 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"; }
- 实现抽象 JwtManager 类的方法(使用您方便的第三方库进行 JWT 编码和解码)
public function encode($token, $key, $algorithm = "HS256") { return "SOME.JWT.STRING"; } public function decode($token, $key, $algorithm = "HS256") { return json_encode([]); }
- 实现抽象 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); }
- 实现抽象 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); }
- 创建一个实现 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\"}"; } }
- 实现抽象 RequestService 类的方法
public function getFileUrlForConvert() { return "https://example-server.example/file-url-for-check-convert"; }
- 使用 DocEditorConfigService 在您的控制器中为编辑器创建配置模型。