Как скопировать файлы CSS и JS в папку поставщика композитора?

Я только начинаю изучать несколько фреймворков PHP. В примерах, которые я пробовал, все используют composer , которого я раньше не использовал, поэтому пока что не совсем ясно.

Я указал некоторые JS и CSS-библиотеки в composer.json и выполнил composer install . Теперь эти библиотеки добавляются в папку vendor .

Теперь, как я должен использовать файлы JS и CSS, которые находятся в этих папках, например bootstrap/dist/css/bootstrap.min.css ? Примеры, которые я попробовал, либо просто имеют копию в public/css папке, либо использовать удаленную ссылку, например <link href="//netdna.bootstrapcdn.com/bootswatch/2.3.1/united/bootstrap.min.css" rel="stylesheet"> в volt файле.

По какой-то причине мне не нравятся удаленные ссылки, подобные этим в моем приложении (я боюсь, что они могут быть «вниз» когда-нибудь). Но другой вариант тоже не очень красив, я думаю, так как мне еще нужно выбрать нужные файлы для копирования из vendor на public .

Разве нет «автоматического» способа сделать это? Или, может быть, указав его в контроллер, который затем копирует файлы в него?

Композитор был написан для получения зависимостей PHP. Он не очень хорошо работает с другими веб-ресурсами, такими как CSS или JS-файлы.

Плагин создания композитора

Для решения проблемы извлечения активов плагин Composer Asset был разработан François Pluchino (fxp). Он предоставляет менеджер зависимости NPM / Bower для Composer. Это мост для этих менеджеров зависимостей и будет загружать материал в папку поставщика.

Имейте в виду, что вы всегда можете напрямую использовать Bower или NPM. Выполните ваши зависимости PHP с помощью Composer, определенных в composer.json. Извлеките свои активы с помощью Bower, определенных в bower.json. Это может быть более чистый подход.

Документация – Packagist

Вы можете потребовать его от CLI: для composer require fxp/composer-asset-plugin

Например, для извлечения активов «Twitters Bootstrap» и «JQuery»:

 { "require": { "bower-asset/bootstrap": "dev-master", "bower-asset/jquery-2.1.0": "2.1.0" } } 

Некоторые структуры предоставляют пользовательские обработчики для активов, в основном для поддержки их индивидуального расположения папок и копирования вещей в правильные места из папки поставщика. Я не знаю, есть ли у Фалкона что-то, чтобы получить активы.

Разве нет «автоматического» способа сделать это? Или, может быть, указав его в контроллер, который затем копирует файлы в него?

Копирование активов из папки поставщика в правильное место в макете приложения – это еще одна история.

Нет автоматического способа сделать это. Вы должны сами обеспечить механизм.

Например, вы можете изменить путь установки от поставщика к public/assets или чему-то еще, см. https://github.com/francoispluchino/composer-asset-plugin/blob/master/Resources/doc/index.md#define-a -custom-каталог-для-активов-установки

Плагин не копирует вещи.

Bower + Grunt (краткое: извлеките активы с помощью Bower, скопируйте материал с помощью Grunt)

Ближайшим к «указанию контроллера» будет настройка задачи Grunt для копирования только нужного материала с Bower из web/assets/vendor в папку web/assets/app .

Другими словами: даже менеджер пакетов JS, такой как Bower, обеспечивает автоматическое копирование основных файлов API. Bower выведет последнюю версию jQuery в определенную папку поставщика, но она не будет автоматически копировать jquery.min.js в web/assets/js/jquery.min.js . Вам нужно выполнить задачу поверх нее.