Re: Extending internal classes like mysqli
| From: | Bert Slagter | Date: | Wed, 26 May 2004 00:47:49 +0000 |
| Subject: | Re: Extending internal classes like mysqli | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-10091@lists.php.net to get a copy of this message | ||
The last few days I've been working with mysqli, and every hour I work with it, my worry grows. It's far from finished: no good documentation in the ext dir, below average online documentation, partly implemented object orientation (no destructor, no extensions allowed, etc).
Is there any chance this will get better soon? I heard on the PHP Conference in Amsterdam that both PHP 5 and MySQL 4.1 are expected to be final somewhere this summer, so I'd expect some improvement in this extension soon ;)
Bert
Bert Slagter wrote:
Hi Marcus, Thanks for your clear answer :). What are the future plans concerning this issue? Will I be able to just extend this class as I want? For which version is that planned? The answers to these questions heavily influence design choices I have to make now. Oh, and I'm curious why the article on Zend.com mentions that extendability is a key feature of mysqli. Even though it cannot be extended.. :) Bert Marcus Boerger wrote:Hello Bert, some of the internal classas cannot be extended and unfortunatley they are not marked as 'final' right now. For you that means you need to extend it by a proxy class that reimplements the original class protocol and uses the original class as a property. Friday, May 21, 2004, 2:52:08 PM, you wrote:Good afternoon!Could anyone explain what we're supposed to do with internal classes like the mysqli class.In an article on Zend.com (http://www.zend.com/php5/articles/php5-mysqli.php) the fact that the object oriented interface can be extended is brought as a major feature. But it seems that it's impossible to extend the mysqli class, see my bug at http://bugs.php.net/bug.php?id=28430.What I want is this. I need some custom logging for my database layer. So I want to extend the mysqli class and overwrite one or two methods and add some custom methods.Shouldn't I be able to just do:class foo extends mysqli { }$foo = new foo();Right now this doesn't work - the variable $foo->thread_id isn't available for example.Is this intended behaviour?Bert Slagter