{"id":16430683,"url":"https://github.com/stereoflo/ispmanager-php-api","last_synced_at":"2025-03-23T07:34:36.210Z","repository":{"id":28628654,"uuid":"118910665","full_name":"StereoFlo/ispmanager-php-api","owner":"StereoFlo","description":"Manage an ISPManager panel with PHP","archived":false,"fork":false,"pushed_at":"2022-01-15T16:13:58.000Z","size":517,"stargazers_count":9,"open_issues_count":1,"forks_count":13,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-18T18:57:32.350Z","etag":null,"topics":["api","ispmanager","php"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StereoFlo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-25T12:34:03.000Z","updated_at":"2023-05-20T08:08:08.000Z","dependencies_parsed_at":"2022-08-03T00:16:04.076Z","dependency_job_id":null,"html_url":"https://github.com/StereoFlo/ispmanager-php-api","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StereoFlo%2Fispmanager-php-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StereoFlo%2Fispmanager-php-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StereoFlo%2Fispmanager-php-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StereoFlo%2Fispmanager-php-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StereoFlo","download_url":"https://codeload.github.com/StereoFlo/ispmanager-php-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245072304,"owners_count":20556353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","ispmanager","php"],"created_at":"2024-10-11T08:27:59.231Z","updated_at":"2025-03-23T07:34:35.833Z","avatar_url":"https://github.com/StereoFlo.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ISPManager PHP API\n\nAn English documentation is not ready, please use Google Translator\n\nЭтот код - попытка накидать клиент для API панели управления сервером ISPManager на PHP. В моем случае - я использую DNS хостинг, поэтому сделал все под себя (только управление ДНС). Однако, вы без труда, разбереретесь как напрогать классы для управления определенным разделом этой панели. Если у вас есть вопросы, с удовольствием на них отвечу.\n\n### Использование\n\n#### Установка:\n\n```bash\ncomposer require stereoflo/ispmanager-php-api\n```\n\n#### Подготовка сервера и пользователя\n\n```php\ninclude 'vendor/autoload.php';\n\n$server = new \\IspApi\\Server\\Server('server', 1500);\n$credentials = new \\IspApi\\Credentials\\Credentials('user', 'password');\n$format = new \\IspApi\\Format\\JsonFormat();\n$client = new \\IspApi\\HttpClient\\CurlClient(); // тут может быть любой ваш http клиент\n\n```\n\n#### Подготовка действий\n\n###### Подготовка к получению списка доменов\n```php\n$getDomainList = new \\IspApi\\Func\\Dns\\GetList();\n```\n\n###### Подготовка к удалению домена\n```php\n$deleteDomain = new \\IspApi\\Func\\Dns\\Delete('domain.ru');\n```\n\n###### Подготовка к добавлению домена\n\n```php\n$addDomain = new \\IspApi\\Func\\Domain\\Add();\n$addDomain-\u003esetAdditional([\n    'name'    =\u003e 'domain.ru',\n    'ip'      =\u003e '127.0.0.1',\n    'ns'      =\u003e 'dns3.domain.net. dns1.domain.net. dns2.domain.net.',\n    'ns_list' =\u003e '',\n    'mx'      =\u003e 'mail',\n    'mx_list' =\u003e '',\n    'elid'    =\u003e '',\n    'sok'     =\u003e 'ok',\n]);\n```\n\n###### Подготовка к получению списка записей по выбранному домену\n```php\n$listEntriesByDomain = new \\IspApi\\Func\\Dns\\Record\\GetList('domain.ru');\n```\n\n###### Подготовка к удалению выбранной записи домена\n```php\n$deleteDomainEntry = new \\IspApi\\Func\\Dns\\Record\\Delete('test A  127.0.0.1', 'domain.ru');\n```\n\n###### Подготовка к добавлению записи в домен \n```php\n$addItemToDomain = new \\IspApi\\Func\\Dns\\Record\\Add('', 'domain.ru');\n$addItemToDomain-\u003esetAdditional([\n    'name' =\u003e 'test1',\n    'sdtype' =\u003e 'A',\n    'addr' =\u003e '127.0.0.1',\n    'prio' =\u003e '',\n    'wght' =\u003e '',\n    'port' =\u003e '',\n    'elid' =\u003e '',\n    'sok'  =\u003e 'ok',\n]);\n```\n\n###### Подготовка к получению SOA записи\n```php\n$getSoaRecord = new \\IspApi\\Func\\Dns\\Soa\\GetSoa('domain.ru');\n```\n\n###### Подготовка к изменению записи SOA\n```php\n$domainSoaEdit = new \\IspApi\\Func\\Dns\\Soa\\Edit('domain.ru');\n$domainSoaEdit-\u003esetAdditional([\n    'primary' =\u003e 'dns3.domain.net.',\n    'email'   =\u003e 'info@domain.net',\n    'serial'  =\u003e '2018012514',\n    'refresh' =\u003e '10800',\n    'retry'   =\u003e '3600',\n    'expire'  =\u003e '604800',\n    'ttl'     =\u003e '3600',\n    'sok'     =\u003e 'ok',\n]);\n```\n\n###### Создаем экземпляр IspManager и устанавливаем ранее подготовленные объелкты для дальнейшего использования\n```php\n$ispManager = new IspApi\\IspManager();\n$response = $ispManager-\u003esetServer($server)\n    -\u003esetCredentials($credentials)\n    -\u003esetFunc($getDomainList)\n    -\u003esetHttpClient($client)\n    -\u003esetFormat($format);\n```\n\n###### Выполняем/Получаем\nОбратите внимание, что setFunc это установка заранее подготовленного действия (описано выше)\n```php\ntry {\n    $result = $ispManager-\u003esetFunc($domainSoaEdit)-\u003eexecute();\n    //do something\n} catch (\\Exception $exception) {\n    var_dump($exception);\n    //do something\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstereoflo%2Fispmanager-php-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstereoflo%2Fispmanager-php-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstereoflo%2Fispmanager-php-api/lists"}