Hello internals,

I've been thinking about having an "internal" attribute that will emit
a warning if called from outside it's left-most namespace.

It might look something like this:

namespace MyCompany\PackageA {
  #[\Internal] function doStuff() {}
}

namespace OtherCompany\PackageB {
  \MyCompany\PackageA\doStuff(); // warning emitted
}

namespace MyCompany\PackageB {
  \MyCompany\PackageB\doStuff(); // left-most part of namespace
matches, no warning
}

This would allow for library maintainers to mark internal constructs
as such and provide users with feedback that they are using code that
may be changed without any notice.

Any thoughts?

Robert Landers
Software Engineer
Utrecht NL

Reply via email to