rfc:class_name_scalars
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
rfc:class_name_scalars [2012/09/11 14:32] – [Request for Comments: Cution As Scalar Via class Keyword] lass Name Resol ralphschindler | rfc:class_name_scalars [2012/09/14 15:16] – [Request for Comments: Class Name Resolution As Scalar Via class Keyword] ralphschindler | ||
---|---|---|---|
Line 3: | Line 3: | ||
* Date: 2012-04-17 | * Date: 2012-04-17 | ||
* Author: Ralph Schindler < | * Author: Ralph Schindler < | ||
- | * Status: | + | * Status: |
* First Published at: http:// | * First Published at: http:// | ||
Line 31: | Line 31: | ||
</ | </ | ||
+ | ==== Real World Usage Scenarios ==== | ||
+ | |||
+ | 1. PHPUnit' | ||
+ | |||
+ | <code php> | ||
+ | |||
+ | use MyVendor\SomeComponent\TargetSubNs; | ||
+ | |||
+ | // inside a test case | ||
+ | $this-> | ||
+ | // as opposed to | ||
+ | $this-> | ||
+ | </ | ||
+ | |||
+ | 2. Doctrine | ||
+ | |||
+ | <code php> | ||
+ | |||
+ | use MyVendor\SomeComponent\TargetEntityNs as Entity; | ||
+ | |||
+ | // inside a test case | ||
+ | $entityManager-> | ||
+ | // as opposed to | ||
+ | $entityManager-> | ||
+ | |||
+ | </ | ||
+ | |||
+ | 3. Any Real (auto-wiring || auto-instantiating) Dependency Injection Container | ||
+ | |||
+ | <code php> | ||
+ | |||
+ | use MyVendor\SomeComponent\TargetNs as T; | ||
+ | |||
+ | // inside a test case | ||
+ | $dic-> | ||
+ | // as opposed to | ||
+ | $dic-> | ||
+ | |||
+ | </ | ||
+ | |||
+ | 4. General PHP Usage: | ||
+ | |||
+ | <code php> | ||
+ | |||
+ | use MyVendor\SomeComponent\TargetNs as T; | ||
+ | |||
+ | // reflection | ||
+ | $r = new ReflectionClass(T\Foo:: | ||
+ | |||
+ | // class_exists, | ||
+ | if (class_exists(T\Foo:: | ||
+ | |||
+ | </ | ||
===== Choice of syntax ===== | ===== Choice of syntax ===== | ||
Line 88: | Line 141: | ||
Do we: | Do we: | ||
- | * Throw a compile error? | + | * <del>Throw a compile error?</ |
- | * Resolve as best as possible, meaning error in non-class context, do a runtime lookup in a class context | + | * <del>Resolve as best as possible, meaning error in non-class context, do a runtime lookup in a class context</ |
+ | |||
+ | **Note:** (as of 9/8/12) | ||
- | Note: (as of 9/8/12) | ||
In the current patch, the following resolutions take place: | In the current patch, the following resolutions take place: | ||
- | * self::class resolves the same as __CLASS__ would | + | * self::class resolves the same as %%__CLASS__%% would |
* static:: | * static:: | ||
* parent:: | * parent:: | ||
Line 105: | Line 159: | ||
- | <doodle title=" | + | <doodle title=" |
* Yes | * Yes | ||
* No | * No | ||
</ | </ | ||
+ | Note: This Vote has been closed as the RFC will be moved back to discussion at the time being while the RFC and associated patch become more mature. | ||
===== Changelog ===== | ===== Changelog ===== | ||
rfc/class_name_scalars.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1