LINUX.ORG.RU

Смотрю на репозиторий php-overlay и не понимаю.

 , , ,


0

1

Есть такой репозиторий: https://github.com/gentoo-php-overlay/php-overlay

Лидера у проекта php нет, документации тоже нет (только как установить сам php, но не как работать с его приложениями и фреймворками типа Laravel).

В репозитории нет директории eclass. А она определённо должна быть.

Дело в том, что в технологии php есть пакетный менеджер с названием composer, который работает с сайтом https://packagist.org/

Этот composer может скачивать пакеты локально в проект или глобально в систему. Путь Gentoo, это когда пакеты скачиваются и устанавливаются глобально, чтобы использоваться совместно.

На утилиту composer можно повлиять и подсказать ей при помощи переменной окружения ${COMPOSER_HOME}

# composer global --help | head -n 2
Description:
  Allows running commands in the global composer dir ($COMPOSER_HOME)

Можно предположить, что в качестве такой директории выбрана /usr/share/php/Composer

# ls -1 /usr/share/php/Composer
CaBundle
ClassMapGenerator
MetadataMinifier
Pcre
res
Semver
Spdx
XdebugHandler

(но это неточно, потому что внутри этой директории нет директории vendor).

В генте есть практика, когда для использования какой-нибудь утилиты пишется eclass-обёртка с функциями bash, а уже эти функции вызываются из .ebuild-файлов.

Моя проблема в том, что я не вижу такого класса ни в репозитории php-overlay, ни в списке eclass-ов в gentoo.

★★★★

Последнее исправление: Dimez (всего исправлений: 7)

Этот composer может скачивать пакеты локально в проект или глобально в систему

По-моему глобально ставить он может только всякие утилиты командной строки (на ПХП), а не либы. https://getcomposer.org/doc/00-intro.md#dependency-management Как правило проект использует определенные версии либ, которые зафиксированы, и обновляются самим разработчиком сайта (который может протестировать, что после обновления ничего не сломалось), а не глобально.

goingUp ★★★★★
()

Композер это не пакетный менеджер по крайней мере в нормальном понимании этого слова. Это утилита чтобы заполнить директорию vendor в корне конкретного проекта всякой блоатварью по списку, заданному файлом composer.json в том же корне проекта. Переиспользование одной и той же директории разными проектами (то что ты назвал глобальной установкой) официально не поддерживается, единственный способ это сделать - это сделать для этой директории свой composer.json (не связанный с проектами, которые будут ей пользоваться) и из проектов костылить инклюд этой сборки.

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

Повторю то что уже где-то тебе писал: веб в большинстве своём совершенно не рассчитан ни на пакетную установку, ни на любые вариации fhs, он рассчитан на «залить файлы сайта на сервер в заданную директорию».

firkax ★★★★★
()
Ответ на: комментарий от firkax

Повторю

Не надо. Если я не воспринял аргумент в прошлый раз, значит была тому причина. Не обязательно это тупость, как бы Вам этого не хотелось.

Shushundr ★★★★
() автор топика