2017 © Pedro Peláez
 

helper reflection

Helpers and traits for work with class reflections

image

demmonico/reflection

Helpers and traits for work with class reflections

  • Wednesday, June 27, 2018
  • by demmonico
  • Repository
  • 1 Watchers
  • 0 Stars
  • 6 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 11 Versions
  • 0 % Grown

The README.md

Reflection

Description

Helpers and traits for work with class reflections, (*1)

Latest Stable Version Total Downloads License, (*2)

Components

ReflectionHelper

Helper for work with class reflections. Is a base of other components, (*3)

Usage
  1. Get list of class methods
ReflectionHelper::getMethods($className, $filter=null, $prefix=null);
  1. Get list of class constants
ReflectionHelper::getConstants(string $className, ?string $prefix = ''): array
  1. Detect type of var (array, int, string etc)
ReflectionHelper::detectVarType($var, $allowTypesArr=[], $default=null)

ConstantTrait

Handle magic calls to get array of class's constant labels or single constant label by it value, (*4)

Usage

Sourse class, (*5)

class Simple
{
    use ConstantTrait;

    const GROUP_TEST_ONEWORD = 1;
    const GROUP_TEST_TWO_WORDS = 2;
    const GROUP_TEST_COM_plex_LAbeL = 3;

    public function test() { return $this->constGroupTest(); }
    public function testStatic() { return static::constGroupTest(); }
    public function testSingleLabel() { return $this->constGroupTest(static::GROUP_TEST_TWO_WORDS); }

    public function testInvalidPrefix() { return $this->invalidGroupTest(); }
    public function testInvalidConstGroup() { return $this->constInvalidGroup(); }
    public function testInvalidConstValue() { return $this->constGroupTest(1000); }
}

Anywhere usage, (*6)

$simple = new Simple;

//
// will return CORRECT results
//
$simple->test();
// or
$simple->testStatic();
// or
Simple::testStatic();
// returns array(3) { [1]=> string(7) "Oneword" [2]=> string(10) "Two Words" [3]=> string(16) "COM plex LAbe L" }

$simple->testSingleLabel();
// returns string(10) "Two Words"

//
// will throw an ERRORS
//
$simple->testInvalidPrefix();
// or
$simple->testInvalidConstGroup();
// if no parent::__call and/or parent::__callStatic exists then
//      throws Error "Call to undefined method Simple::invalidGroupTest()" or "testInvalidConstGroup"
// else
//      throws error from parent

$simple->testInvalidConstValue();
// throws Error "Invalid argument '1000' while calling Simple::constGroupTest(1000)"

So correct results (not for single call) will be like this:, (*7)

[
    1 => "Oneword",
    2 => "Two Words",
    3 => "COM plex LAbe L",
]

For single label call - Oneword, (*8)

Customization

Change prefix for the const getter, (*9)

Define somewhere before call const getter:, (*10)

static::$constMagicGetterPrefix = 'get';
...
Simple::getGroupTest();

Note: attempt to override static property like below will trigger an error, (*11)

protected static $constMagicGetterPrefix = 'get';

Add/override constant label for get complex label formatting, (*12)

Sourse class, (*13)

class Simple
{
    ...
    protected static $constMagicLabels = ['GroupTest' => [3 => 'COMP-lex-LaBEL', 0 => 'Extra label']];
    ...
// or
    ...
    protected static constMagicLabels() { return ['GroupTest' => [3 => 'COMP-lex-LaBEL', 0 => 'Extra label']]; }
    ...
}

Anywhere usage, (*14)

$simple->test();
// returns array(4) { [1]=> string(7) "Oneword" [2]=> string(10) "Two Words" [3]=> string(14) "COMP-lex-LaBEL" [0]=> string(11) "Extra label" }

So correct results in such case will be like this:, (*15)

[
    1 => "Oneword",
    2 => "Two Words",
    3 => "COMP-lex-LaBEL",  // was replaced
    0 => "Extra label",     // was added
]

Note: you could change name of property/method of label customization via set before calling getter, (*16)

static::$constMagicCustomLabels = 'renamedConstMagicLabels';

The Versions

27/06 2018

dev-master

9999999-dev https://github.com/demmonico/reflection

Helpers and traits for work with class reflections

  Sources   Download

MIT

The Requires

  • php ~7.0

 

by Dmitry demmonico

component extension library helper trait reflection constant

27/06 2018

v2.0.2

2.0.2.0 https://github.com/demmonico/reflection

Helpers and traits for work with class reflections

  Sources   Download

MIT

The Requires

  • php ~7.0

 

by Dmitry demmonico

component extension library helper trait reflection constant

08/06 2018

v2.0.1

2.0.1.0 https://github.com/demmonico/reflection

Helpers and traits for work with class reflections

  Sources   Download

MIT

The Requires

  • php ~7.0

 

by Dmitry demmonico

component extension library helper trait reflection constant

08/06 2018

v2.0.0

2.0.0.0 https://github.com/demmonico/reflection

Helpers and traits for work with class reflections

  Sources   Download

MIT

The Requires

  • php ~7.0

 

by Dmitry demmonico

component extension library helper trait reflection constant

12/10 2016

v1.2.1

1.2.1.0 https://github.com/demmonico/yii2-traits

Yii2 traits library

  Sources   Download

MIT

The Requires

 

by Dmitry demmonico

component extension yii2 trait yii

12/10 2016

v1.2.0

1.2.0.0 https://github.com/demmonico/yii2-traits

Yii2 traits library

  Sources   Download

MIT

The Requires

 

by Dmitry demmonico

component extension yii2 trait yii

06/10 2016

v1.1.2

1.1.2.0 https://github.com/demmonico/yii2-traits

Yii2 traits library

  Sources   Download

MIT

The Requires

 

by Dmitry demmonico

component extension yii2 trait yii

06/10 2016

v1.1.1

1.1.1.0 https://github.com/demmonico/yii2-traits

Yii2 traits library

  Sources   Download

MIT

The Requires

 

by Dmitry demmonico

component extension yii2 trait yii

25/08 2016

v1.1.0

1.1.0.0 https://github.com/demmonico/yii2-traits

Yii2 traits library

  Sources   Download

MIT

The Requires

 

by Dmitry demmonico

component extension yii2 trait yii

22/08 2016

v1.0.1

1.0.1.0 https://github.com/demmonico/yii2-traits

Yii2 traits library

  Sources   Download

MIT

The Requires

 

by Dmitry demmonico

component extension yii2 trait yii

22/08 2016

v1.0.0

1.0.0.0 https://github.com/demmonico/yii2-traits

Yii2 traits library

  Sources   Download

MIT

The Requires

 

by Dmitry demmonico

component extension yii2 trait yii