@coderiter

Можно ли настроить Composer так, чтобы все файлы пакетов складывались в общую папку?

Всем доброго времени суток! Вопрос в названии темы, немного расшифрую:

Нужно сделать сборщик шаблонов из разных кусков. Скажем, есть у меня готовые натянутые секции для сайта на Wordpress: шапка, слайдер, текстовый блок, контакты. Каждая из этих секций лежит в моём репозитории. Задача: взять файлы из каждой из этих секций, поместить в папку с инициализированным Composer`ом с сохранением путей:

#header
/scss/_header.scss
/include/header-fields.php
/include/header-contact-form.php
/js/header.js
header.php


#slider
/css/slick.css
/css/slick-theme.css
/scss/_slider.scss
/js/slider.js
/include/slider-fields.php
/parts/slider.php


В итоге в папке должно получиться следующее:
/scss/_header.scss
      /_slider.scss

/css/slick.css
    /slick-theme.css

/include/header-fields.php
         /header-contact-form.php
         /slider-fields.php

/js/header.js
   /slider.js

/parts/slider.php

header.php


Вопросы:
  1. Можно ли сделать так, т.е. по факту проигнорировать неймспейсы и заставить все копироваться в одну папку?
  2. Можно ли передавать в Composer/через Composer определенные параметры, чтобы настраивать секции? Т.е. в одном варианте пишем --contact-form:true и кусок с контактной формой ставится, в другом - --contact-form:false и композер не тащит этот кусок.
  3. В продолжение прошлого вопроса: можно ли подменить определенные переменные в файлах, скажем, {{param}} на что-то своё, переданное с использованием Composer?
  4. Можно ли запускать свои скрипты/скрипты из установленного пакета через Composer сразу после установки скрипта? По факту, будут scss файлы собираться в общий.
  5. И как получится ли обновлять файлы Composer до новых версий, но так, чтобы файлы, в которых были изменения вручную, не затирались?


Если знаете другое решение задачи, также прошу написать.
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
SerafimArts
@SerafimArts
Senior Notepad Reader
Для написания подобных вещей существует такая вещь как "плагины". У Composer при установке зависимости есть API, которым можно пользоваться и творить что пожелается.

По второй ссылке, что указал Дмитрий в комментариях пример такого "творчества". Там используются вот эти команды: https://github.com/zendframework/zend-expressive-s... документация по которым есть на сайте композера: https://getcomposer.org/doc/articles/scripts.md#co... где вызываются вот эти методы во время установки: https://github.com/zendframework/zend-expressive-s...

А дальше дёргается API композера и творится всякое непотребство. Документации по нему нету, но методом тыка можно попытаться разобраться самостоятельно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы