HhvmExceptionPatch.php in Zircon Profile 8
Same filename and directory in other branches
Namespace
Prophecy\Doubler\ClassPatchFile
vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.phpView source
<?php
/*
* This file is part of the Prophecy.
* (c) Konstantin Kudryashov <ever.zet@gmail.com>
* Marcello Duarte <marcello.duarte@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Prophecy\Doubler\ClassPatch;
use Prophecy\Doubler\Generator\Node\ClassNode;
/**
* Exception patch for HHVM to remove the stubs from special methods
*
* @author Christophe Coevoet <stof@notk.org>
*/
class HhvmExceptionPatch implements ClassPatchInterface {
/**
* Supports exceptions on HHVM.
*
* @param ClassNode $node
*
* @return bool
*/
public function supports(ClassNode $node) {
if (!defined('HHVM_VERSION')) {
return false;
}
return 'Exception' === $node
->getParentClass() || is_subclass_of($node
->getParentClass(), 'Exception');
}
/**
* Removes special exception static methods from the doubled methods.
*
* @param ClassNode $node
*
* @return void
*/
public function apply(ClassNode $node) {
if ($node
->hasMethod('setTraceOptions')) {
$node
->getMethod('setTraceOptions')
->useParentCode();
}
if ($node
->hasMethod('getTraceOptions')) {
$node
->getMethod('getTraceOptions')
->useParentCode();
}
}
/**
* {@inheritdoc}
*/
public function getPriority() {
return -50;
}
}
Classes
Name![]() |
Description |
---|---|
HhvmExceptionPatch | Exception patch for HHVM to remove the stubs from special methods |