diff options
-rw-r--r-- | php-bartlett-umlwriter-autoload.php | 28 | ||||
-rw-r--r-- | php-bartlett-umlwriter-rpm.patch | 68 | ||||
-rw-r--r-- | php-bartlett-umlwriter.spec | 21 |
3 files changed, 50 insertions, 67 deletions
diff --git a/php-bartlett-umlwriter-autoload.php b/php-bartlett-umlwriter-autoload.php new file mode 100644 index 0000000..7f70544 --- /dev/null +++ b/php-bartlett-umlwriter-autoload.php @@ -0,0 +1,28 @@ +<?php +/** + * Autoloader for bartlett/umlwriter and its dependencies + */ + +$vendorDir = '/usr/share/php'; + +// Use Symfony autoloader +if (!isset($fedoraClassLoader) || !($fedoraClassLoader instanceof \Symfony\Component\ClassLoader\ClassLoader)) { + if (!class_exists('Symfony\\Component\\ClassLoader\\ClassLoader', false)) { + require_once $vendorDir . '/Symfony/Component/ClassLoader/ClassLoader.php'; + } + + $fedoraClassLoader = new \Symfony\Component\ClassLoader\ClassLoader(); + $fedoraClassLoader->register(); +} +$fedoraClassLoader->addPrefixes(array( + 'Symfony\\Component' => $vendorDir, + 'TokenReflection' => $vendorDir, + 'Bartlett\\Umlwiter' => dirname(dirname(__DIR__)), +)); +if (is_file('/usr/share/php-bartlett-PHP-CompatInfo/compatinfo.sqlite')) { + putenv('BARTLETT_COMPATINFO_DB=/usr/share/php-bartlett-PHP-CompatInfo/compatinfo.sqlite'); +} + +// Dependencies +require_once $vendorDir . '/SebastianBergmann/Version/autoload.php'; +require_once $vendorDir . '/Bartlett/Reflect/autoload.php'; diff --git a/php-bartlett-umlwriter-rpm.patch b/php-bartlett-umlwriter-rpm.patch index 994f79c..458af29 100644 --- a/php-bartlett-umlwriter-rpm.patch +++ b/php-bartlett-umlwriter-rpm.patch @@ -1,9 +1,7 @@ diff -up ./bin/umlwriter.rpm ./bin/umlwriter ---- ./bin/umlwriter.rpm 2015-03-31 11:24:18.000000000 +0200 -+++ ./bin/umlwriter 2015-03-31 11:29:43.000000000 +0200 -@@ -1,24 +1,36 @@ --#!/usr/bin/env php -+#!/usr/bin/env php +--- ./bin/umlwriter.rpm 2015-04-02 13:07:20.000000000 +0200 ++++ ./bin/umlwriter 2015-06-26 10:34:32.782633902 +0200 +@@ -2,23 +2,14 @@ <?php $appName = 'umlWriter'; @@ -18,72 +16,16 @@ diff -up ./bin/umlwriter.rpm ./bin/umlwriter - } -} -require_once $vendorDir . '/autoload.php'; -+putenv('BARTLETT_COMPATINFO_DB=/usr/share/php-bartlett-PHP-CompatInfo/compatinfo.sqlite'); - +- if (PHP_SAPI !== 'cli') { return; } +$vendorDir = '/usr/share/php'; -+require_once $vendorDir . '/PhpParser/Autoloader.php'; -+PhpParser\Autoloader::register(); -+ -+require_once $vendorDir . '/Symfony/Component/ClassLoader/UniversalClassLoader.php'; -+require_once $vendorDir . '/SebastianBergmann/Version/autoload.php'; -+ -+use Symfony\Component\ClassLoader\UniversalClassLoader; -+ -+$loader = new UniversalClassLoader(); -+$loader->registerNamespaces(array( -+ 'Symfony\\Component' => $vendorDir, -+ 'Doctrine\\Common' => $vendorDir, -+ 'phpDocumentor\\Reflection' => $vendorDir, -+ 'Seld\\JsonLint' => $vendorDir, -+ 'JsonSchema' => $vendorDir, -+ 'Bartlett' => $vendorDir, -+ 'TokenReflection' => $vendorDir, -+)); -+$loader->useIncludePath(true); -+$loader->register(); ++require_once $vendorDir . '/Bartlett/UmlWriter/autoload.php'; + use Bartlett\UmlWriter\Console\Application; -$application = new Application($appName, '1.0'); +$application = new Application($appName, '@package_version@'); $application->run(); -diff -up ./tests/bootstrap.php.rpm ./tests/bootstrap.php ---- ./tests/bootstrap.php.rpm 2015-03-31 09:46:46.000000000 +0200 -+++ ./tests/bootstrap.php 2015-03-31 11:30:51.000000000 +0200 -@@ -1,6 +1,30 @@ - <?php - - $baseDir = dirname(__DIR__); --$vendorDir = $baseDir . '/vendor'; -+$vendorDir = '/usr/share/php'; -+putenv('BARTLETT_COMPATINFO_DB=/usr/share/php-bartlett-PHP-CompatInfo/compatinfo.sqlite'); - --require_once $vendorDir . '/autoload.php'; -+require_once $vendorDir . '/PhpParser/Autoloader.php'; -+PhpParser\Autoloader::register(); -+require_once $vendorDir . '/SebastianBergmann/Version/autoload.php'; -+require_once $vendorDir . '/Symfony/Component/ClassLoader/UniversalClassLoader.php'; -+ -+use Symfony\Component\ClassLoader\UniversalClassLoader; -+ -+$loader = new UniversalClassLoader(); -+$loader->registerNamespaces(array( -+ 'Symfony\\Component' => $vendorDir, -+ 'Doctrine\\Common' => $vendorDir, -+ 'phpDocumentor\\Reflection' => $vendorDir, -+ 'Seld\\JsonLint' => $vendorDir, -+ 'JsonSchema' => $vendorDir, -+ 'Bartlett\\UmlWriter' => $baseDir . '/src', -+ 'Bartlett\\Tests\\UmlWriter' => $baseDir . '/tests', -+ 'Bartlett' => $vendorDir, -+ 'TokenReflection' => $vendorDir, -+)); -+ -+$loader->register(); -+ -+# Class not catched by autoloader -+require $vendorDir . '/Bartlett/Reflect.php'; diff --git a/php-bartlett-umlwriter.spec b/php-bartlett-umlwriter.spec index eda1d5c..2801ece 100644 --- a/php-bartlett-umlwriter.spec +++ b/php-bartlett-umlwriter.spec @@ -1,4 +1,4 @@ -# spec file for php-bartlett-umlwriter +# remirepo/fedora spec file for php-bartlett-umlwriter # # Copyright (c) 2015 Remi Collet # License: CC-BY-SA @@ -21,7 +21,7 @@ Name: php-bartlett-umlwriter Version: 1.0.0 -%global specrel 4 +%global specrel 5 Release: %{?gh_date:0.%{specrel}.%{?prever}%{!?prever:%{gh_date}git%{gh_short}}}%{!?gh_date:%{specrel}}%{?dist} Summary: Create UML class diagrams from your PHP source @@ -31,6 +31,9 @@ URL: http://php5.laurent-laville.org/umlwriter/ Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}%{?prever}-%{gh_short}.tar.gz # Autoloader for RPM - die composer ! +Source1: %{name}-autoload.php + +# Use out autoloader Patch0: %{name}-rpm.patch BuildArch: noarch @@ -41,6 +44,9 @@ BuildRequires: php-composer(symfony/console) >= 2.5 BuildRequires: php-composer(sebastian/version) >= 1.0 BuildRequires: php-composer(bartlett/php-reflect) >= 3.0 BuildRequires: php-composer(andrewsville/php-token-reflection) >= 1.4 +# For our patch / autoloader +BuildRequires: php-composer(symfony/class-loader) +BuildRequires: php-bartlett-PHP-Reflect >= 3.1.1-3 %endif # From composer.json @@ -66,8 +72,9 @@ Requires: php-composer(bartlett/php-reflect) < 4 %endif Requires: php-composer(andrewsville/php-token-reflection) >= 1.4 Requires: php-composer(andrewsville/php-token-reflection) < 2 -# For our patch +# For our patch / autoloader Requires: php-composer(symfony/class-loader) +Requires: php-bartlett-PHP-Reflect >= 3.1.1-3 Provides: php-composer(bartlett/umlwriter) = %{version} @@ -89,6 +96,7 @@ interface and trait definitions in your PHP project. %setup -q -n %{gh_project}-%{gh_commit} %patch0 -p1 -b .rpm +cp %{SOURCE1} src/Bartlett/UmlWriter/autoload.php sed -e 's/@package_version@/%{version}%{?prever}/' \ -i $(find src -name \*.php) bin/umlwriter @@ -107,7 +115,9 @@ install -D -p -m 755 bin/umlwriter %{buildroot}%{_bindir}/umlwriter %check %if %{with_tests} -%{_bindir}/phpunit -v +%{_bindir}/phpunit \ + --bootstrap src/Bartlett/UmlWriter/autoload.php \ + --verbose %else : Test suite disabled %endif @@ -123,6 +133,9 @@ install -D -p -m 755 bin/umlwriter %{buildroot}%{_bindir}/umlwriter %changelog +* Fri Jun 26 2015 Remi Collet <remi@fedoraproject.org> - 1.0.0-5 +- rewrite autoloader + * Mon Jun 22 2015 Remi Collet <remi@fedoraproject.org> - 1.0.0-4 - fix Autoload |