Задать вопрос
@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 до новых версий, но так, чтобы файлы, в которых были изменения вручную, не затирались?


Если знаете другое решение задачи, также прошу написать.
  • Вопрос задан
  • 66 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 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 композера и творится всякое непотребство. Документации по нему нету, но методом тыка можно попытаться разобраться самостоятельно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы