siwinski pushed to php-guzzlehttp-ringphp (f22). "Use new $fedoraClassLoader concept in autoloader (..more)"

notifications at fedoraproject.org notifications at fedoraproject.org
Fri Jun 12 20:32:18 UTC 2015


From d090c3fb279593b24e807d9c3d7ee1701fdb60c9 Mon Sep 17 00:00:00 2001
From: Shawn Iwinski <shawn.iwinski at gmail.com>
Date: Fri, 12 Jun 2015 16:22:06 -0400
Subject: Use new $fedoraClassLoader concept in autoloader

- Remove secondary "tests" directory from tests sub-package

diff --git a/php-guzzlehttp-ringphp.spec b/php-guzzlehttp-ringphp.spec
index e88f647..fd6bca5 100644
--- a/php-guzzlehttp-ringphp.spec
+++ b/php-guzzlehttp-ringphp.spec
@@ -20,10 +20,12 @@
 # "php": ">=5.4.0"
 %global php_min_ver      5.4.0
 # "guzzlehttp/streams": "~3.0"
-%global streams_min_ver  3.0
+# Note: Min version not "3.0" because autoloader required
+%global streams_min_ver  3.0.0-3
 %global streams_max_ver  4.0
 # "react/promise": "~2.0"
-%global promise_min_ver  2.0
+# Note: Min version not "2.0" because autoloader required
+%global promise_min_ver  2.2.0-4
 %global promise_max_ver  3.0
 
 # Build using "--without tests" to disable tests
@@ -34,7 +36,7 @@
 
 Name:          php-%{composer_vendor}-%{composer_project}
 Version:       %{github_version}
-Release:       1%{?github_release}%{?dist}
+Release:       2%{?github_release}%{?dist}
 Summary:       Simple handler system used to power clients and servers in PHP
 
 Group:         Development/Libraries
@@ -49,8 +51,10 @@ BuildRequires: nodejs
 BuildRequires: %{_bindir}/phpunit
 ## composer.json
 BuildRequires: php(language)                    >= %{php_min_ver}
-BuildRequires: php-composer(guzzlehttp/streams) >= %{streams_min_ver}
-BuildRequires: php-composer(react/promise)      >= %{promise_min_ver}
+#BuildRequires: php-composer(guzzlehttp/streams) >= %%{streams_min_ver}
+BuildRequires: php-guzzlehttp-streams           >= %{streams_min_ver}
+#BuildRequires: php-composer(react/promise)      >= %%{promise_min_ver}
+BuildRequires: php-react-promise                >= %{promise_min_ver}
 BuildRequires: php-curl
 ## phpcompatinfo (computed from version 1.1.0)
 BuildRequires: php-json
@@ -59,26 +63,25 @@ BuildRequires: php-reflection
 BuildRequires: php-spl
 BuildRequires: php-zlib
 ## Autoloader
-BuildRequires: php-composer(symfony/class-loader) >= 2.5
-BuildRequires: %{phpdir}/GuzzleHttp/Stream/autoload.php
-BuildRequires: %{phpdir}/React/Promise/autoload.php
+BuildRequires: php-composer(symfony/class-loader)
 %endif
 
 # composer.json
 Requires:      php(language)                    >= %{php_min_ver}
-Requires:      php-composer(guzzlehttp/streams) >= %{streams_min_ver}
-Requires:      php-composer(guzzlehttp/streams) <  %{streams_max_ver}
-Requires:      php-composer(react/promise)      >= %{promise_min_ver}
-Requires:      php-composer(react/promise)      <  %{promise_max_ver}
+#Requires:      php-composer(guzzlehttp/streams) >= %%{streams_min_ver}
+#Requires:      php-composer(guzzlehttp/streams) <  %%{streams_max_ver}
+Requires:      php-guzzlehttp-streams           >= %{streams_min_ver}
+Requires:      php-guzzlehttp-streams           <  %{streams_max_ver}
+#Requires:      php-composer(react/promise)      >= %%{promise_min_ver}
+#Requires:      php-composer(react/promise)      <  %%{promise_max_ver}
+Requires:      php-react-promise                >= %{promise_min_ver}
+Requires:      php-react-promise                <  %{promise_max_ver}
 # composer.json: optional
 Requires:      php-curl
 # phpcompatinfo (computed from version 1.1.0)
 Requires:      php-spl
 # Autoloader
-Requires:      php-composer(symfony/class-loader) >= 2.5
-Requires:      php-composer(symfony/class-loader) <  3.0
-Requires:      %{phpdir}/GuzzleHttp/Stream/autoload.php
-Requires:      %{phpdir}/React/Promise/autoload.php
+Requires:      php-composer(symfony/class-loader)
 
 # Composer
 Provides:      php-composer(%{composer_vendor}/%{composer_project}) = %{version}
@@ -101,7 +104,7 @@ clients and servers for both blocking and non-blocking requests.
 
 %package tests
 
-Summary:  %{name} tests
+Summary:  Tests for %{name}
 
 Requires: %{name} = %{version}-%{release}
 Requires: nodejs
@@ -127,18 +130,25 @@ Requires: php-zlib
 <?php
 /**
  * Autoloader 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 'Symfony/Component/ClassLoader/ClassLoader.php';
+    }
+
+    $fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader();
+    $fedoraClassLoader->register();
+}
+
 require_once 'GuzzleHttp/Stream/autoload.php';
 require_once 'React/Promise/autoload.php';
 
-if (!class_exists('Symfony\\Component\\ClassLoader\\Psr4ClassLoader', false)) {
-    require_once 'Symfony/Component/ClassLoader/Psr4ClassLoader.php';
-}
+$fedoraClassLoader->addPrefix('GuzzleHttp\\Ring', dirname(dirname(__DIR__)));
 
-$loader = new \Symfony\Component\ClassLoader\Psr4ClassLoader();
-$loader->addPrefix('GuzzleHttp\\Ring', __DIR__);
-$loader->register();
+return $fedoraClassLoader;
 AUTOLOAD
 ) | tee src/autoload.php
 
@@ -147,27 +157,30 @@ AUTOLOAD
 <?php
 /**
  * Autoloader created by %{name}-tests-%{version}-%{release}
+ *
+ * @return \Symfony\Component\ClassLoader\ClassLoader
  */
 
 require_once 'GuzzleHttp/Ring/autoload.php';
 
-$loader->addPrefix('GuzzleHttp\\Tests\\Ring', __DIR__);
+$fedoraClassLoader->addPrefix('GuzzleHttp\\Tests\\Ring', __DIR__);
+
+return $fedoraClassLoader;
 AUTOLOAD
 ) | tee tests/autoload.php
 
 : Create custom tests PHPUnit config
-rm -f phpunit.xml.dist
 (cat <<'PHPUNIT'
 <?xml version="1.0" encoding="UTF-8"?>
-<phpunit bootstrap="./tests/bootstrap.php" colors="true">
+<phpunit bootstrap="./bootstrap.php" colors="true">
     <testsuites>
         <testsuite>
-            <directory>tests</directory>
+            <directory>.</directory>
         </testsuite>
     </testsuites>
 </phpunit>
 PHPUNIT
-) | tee phpunit.xml.dist
+) | tee tests/phpunit.xml.dist
 
 : Modify tests bootstrap
 sed "s#.*require.*autoload.*#require __DIR__ . '/autoload.php';#" \
@@ -185,13 +198,13 @@ cp -rp src/* %{buildroot}%{phpdir}/GuzzleHttp/Ring/
 
 : Tests
 mkdir -p %{buildroot}%{testsdir}/%{name}
-cp -rp phpunit.xml.dist tests %{buildroot}%{testsdir}/%{name}/
+cp -rp tests/* %{buildroot}%{testsdir}/%{name}/
 
 
 %check
 %if %{with_tests}
 %{_bindir}/phpunit -v \
-    -c %{buildroot}%{testsdir}/%{name} \
+    --configuration %{buildroot}%{testsdir}/%{name} \
     --include-path %{buildroot}%{phpdir}
 %else
 : Tests skipped
@@ -211,6 +224,10 @@ cp -rp phpunit.xml.dist tests %{buildroot}%{testsdir}/%{name}/
 
 
 %changelog
+* Fri Jun 12 2015 Shawn Iwinski <shawn.iwinski at gmail.com> - 1.1.0-2
+- Use new $fedoraClassLoader concept in autoloader
+- Remove secondary "tests" directory from tests sub-package
+
 * Mon Jun 01 2015 Shawn Iwinski <shawn.iwinski at gmail.com> - 1.1.0-1
 - Updated to 1.1.0
 - Updated source URL
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/php-guzzlehttp-ringphp.git/commit/?h=f22&id=d090c3fb279593b24e807d9c3d7ee1701fdb60c9


More information about the scm-commits mailing list