Как использовать менеджеры пакетов? Composer, bower, другое?

Я хочу сделать opensource проект, предназначенный для встраивания в другие проекты. Если конкретно, то это некий редактор баз данных с множеством форм и вкладок, предназначенный для внедрения внутрь всяких админок и cms. Проект содержит как PHP код, так и JavaScript+CSS+Картинки. Кроме того у проекта много зависимостей от сторонних библиотек, как PHP (например PHPMailer) так и JavaScript (например jQueryUI).
Как правильно и оптимально воспользоваться пакетными менеджерами для такой задачи?
Composer все кладет в папки /vendor, и PHP и JavaScript. Мне кажется это не правильно, т.к. есть риск что PHP файлы станут публично доступными через веб-сервер. Раскладывать внутри папки vendor много файлов .htaccess тоже как то не эстетично.
Другой вариант который я вижу это пользоваться отдельно Composer для PHP, и отдельно Bower для остального. Но это как то не удобно. Придется параллельно пользоваться двумя разными менеджерами пакетов.
Плюс хочется, чтобы другие разработчики могли установить мой компонент в свой проект максимально просто. Тогда вопрос, где размещать PHP и JS файлы собственно моего проекта? В /vendor и /bower_components?
Мой вопрос, как это все организовать правильно, красиво и удобно?
  • Вопрос задан
  • 1034 просмотра
Пригласить эксперта
Ответы на вопрос 4
orlov0562
@orlov0562 Куратор тега PHP
I'm cool!
Что-то ты запутался:
* composer - это штука для управления зависимостями бэкэнда
* bower - это штука для управления зависимостями фронтенда

ключевые слова тут "управление зависимостями"

Ты же беспокоишься, что в итоге у тебя будет торчать наружу. Так вот, не /vendor не /bower_components не должны быть доступны. Доступной у тебя должна быть одна директория - public_html в которой у тебя будет index.php и папка assets в которую и будет собираться вся media (css, js, картинки и т.д.). Как это организовать уже второй вопрос, на который тебе ответит гугл по запросу "сборщик проектов".

И теперь по порядку:
1) пользоваться отдельно Composer для PHP, и отдельно Bower
да

2) Придется параллельно пользоваться двумя разными менеджерами пакетов
да

3) Тогда вопрос, где размещать PHP и JS файлы собственно моего проекта? В /vendor и /bower_components?
да, используй папки по умолчанию

4) как это все организовать правильно, красиво и удобно?
/ .. framework_dirs ..
/vendor
/bower_components
/public_html
+ assets/..
+ index.php

** По поводу bower, все что он генерит, многие кладут сразу в public_html, но т.к. у него нет возможности удалять лишние (например из всего пакета jquery оставить только 1 файл jquery.js), то я считаю, что полную папку лучше прятать и деплоить исключительно то, что нужно.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Как правильно и оптимально воспользоваться пакетными менеджерами для такой задачи?


никак, предоставляйте независимое приложение в виде готовых билдов (собранные tar.gz со всеми зависимостями, deb пакеты, docker-контейнеры).

основная мысль - ваш этот "встраиваемый компонент" на самом деле полноценное приложения, версии зависимостей которого вполне могут конфликтовать с проектом, в который оно будет интегрироваться. Что бы уменьшить количество проблем ваше приложение/модуль/компонент должно быть изолировано от основного приложения и просто предоставлять средства для взаимодействия. Исходя из задачи вам подойдет http api например.
Ответ написан
@yalex1442
Запилить git bash-инсталлер(он же updater) который из входных параметров (директория для установки и т.п)сделают всю работу

upd : гугл показал это
google https://github.com/francoispluchino/composer-asset...

есть риск что PHP файлы станут публично доступными через веб-сервер

Лучше повесить обработку через php интерпритатор web сервером , только ограниченное число файлов. По поводу папки vendor в них не рекомендуют хранить какие либо конфиги, не страшно если они пападут в вывод web сервера в виде исходного кода, тем более если копии лежат открыто в открытых репах
Ответ написан
Так значит по порядку:
1) заходите в менеджер пакетов apt-get и устанавливаете node.js
2) далее с пакетного менеджера npm, что идет с нодой устанавливаете bower
3) если планируете использовать sass через compass то с помощью пакетного менеджера apt-get устанавливаете ruby с которым в коробке идет пакетный менеджер gem
4) c пакетного менеджера gem устанавливаете sass и compass
5) для того, чтоб скачать jquery плагины используйте пакетный менеджер bower
6) и на последок для php используйте пакетный менеджер composer
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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