> Am 14.01.2017 um 11:26 schrieb Fleshgrinder <p...@fleshgrinder.com>: > >> On 1/14/2017 11:20 AM, Andreas Heigl wrote: >> Do we as "makers of PHP" want to dictate the user what the "intended" >> behaviour of PHP is? Or are we treating the user as a responsible person >> that knows what to do and also not to do? >> >> Personally I'm in favour of the later. Let the user be able to call >> __construct whenever they like. It's a special method which is clearly >> visible by the two underscores at the start. So the users either know >> exactly what they are doing or they need to learn it. >> >> Translated to a different example this discussion is like: "Let's remove >> the handle from the window because someone might be able to open the >> window and jump out of it". The handle is there for a valid reason. And >> as a window-maker I have no idea in what way it might be used. But I >> have to accept that there are people missusing it. But should I limit >> all those users with a valid use-case for it just to save some from >> missusing it? And if we start with that, where should we stop? >> >> Just my 0.02€ >> >> Cheers >> >> Andreas >> > > Yes, that is exactly the question. This needs to be voted on. Rust would > be an example that protects you and C/C++ would be examples that do not. > Both approaches are valid approaches. > > Note that the dictation will not always work, this is why e.g. Rust has > unsafe blocks. The corresponding thing in PHP imho would be reflection. > Hence, if someone has a special case: > > - Rust: use unsafe > - PHP: use reflection > > -- > Richard "Fleshgrinder" Fussenegger
IMHO it already IS safe. In PHP 4 the "constructor" was a method thad had the same name as the class. But now it is a class that has always the same name and is always preceded with two underscores. There is no way to "accidentaly" call that method. You have to explicitly call "__construct" to "break" things. If developers "want" to break something they will find a way. Protecting "__construct" will not stop them from doing so. But it will stop the rest of us do legitimate things. Cheers Andreas -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php