rfc:reflectionparameter-getclassname

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
rfc:reflectionparameter-getclassname [2015/01/31 04:11] philsturfc:reflectionparameter-getclassname [2015/01/31 17:26] philstu
Line 1: Line 1:
 ====== PHP RFC: ReflectionParameter::getClassName() ====== ====== PHP RFC: ReflectionParameter::getClassName() ======
-  * Version: 0.1+  * Version: 0.2
   * Date: 2015-01-30   * Date: 2015-01-30
   * Author: Phil Sturgeon, me@philsturgeon.uk   * Author: Phil Sturgeon, me@philsturgeon.uk
Line 8: Line 8:
 ===== Introduction ===== ===== Introduction =====
  
-Adds a new method to ReflectionParameter to allow easy access to a class name in a type hint, avoiding the need to actually load the class and use `get_class()` or `::class`.+Adds a new method to ReflectionParameter to allow easy access to a class name in a type hint, avoiding the need to actually load the class and use `getClass()->name`.
  
 ===== Proposal ===== ===== Proposal =====
Line 16: Line 16:
 <PHP> <PHP>
 <?php <?php
 +
 +use Bar\Baz;
 +
 class Foo { class Foo {
-  public function bar(Qux $qux) {}+  public function bar(Qux $qux, $bar, Baz $baz, \Bar\Quz $quz) {} 
 + 
 +  public function waldo(array $wibble, callable $wobble) {}
 } }
  
Line 25: Line 30:
  
 var_dump($params[0]->getClassName()); // string(3) "Qux" var_dump($params[0]->getClassName()); // string(3) "Qux"
 +var_dump($params[1]->getClassName()); // NULL
 +var_dump($params[2]->getClassName()); // string(7) "Bar\Baz"
 +var_dump($params[3]->getClassName()); // string(7) "Bar\Quz"
 +
 +$method = $class->getMethod("waldo");
 +$params = $method->getParameters();
 +var_dump($params[0]->getClassName()); // NULL
 +var_dump($params[1]->getClassName()); // NULL
 </PHP> </PHP>
 +
 +This is only targeted at classes, not any other typehint. If scalar type hints come then I'm sure they'll have some new reflection methods. This is just getClass()->name but without the need to load the class.
  
 ===== Backward Incompatible Changes ===== ===== Backward Incompatible Changes =====
rfc/reflectionparameter-getclassname.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1