Kahlan\Analysis\Inspector::parameters PHP Method

parameters() public static method

Gets the parameters array of a class method.
public static parameters ( $class, $method, $data = null ) : array
$class The class name.
$method The method name.
$data The default values.
return array The parameters array.
    public static function parameters($class, $method, $data = null)
    {
        $params = [];
        $reflexion = Inspector::inspect($class);
        $parameters = $reflexion->getMethod($method)->getParameters();
        if ($data === null) {
            return $parameters;
        }
        foreach ($data as $key => $value) {
            $name = $key;
            if ($parameters) {
                $parameter = array_shift($parameters);
                $name = $parameter->getName();
            }
            $params[$name] = $value;
        }
        foreach ($parameters as $parameter) {
            if ($parameter->isDefaultValueAvailable()) {
                $params[$parameter->getName()] = $parameter->getDefaultValue();
            }
        }
        return $params;
    }

Usage Example

Example #1
0
            expect(Inspector::typehint($inspector[0]))->toBe('');
            $inspector = Inspector::parameters($this->class, 'parameterByReference');
            expect(Inspector::typehint($inspector[0]))->toBe('');
        });
        it("returns parameter typehint", function () {
            $inspector = Inspector::parameters($this->class, 'exceptionTypeHint');
            $typehint = Inspector::typehint(current($inspector));
            expect($typehint)->toBeA('string');
            expect($typehint)->toBe('\\Exception');
            $inspector = Inspector::parameters($this->class, 'arrayTypeHint');
            $typehint = Inspector::typehint(current($inspector));
            expect($typehint)->toBeA('string');
            expect($typehint)->toBe('array');
            $inspector = Inspector::parameters($this->class, 'callableTypeHint');
            $typehint = Inspector::typehint(current($inspector));
            expect($typehint)->toBeA('string');
            expect($typehint)->toBe('callable');
        });
        it("returns parameter typehint for scalar type hints", function () {
            skipIf(PHP_MAJOR_VERSION < 7);
            $inspector = Inspector::parameters('Kahlan\\Spec\\Fixture\\Analysis\\ScalarTypeHintsClass', 'intTypeHint');
            $typehint = Inspector::typehint(current($inspector));
            expect($typehint)->toBeA('string');
            expect($typehint)->toBe('int');
            $inspector = Inspector::parameters('Kahlan\\Spec\\Fixture\\Analysis\\ScalarTypeHintsClass', 'boolTypeHint');
            $typehint = Inspector::typehint(current($inspector));
            expect($typehint)->toBeA('string');
            expect($typehint)->toBe('bool');
        });
    });
});
All Usage Examples Of Kahlan\Analysis\Inspector::parameters