+++ /dev/null
-<?php
-
-/*
- * This file is part of the Behat Testwork.
- * (c) Konstantin Kudryashov <ever.zet@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Behat\Testwork\Call;
-
-use Behat\Testwork\Call\Exception\BadCallbackException;
-use ReflectionFunction;
-use ReflectionFunctionAbstract;
-use ReflectionMethod;
-
-/**
- * Represents callee created and executed in the runtime.
- *
- * @author Konstantin Kudryashov <ever.zet@gmail.com>
- */
-class RuntimeCallee implements Callee
-{
- /**
- * @var callable
- */
- private $callable;
- /**
- * @var null|string
- */
- private $description;
- /**
- * @var ReflectionFunctionAbstract
- */
- private $reflection;
- /**
- * @var string
- */
- private $path;
-
- /**
- * Initializes callee.
- *
- * @param callable $callable
- * @param null|string $description
- *
- * @throws BadCallbackException If invalid callback provided
- */
- public function __construct($callable, $description = null)
- {
- if (!is_array($callable) && !is_callable($callable)) {
- throw new BadCallbackException(sprintf(
- '%s expects a valid callable, but `%s` given',
- get_class($this),
- gettype($callable)
- ), $callable);
- }
-
- if (is_array($callable)) {
- $this->reflection = new ReflectionMethod($callable[0], $callable[1]);
- $this->path = $callable[0] . '::' . $callable[1] . '()';
- } else {
- $this->reflection = new ReflectionFunction($callable);
- $this->path = $this->reflection->getFileName() . ':' . $this->reflection->getStartLine();
- }
-
- $this->callable = $callable;
- $this->description = $description;
- }
-
- /**
- * Returns callee description.
- *
- * @return string
- */
- public function getDescription()
- {
- return $this->description;
- }
-
- /**
- * Returns callee definition path.
- *
- * @return string
- */
- public function getPath()
- {
- return $this->path;
- }
-
- /**
- * Returns callable.
- *
- * @return callable
- */
- public function getCallable()
- {
- return $this->callable;
- }
-
- /**
- * Returns callable reflection.
- *
- * @return ReflectionFunctionAbstract
- */
- public function getReflection()
- {
- return $this->reflection;
- }
-
- /**
- * Returns true if callee is a method, false otherwise.
- *
- * @return Boolean
- */
- public function isAMethod()
- {
- return $this->reflection instanceof ReflectionMethod;
- }
-
- /**
- * Returns true if callee is an instance (non-static) method, false otherwise.
- *
- * @return Boolean
- */
- public function isAnInstanceMethod()
- {
- return $this->reflection instanceof ReflectionMethod
- && !$this->reflection->isStatic();
- }
-}