rfc:object-model-improvements
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
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
rfc/object-model-improvements.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1