Предварительные требования

Чтобы начать разработку расширений Plesk, вам нужен сервер с установленным Plesk. Если у вас его нет, установите Plesk, выполнив шаги, описанные здесь.

Шаг 1: Создайте и установите расширение

Расширение Plesk представляет собой архив ZIP, который содержит организованную специальным образом структуру папок и файл с метаданными, описывающими программное обеспечение.

Примечание: Если вы хотите изучить структуру на примере тестового расширения, посмотрите наш пример расширения «Hello world» здесь.

Быстрый способ создания расширения – вызов утилиты командной строки extension (чтобы узнать о ней больше, читайте здесь):

plesk bin extension --create hello-world

В результате этого вызова будет создана необходимая файловая структура на сервере Plesk. Все пути к папкам отображаются после завершения работы утилиты:

The extension was successfully created.
The path to extension's entry points: /usr/local/psa/admin/htdocs/modules/hello-world/
The path to PHP classes: /usr/local/psa/admin/plib/modules/hello-world/
The path to installation scripts: /usr/local/psa/admin/plib/modules/hello-world/scripts/
The path to the directory with run-time data: /usr/local/psa/var/modules/hello-world/

Здесь вы можете посмотреть пути к папкам, где развернуты файлы расширения. Читайте подробнее о способе организации файлов расширения здесь.

После развертывания шаблонной структуры вам надо зарегистрировать расширение на сервере Plesk с использованием следующей команды:

plesk bin extension --register hello-world

В результате новое расширение будет отображаться в списке расширений на странице Расширения в интерфейсе Plesk:

Инфраструктура

Расширения написаны на PHP, и при их организации широко используются практики Zend framework, например, использование схемы MVC (Модель-Представление-Контроллер) и конструирование форм. Хотя использование этих практик, строго говоря, необязательно, оно настоятельно рекомендуется. Поскольку хотя бы минимальное знание PHP обязательно для написания расширений, мы предполагаем, что читатели данного документа в той или иной степени знакомы с этим языком программирования. Если вы прежде не писали приложений на PHP, вы все равно можете использовать этот документ, но для разработки расширения вам может понадобиться изучить некоторые темы, связанные с PHP (выходящие за пределы содержания этого документа).

Шаг 2: Создайте контроллер

Шаблон расширения, поставляемый в комплекте с Plesk, содержит один контроллер /usr/local/psa/admin/plib/modules/hello-world/controllers/IndexController.php, содержащий шаблонное действие.

Давайте передадим некоторые данные этого контроллера представлению. В нашем случае мы получаем доступ к учетной записи текущего пользователя pm_Session:

class IndexController extends pm_Controller_Action
{
    public function indexAction()
    {
        $this->view->name = pm_Session::getClient()->getProperty('pname');
    }
}

Шаг 3: Создайте представление

Кроме того, поставляемый шаблон расширения содержит представление для этого контроллера: /usr/local/psa/admin/plib/modules/hello-world/views/scripts/index/index.phtml

Предполагается, что в этом представлении будет отображено следующее сообщение:

Hello, <?php echo $this->name; ?>!

Вы можете зайти на стартовую страницу расширения и удостовериться, что это сообщение отображается.

Шаг 4: Сожмите расширение

Перед тем как распространять расширение, его надо сжать. Вы можете сделать это с помощью утилиты командной строки extension:

plesk bin extension --pack hello-world

В случае успешного завершения команды вывод будет выглядеть следующим образом:

The extension was successfully exported to /root/hello-world-1.0-1.zip

Теперь вы можете скачать полученный архив.

Шаг 5: Удалите неиспользуемые файлы и папки

В рамках шаблона расширения было создано несколько функций, которые позволяют начать разработку быстрее, но не все из них используются. Рекомендуется просмотреть их и удалить те, которые не используются. В рассматриваемом примере расширения не используется ни один из скриптов установки, так что вы можете спокойно удалить папку plib/scripts.

Шаг 6: Добавьте значки и снимки экрана

Чтобы расширение можно было опубликовать в каталоге расширений, оно должно содержать значки и снимки экрана (читайте подробнее о требованиях к сертификации расширений здесь). Для этого вам необходимо создать следующие папки и файлы:

  • _meta
    • icons
      • 32x32.png – значок размером 32x32 пикселей
      • 64x64.png – значок размером 64x64 пикселей
    • снимки экрана (до 3 снимков с расширением 1024x768)
      • 1.png
      • 2.png

Шаг 7: Обновите файл метаданных

Перед публикацией расширения вам надо добавить в файл метаданных корректное название, описание, имя и адрес сайта поставщика, поддерживаемую версию Plesk и так далее:

<?xml version="1.0" encoding="UTF-8"?>
<module>
   <id>hello-world</id>
   <name>Hello World extension</name>
   <description>Sample extension to display "Hello, World!"</description>
   <version>1.0</version>
   <release>1</release>
   <vendor>Plesk</vendor>
   <url>https://www.plesk.com</url>
   <plesk_min_version>11.0</plesk_min_version>
</module>

Более подробную информацию о meta.xml смотрите здесь.

Шаг 8: Пройдите сертификацию

Теперь вы можете отправить свое расширение на сертификацию для публикации в каталоге расширений. Более подробную информацию о процессе публикации смотрите здесь: https://www.plesk.com/partners/develop/help/.