Rasmus, isn't your concern about the impact of dynamic property
support on developers who don't actually use it a nonissue in 5.4,
where properties that aren't dynamic are stored as a flat array?

On Mon, May 21, 2012 at 4:52 PM, Rasmus Schultz <ras...@mindplay.dk> wrote:
> Adding/removing properties at runtime is great if you want obscure,
> unmaintainable code and don't think an IDE is useful.
>
> So to make my previous statement more precise, dynamic properties are
> not widely used in respectable modern codebases, and is generally
> something a reputable developer would frown upon. Yes, some codebases
> (e.g. Drupal) rely on this extensively, but modern frameworks
> generally do not - in fact, they often take measures to ensure that
> exceptions are thrown if you try to access a property that has not
> been formally defined.
>
> For that matter, most ORMs (a typical example of where dynamic
> properties would come in handy) don't rely on dynamic properties
> either - they rely on __get() and __set() and store the actual values
> in a single property, as an array. So even for highly dynamic
> components in modern frameworks, this is not a feature that is often
> used.
>
> Drupal-development aside, and perhaps some XOOPS-development back in
> the dark ages, I can't actually recall when I've used dynamic
> properties.
>
> I suddenly realize why certain heavily-used classes in the Yii
> framework have obscure property-names like $_m and $_p ... they're
> trying to save memory. Not really logical that you should have to
> compromise legible code in favor of saving memory.
>
> Makes me wonder if this issue could be addressed, killing two birds
> with one stone. Since the dynamic aspect is an inconvenience to many
> developers, and since it causes memory-overhead whether they make use
> of this feature or not, how about introducing a non-dynamic
> alternative base-class that actually throws if you access properties
> that have not been defined?
>
> This wouldn't change the way PHP objects work by default, but would
> lighten the memory-overhead in a lot of modern frameworks, and
> possibly speed up property-access too, since you can have a flat
> look-up table for class-properties; and could eliminate the need for
> an "object" or "component" base-class in frameworks...
>
>
> On Mon, May 21, 2012 at 2:55 PM, Stas Malyshev <smalys...@sugarcrm.com> wrote:
>> Hi!
>>
>>> How come it's necessary to store the property-names of every property
>>> in every object? For properties that have been defined in classes, why
>>> can't they be stored in a more efficient manner? (using lookup tables)
>>
>> No because you can add and remove properties freely at runtime.
>>
>>> I know the nature of PHP is dynamic, and I know that dynamic
>>> properties would have to be stored in a key/value form internally...
>>> but if you look at modern PHP software, dynamic properties is actually
>>> something very few people use.
>>
>> This is not true.
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>



-- 
Tom Boutell
P'unk Avenue
215 755 1330
punkave.com
window.punkave.com

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

Reply via email to