====== Request for Comments: Object Model Improvements ====== * Version: 1.0 * Date: 2011-02-24 * Author: Martin Scotta * 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 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(Exception $e) { echo $e->getMessage(); throw new DomainException($e); } ===== Changelog =====