Patrick Schaaf wrote:
> But that has proven, in the past, a fountain of joy wrt.
> placement, with variations needed for APC and opcache, and general frustration
> all around.

Is there a bug report for the problems? OPCache shouldn't have
side-effects on the code.

cheers
Dan



On 12 March 2015 at 08:40, Patrick Schaaf <p...@bof.de> wrote:
> On Thursday 12 March 2015 00:10:15 Rowan Collins wrote:
>> On 11/03/2015 23:21, Johannes Ott wrote:
>>
>> > The purpose of this suggestion is to introduce a static constructor,
>> > which is called before the first call to class either static or
>> > non-static to initialize some static properties which are needed by the
>> > class.
>>
>> Can you give an example use case for when this would be useful? I'm
>> struggling to think of one for which there isn't already an established
>> coding pattern...
>
> It's useful everywhere you now have more than one method starting
>
>         if (!static::$is_initialized) static::initialize_me();
>
> Some examples from our codebase:
>
> - a session wrapper class, hiding $_SESSION behind setter/getter methods,
> where the static class initialization determines which cookie to use,
> depending on some global feature flags, and which session backend to use,
> depending on current availability. (main purpose, apart from clean calling
> side code just using the setters/getters, is to get the lazy_write
> functionality Yasuo tried to introduce recently)
>
> - computation of some class properties from others, like doing an array_flip
> on one to get a reverse mapping.
>
> - definition of computed constants, in various places. Partly obsolete now
> that class constants support constant expressions, but needed as soon as these
> are not really constant.
>
> - setting up some class properties used by various methods, that should depend
> on some global feature flags (defined by the users of the class, usually
> toplevel scripts)
>
> - invariant checks on subclasses, in various places, where concrete subclasses
> set up some static properties of a configuration nature, and I want to make
> sure in the base class, as early as possible, that the values are consistent
> and make sense, avoiding checks spread all over the place in various methods.
>
> Of course, most of this could be done by code outside the class definition, in
> the same file. But that has proven, in the past, a fountain of joy wrt.
> placement, with variations needed for APC and opcache, and general frustration
> all around.
>
> best regards
>   Patrick
>
>
>
>
>
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>

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

Reply via email to