ONLYOFFICE Docs Integration PHP SDK provides common interfaces and default implementations for integrating ONLYOFFICE Document Server into your own website or application on PHP.
- PHP: version 7.4.0 and higher
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) |
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) |
- 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"; }
- 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([]); }
- 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); }
- 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); }
- 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\"}"; } }
- Implement the method of the abstract RequestService class:
public function getFileUrlForConvert() { return "https://example-server.example/file-url-for-check-convert"; }
- Use DocEditorConfigService to create a config model for the editors in your own controllers.