Рейтинг:  0 / 5

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

composer.json в Yii 2

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

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

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