Mercurial > hg > isophonics-drupal-site
annotate vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php @ 9:1fc0ff908d1f
Add another data file
author | Chris Cannam |
---|---|
date | Mon, 05 Feb 2018 12:34:32 +0000 |
parents | 4c8ae668cc8c |
children |
rev | line source |
---|---|
Chris@0 | 1 <?php |
Chris@0 | 2 |
Chris@0 | 3 /* |
Chris@0 | 4 * This file is part of the Prophecy. |
Chris@0 | 5 * (c) Konstantin Kudryashov <ever.zet@gmail.com> |
Chris@0 | 6 * Marcello Duarte <marcello.duarte@gmail.com> |
Chris@0 | 7 * |
Chris@0 | 8 * For the full copyright and license information, please view the LICENSE |
Chris@0 | 9 * file that was distributed with this source code. |
Chris@0 | 10 */ |
Chris@0 | 11 |
Chris@0 | 12 namespace Prophecy\Doubler\ClassPatch; |
Chris@0 | 13 |
Chris@0 | 14 use Prophecy\Doubler\Generator\Node\ClassNode; |
Chris@0 | 15 |
Chris@0 | 16 /** |
Chris@0 | 17 * ReflectionClass::newInstance patch. |
Chris@0 | 18 * Makes first argument of newInstance optional, since it works but signature is misleading |
Chris@0 | 19 * |
Chris@0 | 20 * @author Florian Klein <florian.klein@free.fr> |
Chris@0 | 21 */ |
Chris@0 | 22 class ReflectionClassNewInstancePatch implements ClassPatchInterface |
Chris@0 | 23 { |
Chris@0 | 24 /** |
Chris@0 | 25 * Supports ReflectionClass |
Chris@0 | 26 * |
Chris@0 | 27 * @param ClassNode $node |
Chris@0 | 28 * |
Chris@0 | 29 * @return bool |
Chris@0 | 30 */ |
Chris@0 | 31 public function supports(ClassNode $node) |
Chris@0 | 32 { |
Chris@0 | 33 return 'ReflectionClass' === $node->getParentClass(); |
Chris@0 | 34 } |
Chris@0 | 35 |
Chris@0 | 36 /** |
Chris@0 | 37 * Updates newInstance's first argument to make it optional |
Chris@0 | 38 * |
Chris@0 | 39 * @param ClassNode $node |
Chris@0 | 40 */ |
Chris@0 | 41 public function apply(ClassNode $node) |
Chris@0 | 42 { |
Chris@0 | 43 foreach ($node->getMethod('newInstance')->getArguments() as $argument) { |
Chris@0 | 44 $argument->setDefault(null); |
Chris@0 | 45 } |
Chris@0 | 46 } |
Chris@0 | 47 |
Chris@0 | 48 /** |
Chris@0 | 49 * Returns patch priority, which determines when patch will be applied. |
Chris@0 | 50 * |
Chris@0 | 51 * @return int Priority number (higher = earlier) |
Chris@0 | 52 */ |
Chris@0 | 53 public function getPriority() |
Chris@0 | 54 { |
Chris@0 | 55 return 50; |
Chris@0 | 56 } |
Chris@0 | 57 } |