# Утилита для управления расширениями

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

## Использование

    plesk bin extension <command> [<param>][<option_1> [<param>]][<option_2>]

Читайте обо всех командах и опциях, которые можно использовать с утилитой, в Руководстве по утилитам командной строки для Linux или для Windows.

Ниже приводятся примеры действий, которые вы можете выполнить с расширением, используя утилиту `extension`.

## Установка расширения

Установка расширения включает в себя следующее:

1. Извлечение данных из архива.

2. Выполнение скрипта, запускаемого перед установкой.

3. Копирование составных частей расширения в специальные папки.

4. Регистрация расширения в базе данных.

5. Выполнение скрипта, запускаемого после установки.

Вот пример команды для установки расширения:

    plesk bin extension -i my-extension.zip
    The extension was successfully installed.

Вы также можете установить расширение через интерфейс Plesk.

## Удаление расширения

Удаление расширения включает в себя следующее:

1. Выполнение скрипта, запускаемого перед удалением.

2. Удаление информации из базы данных (из списка зарегистрированных расширений).

3. Удаление файлов расширения.

Вот пример команды для удаления установленного расширения (идентификатор расширения надо указать как параметр):

    plesk bin extension -u my-extension
    The extension was successfully uninstalled.

Вы также можете удалить расширение через интерфейс Plesk.

## Создание шаблона для нового расширения

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

Вот пример команды для создания шаблона расширения (идентификатор расширения надо указать как параметр):

    plesk bin extension -c test-module
    The extension was successfully created.
    The path to extension entry points: /usr/local/psa/admin/htdocs/modules/test-module/
    The path to PHP classes: /usr/local/psa/admin/plib/modules/test-module/
    The path to installation scripts:  /usr/local/psa/admin/plib/modules/test-module/scripts/
    The path to the directory with run-time data: /usr/local/psa/var/modules/test-module/

Составные части расширения будут помещены в следующие папки (относительно папки `%plesk-root%`):

- `admin/htdocs/modules/test-module/` – точки входа расширения, графические файлы, стили CSS, файлы JavaScript.

- `admin/plib/modules/test-module/` – классы PHP, которые реализуют логику расширения.

- `var/modules/test-module/` – папка для хранение данных, которые изменяются во время работы расширения, например, базы данных SQLite, кэшированные данные.

Если разработка расширения не подразумевает использования шаблона MVC, вы можете отменить создание дополнительных файлов с помощью опции `-no-ui`.

    plesk bin extension -c test-module -no-ui
    The extension was successfully created.
    The path to installation scripts:  /usr/local/psa/admin/plib/modules/test-module/scripts/
    The path to the directory with run-time data: /usr/local/psa/var/modules/test-module/

Если разработка пакетных скриптов не требуется, вы можете отменить создание дополнительных файлов с помощью опции `-no-scripts`:

    plesk bin extension -c test-module -no-scripts
    The extension was successfully created.
    The path to module entry points: /usr/local/psa/admin/htdocs/modules/test-module/
    The path to PHP classes: /usr/local/psa/admin/plib/modules/test-module/
    The path to the directory with run-time data: /usr/local/psa/var/modules/test-module/

## Регистрация расширения в Plesk

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

1. Выполнение скрипта, запускаемого перед установкой.

2. Регистрация расширения в базе данных.

3. Выполнение скрипта, запускаемого после установки.

Вот пример команды для регистрации расширения (идентификатор расширения надо указать как параметр):

    plesk bin extension -r test-module
    The extension was successfully registered.

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

## Подготовка дистрибутива

Для вашего удобства существует возможность генерации архива ZIP на основе установленного расширения. Для этого выполните следующую команду:

    plesk bin extension -p test-module
    The extension was successfully exported to /root/test-module.zip

По умолчанию архив ZIP создается в текущей папке. Чтобы создать архив в конкретной папке, используйте опцию `-destination`:

    plesk bin extension -p test-module -destination /tmp/
    The extension was successfully exported to /tmp/test-module.zip

## Просмотр списка установленных расширений

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

    plesk bin extension -l
    test-module - Extension example