Re: Function __call

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Diogo Neves schreef:
Hi,

On Sat, Aug 30, 2008 at 6:20 PM, Jochem Maas <jochem@xxxxxxxxxxxxx> wrote:
please keep replies on list unless your intending to pay me
an hourly fee ...

Yeap, i'm new in the list and i missed te cc of list... i'll try to
remember, sorry

okay.

Diogo Neves schreef:

Now in understand "schreef" is from da system...

no my email client in in dutch ... it means 'wrote' ... actually that's
in the list archives already :-)

On Sat, Aug 30, 2008 at 4:40 PM, Jochem Maas <jochem@xxxxxxxxxxxxx> wrote:
Diogo Neves schreef:
...

nop... I wanna manipulate the $this and the $arguments, and possible
don't even execute the private method...

I'm tring to develop a "hook system" for my classes... and i simple
don't wanna to do all the hook verification every method of the class

I'll send my files for you to see what I'm doing in "do something" on
my __call() funtion
the code looks messy what with the global $hooks, functions required for
hooking

Yeap, but i'm only making tests... i'm not too horried about mess yet...

(the function name class_hooker() is very funny btw)

ok... i missed that in my english... added :)

and you seem to
be mixing static/non-static class calls willy-nilly.


I'm never calling something static, i'm?

er, no ... but I had to re-read the code a few times.


I'd rethink this if I we're you. if every can be hooked, then make the
hooking should be part of a base class, possibly a factory method for object
creation will help to keep things clean and in one place. a generic
'hooking'
decorator object might also be an idea. or maybe just using subclasses to
change/augment behaviour is a much simpler and cleaner approach.

yep... i'm thinking of a base class, but that has nothing to do with
the __call, if u see, i'm already passing the "get_class( $this )" and
not __CLASS__ on call_user_func of the user, but again only testing

your code makes me think of the hooking mechanism in WordPress ... works
okay,
but it's a nightmare to code to (imho).

right again, i'm trying to do a wapper for phpbb class's that have a
similar hook system, but needs to be defined method by method,
function by function... like a big mess... and even like that i don't
get yet the criteria to have a hook or not :)

as you are finding out, creating an elegant solution to this problem
is not as easy as it may seem ... especially if you stuck with
integrating to a 3rd party application.


BTW. function and method names beginning with '__' are considered reserved
by the engine, it's not best practice to name userland functions/methods
things like '__magic'


Yeap, in this case is my naming that is really pretty bad, but i
needed something diferent from the normal hookable methods, then I
simple added a '_'... but again tests, naming and code organization
was not a horry, only logic...

the single prefixed underscore to private method names will probably
be the easiest implementation ... note that passing every method call
via __call() is a rather large performance hit.


But again, i don't see why your php should see your class's private
methods outside of itself, it should simple look for a public one, if
it exists then call it, otherwise call the _call and let it handle it
:S


Anyway, thanks for answer me and give me that points, and if u know a
really good hoking system, please give me reference ;)


I guess AdultFriendFinder is not the right answer :-P


And please anyone else has an opinion of it should work or not?

again, NO it should NOT. it was not designed that way.

search the archives of internals@xxxxxxxxxxxxx for a possible answer as
to why, and you might considering asking that list why it doesn't work
the way you think it should ... note that I doubt very much it will change
because such a change would incur major BC breakage.

Thanks



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux