mihaildev/yiicomposer

Yii Composer installer

Installs: 259

Dependents: 0

Stars: 2

Watchers: 1

Language: PHP

2.0.0 2013-10-23 17:17 UTC

README

Разработка для удобного использования Composer с фреймворком Yii

{
    "config":{
        "vendor-dir": "www/protected/vendor"
    },
    "extra": {
        "yiicomposer-paths":{
            "module": "{vendor}/modules/{name}",
            "extension":"{vendor}/extensions/{name}",
            "framework": "{vendor}/framework",
            "yiisoft/yii": "$framework$"
        },
        "yiicomposer-console-config":"www/protected/config/console.php",
        "yiicomposer-console-commands":[
            {
                "controller":"migrate"
            },
            {
                "controller":"test",
                "action": "test",
                "params": {
                    "param1": "value1",
                    "param2": "value2",
                    "param3": "value3"
                }
            }
        ]
    },
    "require": {
        "mihaildev/yiicomposer": "dev-master",
        "yiisoft/yii": "1.1.14"
    },
    "scripts":{
        "post-update-cmd": "YiiComposer\\Console::update"
    }
}

Настройка путей

За настройку путей отвечает переменная "yiicomposer-paths". Формирование пути, основываясь на следующих переменных:

{vendor} – путь к папке для хранения всех пакетов берётся из основных настроек "vendor-dir"

{type} – тип пакета, если указан (пример yii-extension-test - {type} будет равен extension) Тип пакета можно указать как в настройках пакета (в файле composer.json параметр "type" пакета) так и в настройках проектного файла в разделе "yiicomposer-paths" как для пакета yiisoft/yii установлен тип framework. Тип задаётся в нескольких форматах для параметра type в пакете yii-{type} или yii-{type}-{name} или в проектном файле в разделе "yiicomposer-paths" в формате ${type}$ или ${type}-{name}$

{package} – название пакета оригинальное (пример mihaildev/testextension будет равен mihaildev/testextension)

{name} – название по умолчанию берётся из названия пакета вторая часть (пример "name": "mihaildev/testmodule" {name} равен testmodule), если название установлено в типе пакета, то yiicomposer возьмёт его (пример yii-extension-test - {name} будет равен test) также можно переназначить и в настройках (пример "clevertech/yii-booster": "$extension-yii-booster$" {name} будет равен yii-booster)

В ней можно преназначить основные потдерживаемые типы (module, extension, framework) а также добавить свои типы.

    "extra":{
        "yiicomposer-paths":{
            "sometype": "{vendor}/some/{name}"
            "yiiext/migrate-command": "$sometype-hochutut$"
            "mihaildev/testextension": "$sometype-hochutut2$"
        }
    },
    "require": {
        "mihaildev/yiicomposer": "dev-master",
        "mihaildev/testextension": "dev-master",
        "yiisoft/yii": "dev-master",
        "yiiext/migrate-command": "dev-master"
    }

Настройка пакета

Вариант 1

{
    "name": "mihaildev/testextension",
    "type": "yii-extension-test"
}

в данном случае {type} равен extension а {name} равен test

Вариант 2

{
    "name": "mihaildev/testextension",
    "type": "yii-extension"
}

в данном случае {type} равен extension а {name} равен testextension

Настройка консольных команд

В раздел scripts вносим следующую запись "post-update-cmd": "YiiComposer\Console::update"

Пример

{
    "minimum-stability" : "alpha",
    "config":{
        "vendor-dir": "www/protected/vendor"
    },
    "extra":{
            "yiicomposer-paths":{
                "clevertech/yii-booster": "$extension-yii-booster$",
                "yiiext/migrate-command": "$extension$"
            }
    },
     "require": {
        "mihaildev/yiicomposer": "dev-master",
        "mihaildev/testmodule": "dev-master",
        "mihaildev/testextension": "dev-master",
        "yiisoft/yii": "dev-master",
        "clevertech/yii-booster": "v2.0.0",
        "yiiext/migrate-command": "dev-master"
    },
    "scripts":{
        "post-update-cmd": "YiiComposer\\Console::update"
    }
}

По умолчанию для запуска консольного приложения используется файл с настройками, находящийся по адресу path/to/vendor/../config/console.php, так как я предполагаю, что пользователи будут хранить папку vendor в папке protected, но при необходимости можно установить пременную "yiicomposer-console-config" указав путь к файлу с настройками.

Пример:

{
    "minimum-stability" : "alpha",
    "config":{
        "vendor-dir": "www/protected/vendor"
    },
    "extra":{
            "yiicomposer-console-config":"www/protected/config/console.php",

            "yiicomposer-paths":{
                "clevertech/yii-booster": "$extension-yii-booster$",
                "yiiext/migrate-command": "$extension$"
            }
    },
     "require": {
        "mihaildev/yiicomposer": "dev-master",
        "mihaildev/testmodule": "dev-master",
        "mihaildev/testextension": "dev-master",
        "yiisoft/yii": "dev-master",
        "clevertech/yii-booster": "v2.0.0",
        "yiiext/migrate-command": "dev-master"
    },
    "scripts":{
        "post-update-cmd": "YiiComposer\\Console::update"
    }
}

По умолчанию выполняется только одна консольная команда yiic migrate При необходимости можно добавить или переопределить список запускаемых команд настроив переменную "yiicomposer-console-commands"

Пример:

{
    "minimum-stability" : "alpha",
    "config":{
        "vendor-dir": "www/protected/vendor"
    },
    "extra":{
            "yiicomposer-console-config":"www/protected/config/console.php",

            "yiicomposer-console-commands":[
            {
                "controller":"migrate"
            },
            {
                "controller":"test",
                "action": "test",
                "params": {
                    "param1": "value1",
                    "param2": "value2",
                    "param3": "value3"
                }
            }
        ],

            "yiicomposer-paths":{
                "clevertech/yii-booster": "$extension-yii-booster$",
                "yiiext/migrate-command": "$extension$"
            }
    },
     "require": {
        "mihaildev/yiicomposer": "dev-master",
        "mihaildev/testmodule": "dev-master",
        "mihaildev/testextension": "dev-master",
        "yiisoft/yii": "dev-master",
        "clevertech/yii-booster": "v2.0.0",
        "yiiext/migrate-command": "dev-master"
    },
    "scripts":{
        "post-update-cmd": "YiiComposer\\Console::update"
    }
}