On 28 July 2017 at 16:11, Sara Golemon <poll...@php.net> wrote:

> ftr; I'd vote in favor of several BC breaking things to do with
autoglobals, among them:
>
>* Make them objects (though ArrayAccess based for less hostile BC breakage)


Why objects?

Although these are kind of just about related things they don't
require being in a class/interface.

Designing classes/interfaces to be correct the first time is a really
difficult thing to do, and then maintaining classes/interfaces is hard
as any change to a method is a BC break.

I feel pretty strongly that 'just' using a set of function to read the
data would be the correct thing to do as:

i) they are easier to maintain.

ii) They allow people to composite them into objects easily.

iii) They're simpler to use in code.

> I've seen too many codebases abuse GPCER vars as a generic storage
> Restricting their  mutability would be a win.

Or we could just leave the global mutable variables alone, and just
introduce the new set of functions to get the original unmodified
data, which would be inherently read-only.

That allows everyone who wants to move away from mutable state to do
so, leaves current applications working, and we can have the
lovely-and-not-at-all-depressing "WHY ARE YOU TERRIBLE PEOPLE BREAKING
WORKING CODE!!1!" conversation as a separate discussion; one that
doesn't get in the way of allowing people who'd prefer to move forward
with saner global state.

cheers
Dan

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to