the multiplication of magic, the pointed point, need to read more carefully

On Tue, Jan 12, 2010 at 6:10 PM, Eddie Drapkin <oorza...@gmail.com> wrote:
> How does this have *anything* to do with the discussion at hand?
>
> On Tue, Jan 12, 2010 at 9:09 PM, mm w <0xcafef...@gmail.com> wrote:
>> don't worry it's only for people who are working with MVC and
>> RootObject structure, there is too much magics already and __cast is
>> not needed at all,
>> as we cannot monkey patch to add an observer on itself, a nice
>> solution should have a catchable object so __catch any calls
>>
>> function __catch($data, $type) {
>>    if (method == $type) {
>>         if (data[selector] = 'setValue' && observedValueForKeyPath) {
>>             $this->_setValue(($data['arg']);
>>             return;
>>         }
>>    }
>>    continue_natural_call();
>> }
>>
>> we could imagine to have a root-object-built-in-class that is
>> naturally observable, or a root classObject at all, anyway it's only
>> something for people who are doing OO programming,
>> so don't worry
>>
>> On Tue, Jan 12, 2010 at 2:40 PM, Chris Stockton
>> <chrisstockto...@gmail.com> wrote:
>>> Hello,
>>>
>>> On Mon, Jan 11, 2010 at 8:32 PM, mm w <0xcafef...@gmail.com> wrote:
>>>> cast is not needed in PHP
>>>>
>>>> i 'd rather be more interesting in
>>>>
>>>> class Obj {
>>>>     function __catch($data, $type) {
>>>>            //$type [ static_method, method, get_property, set_property]
>>>>            if (observed &&  $type == set_property && somevalueIsObserved) {
>>>>                  $observer->notify("somevalue::valueWillChanged");
>>>>                  $this->somevalue = $data['somevalue'];
>>>>                  $observer->notify("somevalue::valueDidChanged");
>>>>            } else {
>>>>                  continue__call();
>>>>            }
>>>>     }
>>>> }
>>>
>>> What? ...
>>>
>>>>> Etienne Kneuss wrote:
>>>>> This is where operator over-loading would be useful however perhaps only
>>>>> explicit casts would make sense here.
>>>
>>> I beleive adding a __cast(string $type) would be a useful feature for
>>> me, very often I have a toArray method defined. I agree with you that
>>> due to unexpected edge cases with operator precedence and general type
>>> juggling that __cast should only be called on explicit (cast).
>>>
>>> I.E.:
>>> class Int { public function __cast($type) { return 'int' == $type ? 15 : 0; 
>>> } }
>>> $r = new Int;
>>>
>>> var_dump($r + 1); // 2
>>> var_dump((int) $r + 1); // 16
>>> var_dump((bool) $r + 1); // 1
>>>
>>
>> --
>> 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