# remirepo spec file for php-phpdocumentor-type-resolver, from # # Fedora spec file for php-phpdocumentor-type-resolver # # Copyright (c) 2017-2021 Shawn Iwinski # # License: MIT # http://opensource.org/licenses/MIT # # Please preserve changelog entries # %global github_owner phpDocumentor %global github_name TypeResolver %global github_version 0.4.0 %global github_commit 9c977708995954784726e25d0cd1dddf4e65b0f7 %global composer_vendor phpdocumentor %global composer_project type-resolver # "php": "^5.5 || ^7.0" %global php_min_ver 5.5 # "phpdocumentor/reflection-common": "^1.0" %global reflection_common_min_ver 1.0 %global reflection_common_max_ver 2.0 # Build using "--without tests" to disable tests %global with_tests 0%{!?_without_tests:1} %{!?phpdir: %global phpdir %{_datadir}/php} Name: php-%{composer_vendor}-%{composer_project} Version: %{github_version} Release: 11%{?github_release}%{?dist} Summary: A PSR-5 based resolver of Class names, Types and Structural Element Names License: MIT URL: https://github.com/%{github_owner}/%{github_name} # GitHub export does not include tests. # Run php-phpdocumentor-type-resolver-get-source.sh to create full source. Source0: %{name}-%{github_version}-%{github_commit}.tar.gz Source1: %{name}-get-source.sh BuildArch: noarch # Tests %if %{with_tests} ## composer.json BuildRequires: php(language) >= %{php_min_ver} BuildRequires: php-composer(phpunit/phpunit) # remirepo:1 %if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 BuildRequires: (php-composer(phpdocumentor/reflection-common) >= %{reflection_common_min_ver} with php-composer(phpdocumentor/reflection-common) < %{reflection_common_max_ver}) # remirepo:4 %else BuildRequires: php-composer(phpdocumentor/reflection-common) < %{reflection_common_max_ver} BuildRequires: php-composer(phpdocumentor/reflection-common) >= %{reflection_common_min_ver} %endif ## phpcompatinfo (computed from version 0.4.0) BuildRequires: php-reflection BuildRequires: php-spl BuildRequires: php-tokenizer ## Autoloader BuildRequires: php-fedora-autoloader-devel %endif # composer.json Requires: php(language) >= %{php_min_ver} # remirepo:1 %if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 Requires: (php-composer(phpdocumentor/reflection-common) >= %{reflection_common_min_ver} with php-composer(phpdocumentor/reflection-common) < %{reflection_common_max_ver}) # remirepo:4 %else Requires: php-composer(phpdocumentor/reflection-common) >= %{reflection_common_min_ver} Requires: php-composer(phpdocumentor/reflection-common) < %{reflection_common_max_ver} %endif # phpcompatinfo (computed from version 0.4.0) Requires: php-spl Requires: php-tokenizer # Autoloader Requires: php-composer(fedora/autoloader) # Composer Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version} %description The specification on types in DocBlocks (PSR-5) describes various keywords and special constructs but also how to statically resolve the partial name of a Class into a Fully Qualified Class Name (FQCN). PSR-5 also introduces an additional way to describe deeper elements than Classes, Interfaces and Traits called the Fully Qualified Structural Element Name (FQSEN). Using this it is possible to refer to methods, properties and class constants but also functions and global constants. This package provides two Resolvers that are capable of: 1. Returning a series of Value Object for given expression while resolving any partial class names, and 2. Returning an FQSEN object after resolving any partial Structural Element Names into Fully Qualified Structural Element names. Autoloader: %{phpdir}/phpDocumentor/Reflection/autoload-type-resolver.php %prep %setup -qn %{github_name}-%{github_commit} : Update examples autoload require sed "s#.*require.*vendor.*/autoload.php.*#require_once '%{phpdir}/phpDocumentor/Reflection/autoload-type-resolver.php';#" \ -i examples/* %build : Create autoloader %{_bindir}/phpab --template fedora --output src/autoload-type-resolver.php src cat <<'AUTOLOAD' | tee -a src/autoload-type-resolver.php \Fedora\Autoloader\Dependencies::required([ '%{phpdir}/phpDocumentor/Reflection/autoload-common.php', ]); AUTOLOAD %install mkdir -p %{buildroot}%{phpdir}/phpDocumentor/Reflection cp -rp src/* %{buildroot}%{phpdir}/phpDocumentor/Reflection/ %check %if %{with_tests} : Create tests bootstrap mkdir vendor cat <<'BOOTSTRAP' | tee vendor/autoload.php phpunit.xml : Upstream tests - ignoring mockery tests RETURN_CODE=0 PHPUNIT=$(which phpunit) for PHP_EXEC in php php73 php74 php80; do if [ "php" == "$PHP_EXEC" ] || which $PHP_EXEC; then $PHP_EXEC -d auto_prepend_file=%{buildroot}%{phpdir}/phpDocumentor/Reflection/autoload-type-resolver.php \ $PHPUNIT \ --filter '^((?!(testAddingAKeyword|testReadsAliasesFromClassReflection|testReadsAliasesFromProvidedNamespaceAndContent)).)*$' \ --verbose \ || RETURN_CODE=1 fi done exit $RETURN_CODE %else : Tests skipped %endif %files # remirepo:1 %{!?_licensedir:%global license %%doc} %license LICENSE %doc *.md %doc composer.json %doc examples %{phpdir}/phpDocumentor/Reflection/autoload-type-resolver.php %{phpdir}/phpDocumentor/Reflection/FqsenResolver.php %{phpdir}/phpDocumentor/Reflection/Type.php %{phpdir}/phpDocumentor/Reflection/TypeResolver.php %{phpdir}/phpDocumentor/Reflection/Types %changelog * Tue Mar 23 2021 Remi Collet - 0.4.0-11 - drop mockery/mockery usage * Fri Dec 7 2018 Remi Collet - 0.4.0-5 - use range dependencies * Mon Jul 17 2017 Shawn Iwinski - 0.4.0-1 - Update to 0.4.0 (RHBZ #1460503) - Add "get source" script because upstream attributes removed tests from snapshot * Sat Mar 11 2017 Shawn Iwinski - 0.2.1-1 - Initial package