Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

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

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

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

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

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



  1. Создайте проект для вашего расширения и разместите его в VCS репозитории, таком как github.com. Разработка и поддержка расширения должна выполняться в этом репозитории.
  2. В корневой директории проекта создайте файл под названием composer.json, в соответствии с требованиями Composer. Вы можете обратиться к следующему разделу за более подробной информацией.
  3. Зарегистрируйте ваше расширение в репозитории Composer, таком как Packagist, чтобы другие пользователи могли найти и установить ваше расширение, используя Composer.

composer.json

Каждый пакет Composer должен иметь файл composer.json в своей корневой директории. Этот файл содержит метаданные о пакете. Вы можете найти полную спецификацию по этому файлу в Руководстве Composer. Следующий пример демонстрирует файл composer.json для расширения yiisoft/yii2-imagine:

{
    // название пакета
    "name": "yiisoft/yii2-imagine",

    // тип пакета
    "type": "yii2-extension",

    "description": "The Imagine integration for the Yii framework",
    "keywords": ["yii2", "imagine", "image", "helper"],
    "license": "BSD-3-Clause",
    "support": {
        "issues": "https://github.com/yiisoft/yii2/issues?labels=ext%3Aimagine",
        "forum": "http://www.yiiframework.com/forum/",
        "wiki": "http://www.yiiframework.com/wiki/",
        "irc": "irc://irc.freenode.net/yii",
        "source": "https://github.com/yiisoft/yii2"
    },
    "authors": [
        {
            "name": "Antonio Ramirez",
            "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
        }
    ],

    // зависимости пакета
    "require": {
        "yiisoft/yii2": "~2.0.0",
        "imagine/imagine": "v0.5.0"
    },

    // указание автозагрузчика классов
    "autoload": {
        "psr-4": {
            "yii\\imagine\\": ""
        }
    }
}

Название пакета

Каждый пакет Composer должен иметь название, которое однозначно идентифицирует пакет среди остальных. Название пакета имеет формат имяРазработчика/названиеПроекта. Например, в пакете yiisoft/yii2-imagine, yiisoft является именем разработчика, а yii2-imagine - названием пакета.

НЕ используйте yiisoft в качестве имени разработчика, так как оно зарезервировано для использования в коде ядра Yii.

Мы рекомендуем использовать префикс yii2- в названии проекта для пакетов, являющихся расширениями Yii 2, например, моёИмя/yii2-mywidget. Это позволит пользователям легче определить, что пакет является расширением Yii 2.

Тип пакета

Важно указать тип пакета вашего расширения как yii2-extension, чтобы пакет можно было распознать как расширение Yii во время установки.

Когда пользователь запускает команду php composer.phar install для установки расширения, файл vendor/yiisoft/extensions.php будет автоматически обновлён, чтобы включить информацию о новом расширении. Из этого файла приложение Yii может узнать, какие расширения установлены (информацию можно получить с помощью [[yii\base\Application::extensions]]).

Зависимости

Ваше расширение зависит от Yii (естественно). Вы можете посмотреть список зависимостей в секции require, входящей в файл composer.json. Если ваше расширение зависит от других расширений или сторонних библиотек, то вы также должны их перечислить. Убедитесь, что в ограничениях вы указали соответствующую версию (например, 1.*, @stable) для каждой зависимости. Используйте стабильные версии зависимостей, когда будет выпущена стабильная версия вашего расширения.

Автозагрузка классов

Для того, чтобы ваши классы были загружены автозагрузчиком классов Yii или автозагрузчиком классов Composer, вы должны внести секцию autoload в файл composer.json, как показано ниже:

{
    // ....

    "autoload": {
        "psr-4": {
            "yii\\imagine\\": ""
        }
    }
}

Вы можете перечислить один или несколько корневых пространств имён и соответствующие им пути.

Когда расширение установлено в приложение, Yii для каждого указанного корневого пространства имён создаст псевдоним, который указывает на директорию, соответствующую пространству имён. Например, указанная в секции autoload запись будет соответствовать псевдониму @yii/imagine.

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )

Log in to comment

Обсуждение этой статьи

ИНФОРМАЦИЯ: Вы оставите комментарий к этой статье как 'Гость'