siwinski pushed to php-react-promise (master). "Use new $fedoraClassLoader concept in autoloader"
notifications at fedoraproject.org
notifications at fedoraproject.org
Fri Jun 12 16:49:34 UTC 2015
From bcfc095568932b4e6085d580f8d70fc68833d6e7 Mon Sep 17 00:00:00 2001
From: Shawn Iwinski <shawn.iwinski at gmail.com>
Date: Fri, 12 Jun 2015 12:48:57 -0400
Subject: Use new $fedoraClassLoader concept in autoloader
diff --git a/php-react-promise.spec b/php-react-promise.spec
index b365f52..d662be3 100644
--- a/php-react-promise.spec
+++ b/php-react-promise.spec
@@ -21,13 +21,13 @@
%global php_min_ver 5.4.0
# 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}
Name: php-%{composer_vendor}-%{composer_project}
Version: %{github_version}
-Release: 3%{?github_release}%{?dist}
+Release: 4%{?github_release}%{?dist}
Summary: A lightweight implementation of CommonJS Promises/A for PHP
Group: Development/Libraries
@@ -46,7 +46,7 @@ BuildRequires: php-json
BuildRequires: php-reflection
BuildRequires: php-spl
## Autoloader
-BuildRequires: php-composer(symfony/class-loader) >= 2.5
+BuildRequires: php-composer(symfony/class-loader)
%endif
# composer.json
@@ -56,7 +56,7 @@ Requires: php-json
Requires: php-reflection
Requires: php-spl
# Autoloader
-Requires: php-composer(symfony/class-loader) >= 2.5
+Requires: php-composer(symfony/class-loader)
# Composer
Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version}
@@ -75,17 +75,24 @@ A lightweight implementation of CommonJS Promises/A [1] for PHP.
<?php
/**
* Autoloader created by %{name}-%{version}-%{release}
+ *
+ * @return \Symfony\Component\ClassLoader\ClassLoader
*/
-if (!class_exists('Symfony\\Component\\ClassLoader\\Psr4ClassLoader', false)) {
- require_once 'Symfony/Component/ClassLoader/Psr4ClassLoader.php';
+if (!isset($fedoraClassLoader) || !($fedoraClassLoader instanceof \Symfony\Component\ClassLoader\ClassLoader)) {
+ if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) {
+ require_once 'Symfony/Component/ClassLoader/ClassLoader.php';
+ }
+
+ $fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader();
+ $fedoraClassLoader->register();
}
-$loader = new \Symfony\Component\ClassLoader\Psr4ClassLoader();
-$loader->addPrefix('React\\Promise', __DIR__);
-$loader->register();
+$fedoraClassLoader->addPrefix('React\\Promise', dirname(dirname(__DIR__)));
require_once __DIR__ . '/functions_include.php';
+
+return $fedoraClassLoader;
AUTOLOAD
) | tee src/autoload.php
@@ -101,13 +108,18 @@ cp -rp src/* %{buildroot}%{phpdir}/React/Promise/
%check
%if %{with_tests}
+: Restore PSR-0 for tests
+mkdir -p psr-0/React/
+mv tests psr-0/React/Promise
+mv psr-0 tests
+
: Create tests bootstrap
(cat <<'BOOTSTRAP'
<?php
require_once '%{buildroot}%{phpdir}/React/Promise/autoload.php';
-$loader->addPrefix('React\\Promise', __DIR__ . '/tests');
+$fedoraClassLoader->addPrefix(null, __DIR__ . '/tests');
BOOTSTRAP
) | tee bootstrap.php
@@ -127,6 +139,9 @@ BOOTSTRAP
%changelog
+* Fri Jun 12 2015 Shawn Iwinski <shawn.iwinski at gmail.com> - 2.2.0-4
+- Use new $fedoraClassLoader concept in autoloader
+
* Mon Jun 01 2015 Shawn Iwinski <shawn.iwinski at gmail.com> - 2.2.0-3
- Use include path in autoloader
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/php-react-promise.git/commit/?h=master&id=bcfc095568932b4e6085d580f8d70fc68833d6e7
More information about the scm-commits
mailing list