diff options
| -rw-r--r-- | php-phpspec.spec | 14 | ||||
| -rw-r--r-- | phpspec-autoload.php | 38 | ||||
| -rw-r--r-- | phpspec-rpm.patch | 17 | 
3 files changed, 45 insertions, 24 deletions
| diff --git a/php-phpspec.spec b/php-phpspec.spec index 66aa491..e45d5b8 100644 --- a/php-phpspec.spec +++ b/php-phpspec.spec @@ -13,7 +13,7 @@  Name:           php-phpspec  Version:        2.2.1 -Release:        1%{?dist} +Release:        3%{?dist}  Summary:        Specification-oriented BDD framework for PHP  Group:          Development/Libraries @@ -38,9 +38,10 @@ BuildRequires:  php-composer(symfony/finder)           >= 2.1  BuildRequires:  php-composer(symfony/process)          >= 2.1  BuildRequires:  php-composer(symfony/yaml)             >= 2.1  BuildRequires:  php-composer(doctrine/instantiator)    >= 1.0.1 -BuildRequires:  php-composer(symfony/class-loader)  # From composer.json, require-dev  BuildRequires:  php-composer(symfony/filesystem)       >= 2.1 +# For our autoloader +BuildRequires:  php-composer(symfony/class-loader)  # From composer.json, require  #         "php":                      ">=5.3.3", @@ -122,14 +123,15 @@ install -Dpm755 bin/phpspec %{buildroot}%{_bindir}/phpspec  %check  export LANG=en_GB.utf8 +  %{_bindir}/php \ -  -d include_path=.:src:/usr/share/php \ +  -d include_path=.:%{buildroot}%{_datadir}/php \    bin/phpspec \    run --format pretty --verbose --no-ansi  %{_bindir}/phpunit \    --verbose \ -  --bootstrap src/PhpSpec/autoload.php +  --bootstrap %{buildroot}%{_datadir}/php/PhpSpec/autoload.php  %clean @@ -147,6 +149,10 @@ rm -rf %{buildroot}  %changelog +* Mon Jun 29 2015 Remi Collet <remi@fedoraproject.org> - 2.2.1-3 +- switch to $fedoraClassLoader autoloader +- ensure /usr/share/php is in include_path +  * Sat May 30 2015 Remi Collet <remi@fedoraproject.org> - 2.2.1-1  - update to 2.2.1 diff --git a/phpspec-autoload.php b/phpspec-autoload.php index 47f19c5..1fb529a 100644 --- a/phpspec-autoload.php +++ b/phpspec-autoload.php @@ -1,23 +1,29 @@  <?php -/* not namespaced, use classs-map */ -require_once 'phpspec/php-diff/autoload.php'; -/* prophecy and its dependencies */ -require_once 'Prophecy/autoload.php'; +/* Autoloader for phpspec/phpspec and its dependencies */  $vendorDir = '/usr/share/php'; -require_once $vendorDir . '/Symfony/Component/ClassLoader/UniversalClassLoader.php'; -use Symfony\Component\ClassLoader\UniversalClassLoader; +// 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, +    'PhpSpec\\'                             => dirname(__DIR__), +)); -$loader = new UniversalClassLoader(); -$ns = array( -    'Doctrine\\Instantiator'              => $vendorDir, -    'SebastianBergmann'                   => $vendorDir, -    'Symfony\\Component'                  => $vendorDir, -    'PhpSpec'                             => dirname(__DIR__), -);  /* spec tree in current dir, when exists */  if (is_dir(getcwd().'/spec')) { -    $ns['spec'] = getcwd(); +    $fedoraClassLoader->addPrefix('spec', getcwd());  } -$loader->registerNamespaces($ns); -$loader->register(); + +// Depdencies (Rely on include_path as in PHPUnit dependencies + circular dependencies) +require_once 'phpspec/php-diff/autoload.php'; +require_once 'Prophecy/autoload.php'; +require_once 'SebastianBergmann/Exporter/autoload.php'; +require_once 'Doctrine/Instantiator/autoload.php'; diff --git a/phpspec-rpm.patch b/phpspec-rpm.patch index d239a38..5a1d30d 100644 --- a/phpspec-rpm.patch +++ b/phpspec-rpm.patch @@ -1,6 +1,7 @@ ---- bin/phpspec.rpm	2015-04-19 06:39:34.900178171 +0200 -+++ bin/phpspec	2015-04-19 06:41:59.521743839 +0200 -@@ -5,22 +5,9 @@ +diff -up bin/phpspec.rpm bin/phpspec +--- bin/phpspec.rpm	2015-05-30 17:21:40.000000000 +0200 ++++ bin/phpspec	2015-06-29 15:29:46.783393891 +0200 +@@ -5,22 +5,18 @@  -if (is_file($autoload = getcwd() . '/vendor/autoload.php')) {  -    require $autoload; @@ -21,7 +22,15 @@  -        'php composer.phar install' . PHP_EOL  -    );  -    exit(1); --} ++// Ensure correct include_path for RHSCL ++$inc = get_include_path(); ++$dirs = explode(':', $inc); ++if (!in_array('/usr/share/php', $dirs)) { ++    $dirs[] = '/usr/share/php'; ++    set_include_path(implode(':', $dirs)); + } ++unset ($inc, $dirs); ++  +require_once 'PhpSpec/autoload.php';   $app = new PhpSpec\Console\Application(PHPSPEC_VERSION); | 
