[PHP-DEV] Required __construct call in SplFileObject

2012-12-05 Thread Christoph Rosse

Hi,

I'm just curious is there a reason why SplFileObject requires a call to 
parent::__construct()
if I override the class? Someone on my twitter feed mentioned it because 
he tried to create a Mock-Object.


The following code gives me:
PHP Fatal error:  Uncaught exception 'LogicException' with message 'The 
parent constructor was not called: the object is in an invalid state


?php

class cls1 extends \SplFileObject
{
public function __construct()
{

}


public function fpassthru()
{
}
}
$cl = new cls1();
$cl-fpassthru();


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



Re: [PHP-DEV] Required __construct call in SplFileObject

2012-12-05 Thread Paul Dragoonis
The way this class is designed, it needs to take the file name via the
constructor as an initiation point.

if you try to call a method of this class without initiation occurring it
will throw an exception.

this is why you must instantiate the SplFileObject's __construct() method
to start the initiation.

Hope this helps.
Paul.

On Wed, Dec 5, 2012 at 2:38 PM, Christoph Rosse c...@okto.tv wrote:

 SplFileObject


Re: [PHP-DEV] Required __construct call in SplFileObject

2012-12-05 Thread Christoph Rosse

Maybe this should be mentioned in the docs.
I know how to use http://edit.php.net but where do I put this kind of 
information?
In the __construct method documentation 
http://php.net/manual/en/splfileobject.construct.php or somewhere else?


On 12/05/2012 03:46 PM, Paul Dragoonis wrote:

The way this class is designed, it needs to take the file name via the
constructor as an initiation point.

if you try to call a method of this class without initiation occurring it
will throw an exception.

this is why you must instantiate the SplFileObject's __construct() method
to start the initiation.

Hope this helps.
Paul.

On Wed, Dec 5, 2012 at 2:38 PM, Christoph Rosse c...@okto.tv wrote:


SplFileObject




Re: [PHP-DEV] Required __construct call in SplFileObject

2012-12-05 Thread Paul Dragoonis
You could put it either inside introduction or just below it, in the 'info'
style, just to inform people they must call parent::__construct() upon
instantiation of their object in order to use this.


On Wed, Dec 5, 2012 at 2:46 PM, Paul Dragoonis dragoo...@gmail.com wrote:

 The way this class is designed, it needs to take the file name via the
 constructor as an initiation point.

 if you try to call a method of this class without initiation occurring it
 will throw an exception.

 this is why you must instantiate the SplFileObject's __construct() method
 to start the initiation.

 Hope this helps.
 Paul.

 On Wed, Dec 5, 2012 at 2:38 PM, Christoph Rosse c...@okto.tv wrote:

 SplFileObject