rfc:backslashnamespaces
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionLast revisionBoth sides next revision | ||
rfc:backslashnamespaces [2008/10/25 06:32] – created cellog | rfc:backslashnamespaces [2008/10/25 13:57] – oops, all / should be \ cellog | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Request for Comments: problems of namespaces and potential solutions ====== | ====== Request for Comments: problems of namespaces and potential solutions ====== | ||
- | * Version: 1.0 | + | * Version: 1.1 |
* Date: 2008-10-25 | * Date: 2008-10-25 | ||
* Author: Gregory Beaver < | * Author: Gregory Beaver < | ||
Line 34: | Line 34: | ||
* no naming conflicts possible between functions/ | * no naming conflicts possible between functions/ | ||
* no syntax changes for those using namespaces for classes | * no syntax changes for those using namespaces for classes | ||
+ | * probably the smallest codebase change | ||
==== Problems ==== | ==== Problems ==== | ||
Line 125: | Line 126: | ||
* move all static method calls to -> syntax | * move all static method calls to -> syntax | ||
- | * introduce E_DEPRECATED for :: calls that resolve to static method, remove | + | * introduce |
The second way is going to be a terrible headache for all OO authors, past and present, and will prevent migration to PHP 5.3 for those who are only looking for security fixes and performance improvements. | The second way is going to be a terrible headache for all OO authors, past and present, and will prevent migration to PHP 5.3 for those who are only looking for security fixes and performance improvements. | ||
Line 170: | Line 171: | ||
* if classname-> | * if classname-> | ||
+ | * Definitely the smallest codebase change | ||
==== Problems ==== | ==== Problems ==== | ||
Line 179: | Line 181: | ||
* it redefines a long-established definition of ->, which is not necessarily a problem, but could be confusing for both existing and new users | * it redefines a long-established definition of ->, which is not necessarily a problem, but could be confusing for both existing and new users | ||
* only educated users would ever think to look for -> unless a massive PR campaign is mounted, which would also make PHP look disorganized. | * only educated users would ever think to look for -> unless a massive PR campaign is mounted, which would also make PHP look disorganized. | ||
+ | * does not solve the deeper problems inherent in :: | ||
===== Use \ as namespace separator ===== | ===== Use \ as namespace separator ===== | ||
Line 284: | Line 287: | ||
* because \ is a single keystroke, it is possible to require \ prefix for all global functions/ | * because \ is a single keystroke, it is possible to require \ prefix for all global functions/ | ||
* code review ambiguities disappear permanently | * code review ambiguities disappear permanently | ||
- | * name resolution order problems disappear if we decide that "foo/bar" or " | + | * name resolution order problems disappear if we decide that "foo\bar" or " |
* code coverage of namespace-related code is so good, it is possible to be very confident of the correctness of the patch. | * code coverage of namespace-related code is so good, it is possible to be very confident of the correctness of the patch. | ||
Line 309: | Line 312: | ||
===== Changelog ===== | ===== Changelog ===== | ||
+ | * 1.1: Correct mis-representation of Lukas' | ||
rfc/backslashnamespaces.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1