Независимый от платформы композитор сценарий post-install-cmd - PullRequest
0 голосов
/ 25 мая 2018

Допустим, мой проект имеет следующую структуру

project\
    templates\
    web\assets\
composer.json

При запуске composer update по умолчанию символическая ссылка на мой проект создается в каталоге vendor/.Я хотел бы создать собственный сценарий post-install-cmd, который будет создавать символическую ссылку на папку templates\ и web\assets\ в другом месте.

Так как моя команда работает над Windows / Mac / Linux, я планировал запустить простые команды php, чтобы это произошло.Я не могу понять, с чего начать ...

Дело в том, что я не могу понять, где находится мое текущее местоположение при запуске сценария php?Я попытался создать пустой файл, чтобы увидеть, где он его создает, но он даже не создает его.

Это то, что я хочу получить

"scripts": {
    "post-install-cmd": [
        "php -r \"symlink('/vendor/project/templates', '/templates/project');\"",
        "php -r \"symlink('/vendor/project/web/assets', '/web/project/assets');\""
    ]
}

1 Ответ

0 голосов
/ 26 мая 2018

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

"scripts": {
    "post-install-cmd": [
        "php -r \"symlink('vendor/project/templates', 'templates/project');\"",
        "php -r \"symlink('vendor/project/web/assets', 'web/project/assets');\""
    ]
}

Если вы хотите пуленепробиваемое решение, вам, вероятно, следует создать вспомогательный класс PHP и использовать __DIR__ lub composer API для определения правильных путей.См. примеры в документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...