Skip to content
This repository has been archived by the owner on Jun 7, 2019. It is now read-only.

Создание расширений

Максим Тарасов edited this page Nov 17, 2018 · 2 revisions

Создание расширений с использованием jppm

Установка зависимостей

Для начала работы вам нужно установить jppm. После установки jppm вам нужно установить SDK для разработки расширений. Для этого нужно клонировать репозиторий и в папке где лежат файлы этого репозитория выполнить команду jppm publish --yes

Создание hello world расширения

Создание jppm пакета

Для создания расширения нужно создать папку и выполнить в ней команду jppm init. Заполняем имя и версию пакета, а когда спросят добавлять AppPlugin пишем y.

Теперь нужно удалить src/index.php и выполнить ещё 2 команды.

  • Удалить jphp-zend-ext: jppm remove jphp-zend-ext
  • Добавить Nearde SDK: jppm add Nearde-SDK

После всех продельных операций у нас почти готово первое расширения для Nearde IDE. Осталось написать логику для него.

Написание кода

Ну а теперь то что делает расширение расширением. Это конечно его код! Для начало нужно перейти в паку src в нашем jppm пакете и создать иерархию директорий.

  -> .nearde
  -> .data
     -> img
        -> icons
  -> ide

Давайте подробнее рассмотрим наши директории. В папке src есть 3 папки это

  • .nearde - здесь будут ссылки на php классы. Эти ссылки будут хранится в фалах
  • .data - директория для ресурсов расширения
    • img - здесь хранятся картинки
      • icons - а тут уже иконки
  • ide - тут уже хранятся php классы с namespace ide

С директориями разобрались а теперь давайте напишем расширение которое при запуске IDE будет говорить нам Hello World!

Для этого нам нужно создать класс нашего расширения который будет наследоваться от AbstractExtension. Для имени класса тоже есть свои правила. Обычно пишется так CamelCaseNameExtension где CamelCaseName можно заменить на своё в стиле CamelCase. Думаю это понятно.

Так как класс AbstractExtension абстрактный. Нам нужно унаследовать от него 7 методов. К примеру мы создали класс TestExtension:

<?php

namespace ide;

class TestExtension extends AbstractExtension
{
    public function onRegister()
    {
        // тут мы регистрируем всё что расширяет IDE: настройки, темы, редакторы, форматы и.д
    }

    public function onIdeStart()
    {
        // при старте IDE
        alert("Hello World!"); 
    }

    public function onIdeShutdown()
    {
        // при выключении IDE
    }

    public function getName(): string
    {
        return "Test"; // возвращаем имя нашего расширения 
    }

    public function getAuthor(): string
    {
        return "MWGuy"; // автор
    }

    public function getVersion(): string
    {
        return "1.0.0"; // версия
    }

    public function getIcon32(): string
    {
        return "icons/test32.png"; // иконка 32x32 относительно директории res://.data/img/
    }
}

Теперь нам нужно сказать Nearde что это класс с расширением. Для этого в папке .nearde создаём файл extensions содержимое которого это ссылка на php класс. К примеру ide\TestExtension.

По сути расширение которое скажет нам привет мир уже готово. Осталось лишь его собрать.

Сборка и установка расширения

Для того чтобы собрать и установить расширение нужно просто выполнить команду jppm build и собранный jar архив поместить в папку %USER-HOME%/NeardeLibrary/plugins/ Дальше IDE всё сделает сама.

Тестируем что же вышло

Просто запускаем IDE и наблюдаем:

А в настройках у нас: