rfc:object-model-improvements
This is an old revision of the document!
Request for Comments: Object Model Improvements
- Version: 1.0
- Date: 2011-02-24
- Author: Martin Scotta martinscotta@gmail.com
- Status: Under Discussion
- First Published at: http://wiki.php.net/rfc/object-model-improvements
Introduction
The purpose of RFCs is to improve the current PHP5 object model.
Why do we need this
Actual PHP5 object model provides the basic for Object Oriented programming but it lacks for support for library or third parties developers.
New Features
- Constructors
- Provide a default empty constructor (if applicable)
- Remove the inheritance
- Disallow directly calls to them
- Ensure constructor call on parent classes
- Magic methods:
- disallow directly call from outer context?
- markers interfaces
- class / interface
- provide a magic constant with the fully qualified class name
<?php namespace Foo { class Baz {} } namespace Test { use \Foo\Baz; interface Marker {} class Bar implements Marker {} var_dump( Marker::CLASS ); // string "Test\Marker" var_dump( Baz::CLASS ); // string "Foo\Baz" var_dump( Bar::CLASS ); // string "Test\Bar" }
- errors into exceptions
- Improve PHP Exception class
- Remove errors/warnings, throw an Exceptions instead
- Better stacks dump
try { include $file; // as of today we just die here } catch(PHPParseException $e) { echo $e->getMessage(); throw new DomainException($e); }
Changelog
rfc/object-model-improvements.1299161514.txt.gz · Last modified: 2017/09/22 13:28 (external edit)