|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2016-03-27 12:32 UTC] krakjoe@php.net
-Status: Open
+Status: Suspended
[2016-03-27 12:32 UTC] krakjoe@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 11:00:02 2025 UTC |
Description: ------------ The ability to make classes/functions "internal" which would make them only instantiatable and/or callable from within the current root namespace. This would be helpful when creating a library where you only want classes to be available to other classes within the library. As to someone using the library they wouldn't be able to initiate the class in the library or use it outside of the namespace. Test script: --------------- namespace RootSpace\SubSpace; internal class TestClass {} --- namespace RootSpace\OtherSpace; use RootSpace\SubSpace\TestClass; class AnotherClass { public function test(){ $class = new TestClass(); } } --- namespace MySpace; use RootSpace\SubSpace\TestClass; class MyClass { public function test(){ $class = new TestClass(); } } Expected result: ---------------- "AnotherClass" should create an instance of TestClass it "AnotherClass::test()" is called because they share the same root space "RootSpace". "MyClass" should throw an error when "MyClass::test()" is called because it isn't in the root space "RootSpace"