[PHP-BUG] Req #68876 [NEW]: Access specifier for class

[email protected] ("kulinchoksi at gmail dot com")
Newsgroups php.standards
Message-ID <[email protected]>
From:             kulinchoksi at gmail dot com
Operating system: any
PHP version:      5.6.4
Package:          PHP Language Specification
Bug Type:         Feature/Change Request
Bug description:Access specifier for class

Description:
------------
---
From manual page: http://www.php.net/language.oop5.visibility
---

In recent versions of PHP, we have introduced feature of namespaces.

I was thinking of the scenario where we can specify access
specifier/visibility of classes also.

We may allow to access instantiation of the class inside namespace only
if it's private.
Although I'm not sure about allowing the objects of that class outside
the namespace but I think, it should be allowed in any case.

Example of encapsulating classes in namespace could be:
- Different payment classes may represent different payment methods.
- A payment manager class can only access the payment factory which will
decide to instantiate particular type of payment class.
- In application, we would access payment class via manager class only.
So manager class can behave like a public interface of payment
entities.

Example:

namespace application/payment;

abstract class Payment {
    ...
}

private class TypePaypal extends Payment {
    ...
}

private class TypePaymentInAdvance extends Payment {
    ...
}

class PaymentFactory {
    ...
}


-- 
Edit bug report at https://bugs.php.net/bug.php?id=68876&edit=1
-- 
Try a snapshot (PHP 5.4):   https://bugs.php.net/fix.php?id=68876&r=trysnapshot54
Try a snapshot (PHP 5.5):   https://bugs.php.net/fix.php?id=68876&r=trysnapshot55
Try a snapshot (trunk):     https://bugs.php.net/fix.php?id=68876&r=trysnapshottrunk
Fixed in SVN:               https://bugs.php.net/fix.php?id=68876&r=fixed
Fixed in release:           https://bugs.php.net/fix.php?id=68876&r=alreadyfixed
Need backtrace:             https://bugs.php.net/fix.php?id=68876&r=needtrace
Need Reproduce Script:      https://bugs.php.net/fix.php?id=68876&r=needscript
Try newer version:          https://bugs.php.net/fix.php?id=68876&r=oldversion
Not developer issue:        https://bugs.php.net/fix.php?id=68876&r=support
Expected behavior:          https://bugs.php.net/fix.php?id=68876&r=notwrong
Not enough info:            https://bugs.php.net/fix.php?id=68876&r=notenoughinfo
Submitted twice:            https://bugs.php.net/fix.php?id=68876&r=submittedtwice
register_globals:           https://bugs.php.net/fix.php?id=68876&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=68876&r=php4
Daylight Savings:           https://bugs.php.net/fix.php?id=68876&r=dst
IIS Stability:              https://bugs.php.net/fix.php?id=68876&r=isapi
Install GNU Sed:            https://bugs.php.net/fix.php?id=68876&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=68876&r=float
No Zend Extensions:         https://bugs.php.net/fix.php?id=68876&r=nozend
MySQL Configuration Error:  https://bugs.php.net/fix.php?id=68876&r=mysqlcfg
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.