bug #33382 [ProxyManager] remove ProxiedMethodReturnExpression polyfill (nicolas-grekas)

This PR was merged into the 3.4 branch.

Discussion
----------

[ProxyManager] remove ProxiedMethodReturnExpression polyfill

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33364
| License       | MIT
| Doc PR        | -

Let's make this unneeded.

Commits
-------

792f93018a [ProxyManager] remove ProxiedMethodReturnExpression polyfill
This commit is contained in:
Nicolas Grekas 2019-08-29 17:39:35 +02:00
commit 593ec61f60
3 changed files with 1 additions and 78 deletions

View File

@ -123,8 +123,7 @@
"Symfony\\Component\\": "src/Symfony/Component/"
},
"classmap": [
"src/Symfony/Component/Intl/Resources/stubs",
"src/Symfony/Bridge/ProxyManager/Legacy/ProxiedMethodReturnExpression.php"
"src/Symfony/Component/Intl/Resources/stubs"
],
"exclude-from-classmap": [
"**/Tests/"

View File

@ -1,75 +0,0 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace ProxyManager\Generator\Util;
use Composer\Autoload\ClassLoader;
use ProxyManager\Version;
if (class_exists(Version::class) && version_compare(\defined(Version::class.'::VERSION') ? Version::VERSION : Version::getVersion(), '2.5', '<')) {
/**
* Utility class to generate return expressions in method, given a method signature.
*
* This is required since return expressions may be forbidden by the method signature (void).
*
* @author Marco Pivetta <ocramius@gmail.com>
* @license MIT
*
* @see https://github.com/Ocramius/ProxyManager
*/
final class ProxiedMethodReturnExpression
{
public static function generate(string $returnedValueExpression, ?\ReflectionMethod $originalMethod): string
{
$originalReturnType = null === $originalMethod ? null : $originalMethod->getReturnType();
$originalReturnTypeName = null === $originalReturnType ? null : $originalReturnType->getName();
if ('void' === $originalReturnTypeName) {
return $returnedValueExpression.";\nreturn;";
}
return 'return '.$returnedValueExpression.';';
}
}
} else {
// Fallback to the original class by unregistering this file from composer class loader
$getComposerClassLoader = static function ($functionLoader) use (&$getComposerClassLoader) {
if (\is_array($functionLoader)) {
$functionLoader = $functionLoader[0];
}
if (!\is_object($functionLoader)) {
return null;
}
if ($functionLoader instanceof ClassLoader) {
return $functionLoader;
}
if ($functionLoader instanceof \Symfony\Component\Debug\DebugClassLoader) {
return $getComposerClassLoader($functionLoader->getClassLoader());
}
if ($functionLoader instanceof \Symfony\Component\ErrorHandler\DebugClassLoader) {
return $getComposerClassLoader($functionLoader->getClassLoader());
}
return null;
};
$classLoader = null;
$functions = spl_autoload_functions();
while (null === $classLoader && $functions) {
$classLoader = $getComposerClassLoader(array_shift($functions));
}
$getComposerClassLoader = null;
if (null !== $classLoader) {
$classLoader->addClassMap([ProxiedMethodReturnExpression::class => null]);
$classLoader->loadClass(ProxiedMethodReturnExpression::class);
}
}

View File

@ -25,7 +25,6 @@
},
"autoload": {
"psr-4": { "Symfony\\Bridge\\ProxyManager\\": "" },
"classmap": [ "Legacy/ProxiedMethodReturnExpression.php" ],
"exclude-from-classmap": [
"/Tests/"
]