diff --git a/.gitignore b/.gitignore index d218187..8e28868 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ clog /php-symfony3-3.4.28-5e05ffeb1c2e538127e5a33b419edb8b2904b99e.tar.gz /php-symfony3-3.4.29-4c9b6d7d898457ae2189efdfaca58712269fc994.tar.gz /php-symfony3-3.4.30-4d911e98e1f70538edcca4576c65395ef0fbfa84.tar.gz +/php-symfony3-3.4.33-47813652695f1345987fd5dfc0df67607e738b31.tar.gz diff --git a/php-symfony3-generate-autoloaders.php b/php-symfony3-generate-autoloaders.php index 0508257..90d2c50 100755 --- a/php-symfony3-generate-autoloaders.php +++ b/php-symfony3-generate-autoloaders.php @@ -10,12 +10,18 @@ $autoloader->register(); use Symfony\Component\Finder\Finder; use Symfony\Component\Finder\SplFileInfo; +use Symfony\Component\Process\Exception\ProcessFailedException; +use Symfony\Component\Process\Process; $finder = new Finder(); -$finder->in(SYMFONY_SOURCE_DIR)->name('composer.json')->sortByName(); +$finder + ->in(SYMFONY_SOURCE_DIR) + ->notPath('Tests') + ->name('composer.json') + ->sortByName(); foreach ($finder as $composerFile) { - fprintf(STDERR, "\tgenerate %s\n", $composerFile); + fprintf(STDERR, 'generating autoloader from %s'.PHP_EOL, $composerFile); $autoloadGenerator = new AutoloadGenerator($composerFile); echo $autoloadGenerator->getFilename().PHP_EOL; echo $autoloadGenerator->getDevFilename().PHP_EOL; @@ -65,7 +71,7 @@ final class AutoloadGenerator { ], 'egulias/email-validator' => [ 'prefix' => 'FEDORA_SYMFONY3_PHP_DIR', - 'path' => 'Egulias/EmailValidator/autoload.php', + 'path' => 'Egulias/EmailValidator2/autoload.php', ], 'fig/link-util' => [ 'prefix' => 'FEDORA_SYMFONY3_PHP_DIR', @@ -366,11 +372,17 @@ final class AutoloadGenerator { private $devFilename = null; public function __construct(SplFileInfo $composerFile) { + $composerPath = $composerFile->getPath(); $composerJson = static::composerJson($composerFile); // autoload.php $content = static::content( - $composerJson, + $composerPath, + $composerJson['name'], + isset($composerJson['autoload']['psr-0']) ? $composerJson['autoload']['psr-0'] : [], + isset($composerJson['autoload']['psr-4']) ? $composerJson['autoload']['psr-4'] : [], + isset($composerJson['autoload']['files']) ? $composerJson['autoload']['files'] : [], + isset($composerJson['autoload']['classmap']) ? $composerJson['autoload']['classmap'] : [], static::dependencyAutoloaders($composerJson, 'require'), static::dependencyAutoloaders($composerJson, 'suggest') ); @@ -384,7 +396,12 @@ final class AutoloadGenerator { // autoload-dev.php $content = static::content( - $composerJson, + $composerPath, + $composerJson['name'], + [], + [], + [], + [], static::dependencyAutoloaders($composerJson, 'require-dev'), [], true @@ -465,8 +482,18 @@ final class AutoloadGenerator { : sprintf("%s.'/%s'", $prefix, $path); } - public function content($composerJson, array $dependencyAutoloadersRequired, array $dependencyAutoloadersOptional = [], $dev = false) { - $pkg = explode('/', $composerJson['name'])[1]; + public function content( + $path, + $name, + array $psr0, + array $psr4, + array $files, + array $classmap, + array $dependencyAutoloadersRequired, + array $dependencyAutoloadersOptional, + $dev = false + ) { + $pkg = explode('/', $name)[1]; $content = << $directory) { + $content .= sprintf( + "\\Fedora\\Autoloader\\Autoload::addPsr0('%s', %s, true);".PHP_EOL, + str_replace('\\', '\\\\', $namespace), + $directory ? "'$directory'" : '__DIR__' + ); + } + } + + // PSR-4 + if (!empty($psr4)) { + $content .= PHP_EOL.'// Self PSR-4'.PHP_EOL; + + foreach ($psr4 as $namespace => $directory) { + $content .= sprintf( + "\\Fedora\\Autoloader\\Autoload::addPsr4('%s', %s, true);".PHP_EOL, + str_replace('\\', '\\\\', $namespace), + $directory ? "'$directory'" : '__DIR__' + ); + } + } + + // Files + if (!empty($files)) { + $content .= PHP_EOL.'// Self files'.PHP_EOL; + + foreach ($files as $file) { + $content .= sprintf( + "require_once __DIR__.'/$file';".PHP_EOL, + $file + ); + } + } + + // Classmap + if (!empty($classmap)) { + $cmd = array_merge( + [ + 'phpab', + '--template', 'fedora', + '--output', 'autoload.classmap.php', + ], + $classmap + ); + + $process = new Process($cmd, $path); + $process->run(); + + if (!$process->isSuccessful()) { + throw new ProcessFailedException($process); + } + + $content .= <<=2.4.5" %global doctrine_orm_min_ver 2.4.5 %global doctrine_orm_max_ver 3.0 -# "egulias/email-validator": "~1.2,>=1.2.8|~2.0" -# NOTE: Min version not 3.0 to restrict to single major version -%global email_validator_min_ver 1.2.8 -%global email_validator_max_ver 2.0 +# "egulias/email-validator": "^2.1.10" +%global email_validator_min_ver 2.1.10 +%global email_validator_max_ver 3.0 # "fig/link-util": "^1.0" %global fig_link_util_min_ver 1.0 %global fig_link_util_max_ver 2.0 @@ -95,9 +94,9 @@ # NOTE: Min version not 4.0 to restrict to single major version %global symfony_security_acl_min_ver 2.8 %global symfony_security_acl_max_ver 3.0 -# "twig/twig": "^1.40|^2.9" +# "twig/twig": "^1.41|^2.10" # NOTE: Multiple major versions handled in autoloaders -%global twig_min_ver 1.40 +%global twig_min_ver 1.41 %global twig_max_ver 3.0 # Build using "--with tests" to enable tests @@ -156,7 +155,7 @@ BuildRequires: php-composer(ocramius/proxy-manager) >= %{proxy_manager_min_ver} BuildRequires: php-composer(phpdocumentor/reflection-docblock) < %{phpdocumentor_reflection_docblock_max_ver} BuildRequires: php-composer(phpdocumentor/reflection-docblock) >= %{phpdocumentor_reflection_docblock_min_ver} BuildConflicts: php-composer(phpdocumentor/reflection-docblock) = 3.2.0 -BuildRequires: php-composer(phpunit/phpunit) +BuildRequires: phpunit7 BuildRequires: php-composer(psr/cache) < %{psr_cache_max_ver} BuildRequires: php-composer(psr/cache) >= %{psr_cache_min_ver} BuildRequires: php-composer(psr/container) < %{psr_container_max_ver} @@ -202,7 +201,7 @@ BuildRequires: php-tokenizer BuildRequires: php-xml BuildRequires: php-xmlreader ## Autoloader -BuildRequires: php-composer(fedora/autoloader) +BuildRequires: php-fedora-autoloader-devel # Conflicts BuildConflicts: php-composer(phpdocumentor/type-resolver) < 0.3.0 @@ -210,10 +209,7 @@ BuildConflicts: php-composer(phpdocumentor/type-resolver) < 0.3.0 Requires: php-composer(%{composer_vendor}/doctrine-bridge) = %{version} Requires: php-composer(%{composer_vendor}/monolog-bridge) = %{version} #Requires: php-composer(%%{composer_vendor}/phpunit-bridge) = %%{version} -%if 0%{?fedora} >= 26 || 0%{?rhel} >= 8 -# this requires ZF and thus PHP 7 Requires: php-composer(%{composer_vendor}/proxy-manager-bridge) = %{version} -%endif Requires: php-composer(%{composer_vendor}/twig-bridge) = %{version} # Bundles Requires: php-composer(%{composer_vendor}/debug-bundle) = %{version} @@ -1866,10 +1862,6 @@ if (!defined('FEDORA_SYMFONY3_DIR')) { define('FEDORA_SYMFONY3_DIR', __DIR__); } -\Fedora\Autoloader\Autoload::addPsr4('Symfony\\Bridge\\', FEDORA_SYMFONY3_DIR.'/Bridge', true); -\Fedora\Autoloader\Autoload::addPsr4('Symfony\\Bundle\\', FEDORA_SYMFONY3_DIR.'/Bundle', true); -\Fedora\Autoloader\Autoload::addPsr4('Symfony\\Component\\', FEDORA_SYMFONY3_DIR.'/Component', true); - \Fedora\Autoloader\Dependencies::required([ '%{phpdir}/Composer/autoload.php', ]); @@ -1988,12 +1980,12 @@ for PKG in %{buildroot}%{symfony3_dir}/*/*; do cat << BOOTSTRAP | tee bootstrap.php - 3.4.33-1 +- update to 3.4.33 +- raise dependency on twig 1.41 +- raise dependency on egulias/email-validator 2.1.10 +- raise dependency on doctrine/annotations 1.7 +- switch to phpunit7 + +* Sat Sep 14 2019 Shawn Iwinski - 3.4.30-2 +- Update autoloader generator to include self PSR-0, PSR-4, files, and classmap + * Tue Aug 20 2019 Remi Collet - 3.4.30-1 - update to 3.4.30 diff --git a/sources b/sources index 520da09..1d23510 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (php-symfony3-3.4.30-4d911e98e1f70538edcca4576c65395ef0fbfa84.tar.gz) = 942695ab568487549d3654084f6397d110945fb600763499097c4a32e0a743fefb23306fa8fa1b2e0ddcfa1f75048c882baee2075911ddf820c5cc6fe87137d1 +SHA512 (php-symfony3-3.4.33-47813652695f1345987fd5dfc0df67607e738b31.tar.gz) = 6be448d495a40875c56b0829f7c4c70976b141b0d5f70657374a675085609d96ef728269a575228c1382d85684a3c7a29b12b8e50139bdb4ac84585c49c90b41