summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2016-10-12 15:27:57 +0200
committerRemi Collet <fedora@famillecollet.com>2016-10-12 15:27:57 +0200
commitbc039b52a07613b792079df452ec6e48879bf0a3 (patch)
tree98cb3cd362c86f1a529cf4a305668e12ca538116
parent48e62e7955c4ea22dcee367b204f049876a17a2a (diff)
php-ocramius-generated-hydrator: use symfony autoloader
-rw-r--r--php-ocramius-generated-hydrator-dev.spec71
1 files changed, 50 insertions, 21 deletions
diff --git a/php-ocramius-generated-hydrator-dev.spec b/php-ocramius-generated-hydrator-dev.spec
index e381110..d324565 100644
--- a/php-ocramius-generated-hydrator-dev.spec
+++ b/php-ocramius-generated-hydrator-dev.spec
@@ -2,7 +2,7 @@
#
# Fedora spec file for php-ocramius-generated-hydrator
#
-# Copyright (c) 2014-2015 Shawn Iwinski <shawn.iwinski@gmail.com>
+# Copyright (c) 2014-2016 Shawn Iwinski <shawn.iwinski@gmail.com>
#
# License: MIT
# http://opensource.org/licenses/MIT
@@ -19,7 +19,6 @@
%global composer_project generated-hydrator
# "php": "~7.0"
-# NOTE: Max version ignored on purpose
%global php_min_ver 7.0
# "nikic/php-parser": "~2.0"
%global php_parser_min_ver 2.0
@@ -32,14 +31,13 @@
%global zf_hydrator_max_ver 3
# Build using "--without tests" to disable tests
-%global with_tests %{?_without_tests:0}%{!?_without_tests:1}
+%global with_tests 0%{!?_without_tests:1}
-%{!?phpdir: %global phpdir %{_datadir}/php}
-%{!?__phpunit: %global __phpunit %{_bindir}/phpunit}
+%{!?phpdir: %global phpdir %{_datadir}/php}
Name: php-%{composer_vendor}-%{composer_project}
Version: %{github_version}
-Release: 1%{?github_release}%{?dist}
+Release: 2%{?github_release}%{?dist}
Summary: An object hydrator
Group: Development/Libraries
@@ -49,7 +47,6 @@ Source0: %{url}/archive/%{github_commit}/%{name}-%{github_version}-%{githu
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
-BuildRequires: %{_bindir}/phpab
%if %{with_tests}
# composer.json
BuildRequires: php(language) >= %{php_min_ver}
@@ -57,13 +54,15 @@ BuildRequires: php-composer(nikic/php-parser) >= %{php_parser_min_ver}
BuildRequires: php-composer(nikic/php-parser) < %{php_parser_max_ver}
BuildRequires: php-composer(ocramius/code-generator-utils) >= %{ocramius_cgu_min_ver}
BuildRequires: php-composer(ocramius/code-generator-utils) < %{ocramius_cgu_max_ver}
+BuildRequires: php-composer(phpunit/phpunit) >= 5.0
BuildRequires: php-composer(zendframework/zend-hydrator) >= %{zf_hydrator_min_ver}
BuildRequires: php-composer(zendframework/zend-hydrator) < %{zf_hydrator_max_ver}
-BuildRequires: php-composer(phpunit/phpunit) >= 5.0
# phpcompatinfo (computed from version 2.0.0)
BuildRequires: php-pcre
BuildRequires: php-reflection
BuildRequires: php-spl
+# Autoloader
+BuildRequires: php-composer(symfony/class-loader)
%endif
# composer.json
@@ -93,29 +92,55 @@ Autoloader: %{phpdir}/GeneratedHydrator/autoload.php
%build
-%{_bindir}/phpab --output src/GeneratedHydrator/autoload.php src/GeneratedHydrator
-cat << 'EOF' | tee -a src/GeneratedHydrator/autoload.php
+: Create autoloader
+cat <<'AUTOLOAD' | tee src/GeneratedHydrator/autoload.php
+<?php
+/**
+ * Autoloader for %{name} and its' dependencies
+ * (created by %{name}-%{version}-%{release}).
+ *
+ * @return \Symfony\Component\ClassLoader\ClassLoader
+ */
+
+if (!isset($fedoraClassLoader) || !($fedoraClassLoader instanceof \Symfony\Component\ClassLoader\ClassLoader)) {
+ if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) {
+ require_once '%{phpdir}/Symfony/Component/ClassLoader/ClassLoader.php';
+ }
+
+ $fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader();
+ $fedoraClassLoader->register();
+}
+
+$fedoraClassLoader->addPrefix('GeneratedHydrator\\', dirname(__DIR__));
+
+// Required dependencies
require_once '%{phpdir}/CodeGenerationUtils/autoload.php';
require_once '%{phpdir}/PhpParser2/autoload.php';
require_once '%{phpdir}/Zend/autoload.php';
-EOF
+
+return $fedoraClassLoader;
+AUTOLOAD
%install
rm -rf %{buildroot}
-mkdir -pm 0755 %{buildroot}%{phpdir}
-cp -rp src/* %{buildroot}%{phpdir}/
+
+mkdir -p %{buildroot}%{phpdir}
+cp -rp src/GeneratedHydrator %{buildroot}%{phpdir}/
%check
%if %{with_tests}
-mkdir vendor
-%{_bindir}/phpab --output vendor/autoload.php tests
-cat << 'EOF' | tee -a vendor/autoload.php
-require_once '%{buildroot}%{phpdir}/GeneratedHydrator/autoload.php';
-EOF
-
-%{_bindir}/phpunit --verbose
+: Create tests bootstrap
+cat <<'BOOTSTRAP' | tee bootstrap.php
+<?php
+$fedoraClassLoader = require '%{buildroot}%{phpdir}/GeneratedHydrator/autoload.php';
+$fedoraClassLoader->addPrefix('GeneratedHydratorPerformance\\', __DIR__.'/tests');
+$fedoraClassLoader->addPrefix('GeneratedHydratorTest\\', __DIR__.'/tests');
+$fedoraClassLoader->addPrefix('GeneratedHydratorTestAsset\\', __DIR__.'/tests');
+BOOTSTRAP
+
+%{_bindir}/phpunit --verbose --bootstrap bootstrap.php
%else
: Tests skipped
%endif
@@ -129,11 +154,15 @@ rm -rf %{buildroot}
%defattr(-,root,root,-)
%{!?_licensedir:%global license %%doc}
%license LICENSE
-%doc *.md composer.json
+%doc *.md
+%doc composer.json
%{phpdir}/GeneratedHydrator
%changelog
+* Wed Oct 12 2016 Remi Collet <remi@fedoraproject.org> - 2.0.0-2
+- switch symfony autoloader
+
* Wed Jun 29 2016 Remi Collet <remi@fedoraproject.org> - 2.0.0-1
- update to 2.0.0
- drop dependency on zendframework/zend-stdlib