/** * Initializes Prophet. * * @param null|Doubler $doubler * @param null|RevealerInterface $revealer * @param null|StringUtil $util */ public function __construct(Doubler $doubler = null, RevealerInterface $revealer = null, StringUtil $util = null) { if (null === $doubler) { $doubler = new Doubler(); $doubler->registerClassPatch(new ClassPatch\SplFileInfoPatch()); $doubler->registerClassPatch(new ClassPatch\TraversablePatch()); $doubler->registerClassPatch(new ClassPatch\DisableConstructorPatch()); $doubler->registerClassPatch(new ClassPatch\ProphecySubjectPatch()); $doubler->registerClassPatch(new ClassPatch\ReflectionClassNewInstancePatch()); $doubler->registerClassPatch(new ClassPatch\HhvmExceptionPatch()); $doubler->registerClassPatch(new ClassPatch\MagicCallPatch()); $doubler->registerClassPatch(new ClassPatch\KeywordPatch()); } $this->doubler = $doubler; $this->revealer = $revealer ?: new Revealer(); $this->util = $util ?: new StringUtil(); }
/** * {@inheritdoc} */ public function registerClassPatch(ClassPatch\ClassPatchInterface $patch) { $this->classes[] = array(); parent::registerClassPatch($patch); }