On Tue, Feb 7, 2017 at 12:00 PM, Derick Rethans <der...@php.net> wrote:
> On Mon, 6 Feb 2017, Nikita Popov wrote: > > > On Mon, Feb 6, 2017 at 6:21 PM, Fleshgrinder <p...@fleshgrinder.com> > wrote: > > > > > First: I like namespaces in Core but here me out! > > <snip> > > > I'm strongly against use of the PHP namespace as a blanket namespace for > > bundled PHP extensions. The PHP namespace should be used only for > > functionality that is actually in some way related to PHP. For example, > the > > php-ast extension could reasonably be namespaced as php\ast, as it > provides > > an AST for PHP specifically. Similarly the tokenizer extension could > > reasonably be namespaced as php\tokenizer. > > > > Extensions which are not of this type should not live in the PHP > namespace, > > because they don't have anything specifically to do with php, apart from > > the circumstance that they happen to be bundled at the current point in > > time. Remember that extension may move from being bundled to being in > PECL > > and vice versa. If we decide to bundle the MongoDB extension with php, > > would we rename the currently used MongoDB namespace to PHP\MongoDB? If > we > > decided to move it back to PECL, would the namespace go back to just > > MongoDB? Or would it stay PHP\MongoDB, despite not being part of PHP > > anymore? Should all new extensions be written with a PHP namespace to > > account for the possibility of the extension being bundled with PHP at a > > later point in time (even if there are no concrete plans to do so)? > > > > I would answer No to these questions. The namespace MongoDB is not, as > you > > say, "random", it is *meaningful*. The namespace PHP is (with the > > exceptions in the first paragraph notwithstanding) meaningless and an > > artifact of the distribution mechanism, a mechanism which may change over > > time. > > I very much agree with all of this, and would like to add, that for a > *long* time it has been documented that PHP owns the top-level > namespace: > http://php.net/manual/en/userlandnaming.rules.php > > In any case, a discussion to namespace any existing PHP functionality > should really wait until PHP 8 - and that means, that if we decide to > put Sodium in PHP 7.x, it should not be namespaced out of consistenct > *no matter what the RFC result* says. > > I tend to agree with that. Every move its time. Namespacing PHP functions must wait for PHP 8. But with those ideas, there is a dilema : we are going to break PECL/Sodium users, as they now use namespaces (via PECL ext) and would need to use functions tomorrow, to use back again namespaces probably in several years .... Sounds not too good neither :-p Julien.Pauli