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