Создание первого расширения

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

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

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

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

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

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

plesk bin extension --create hello-world

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

Расширение успешно создано.
Путь к точкам доступа расширения: /usr/local/psa/admin/htdocs/modules/hello-world/
Путь к классам PHP: /usr/local/psa/admin/plib/modules/hello-world/
Путь к скриптам установки: /usr/local/psa/admin/plib/modules/hello-world/scripts/
Путь к папке с данными работы расширения: /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

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

Расширение было успешно экспортировано в /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</name>
 <description>Простое расширение для отображения "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://ext.plesk.com/help.