# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DESCRIPTION="Allows you to standardize and centralize the way objects are constructed in your application"
HOMEPAGE="https://github.com/symfony/dependency-injection"
SRC_URI="https://github.com/symfony/dependency-injection/archive/v${PV}.tar.gz -> ${P}.tar.gz"

S="${WORKDIR}/dependency-injection-${PV}"

LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"

BDEPEND="dev-php/theseer-autoload"
RDEPEND="
	>=dev-lang/php-7.2:*
	dev-php/fedora-autoloader
	dev-php/psr-container
	dev-php/symfony-deprecation-contracts
	dev-php/symfony-polyfill-php80
	dev-php/symfony-polyfill-php81
	dev-php/symfony-service-contracts
"

src_prepare() {
	default

	phpab \
		--quiet \
		--output autoload.php \
		--template fedora2 \
		--basedir . \
		. \
		|| die

	VENDOR_DIR="${EPREFIX}/usr/share/php"
	cat >> autoload.php <<EOF || die "failed to extend autoload.php"

// Dependencies
\Fedora\Autoloader\Dependencies::required([
	"${VENDOR_DIR}/Fedora/Autoloader/autoload.php",
	"${VENDOR_DIR}/Psr/Container/autoload.php",
	"${VENDOR_DIR}/Symfony/Deprecation-Contracts/autoload.php",
	"${VENDOR_DIR}/Symfony/Polyfill-Php80/autoload.php",
	"${VENDOR_DIR}/Symfony/Polyfill-Php81/autoload.php",
	"${VENDOR_DIR}/Symfony/Service-Contracts/autoload.php"
]);
EOF
}

src_install() {
	insinto "/usr/share/php/Symfony/Dependency-Injection"
	doins -r Alias.php Argument Attribute ChildDefinition.php Compiler Config Container.php ContainerAwareInterface.php ContainerAwareTrait.php ContainerBuilder.php ContainerInterface.php Definition.php Dumper EnvVarLoaderInterface.php EnvVarProcessor.php EnvVarProcessorInterface.php Exception ExpressionLanguage.php ExpressionLanguageProvider.php Extension LazyProxy Loader Parameter.php ParameterBag Reference.php ReverseContainer.php ServiceLocator.php TaggedContainerInterface.php TypedReference.php Variable.php autoload.php || die
}