Adds two new database object interface.
authorMatthias Schmidt <gravatronics@live.com>
Sat, 30 Jun 2012 10:10:26 +0000 (12:10 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Sat, 30 Jun 2012 14:01:12 +0000 (16:01 +0200)
commitee3e82c15187de7023c93db05254a668fb304600
tree50c677d66b9d12e0532bb796944e02a1175f8008
parent506457dd290d5861b1f8d21fc657c1f4806d563f
Adds two new database object interface.

The two new database object interfaces are:

- `wcf\data\ILinkableDatabaseObject`
- `wcf\data\ITitledDatabaseObject`

These interfaces **only** exist to avoid the problem of extending two different interfaces with the same method.

For example, a certain database object implements `wcf\system\request\IRouteController` which has a method `getTitle()` and also implements another interface (e.g. `wcf\data\IOtherDatabaseObject`) which requires the same method. PHP can't handle that: `Can't inherit abstract function IRouteableDatabaseObject::getTitle() (previously declared abstract in IOtherDatabaseObject)`.

If both interfaces extend the `wcf\data\ITitledDatabaseObject` interface, PHP has no problem and this avoids having to rename the `getTitle()` method in the second interface to a (hopefully) unique name like `getOtherTitle()` which would also pollute the class with methods doing the same thing, just having a different name.
wcfsetup/install/files/lib/data/ILinkableDatabaseObject.class.php [new file with mode: 0644]
wcfsetup/install/files/lib/data/ITitledDatabaseObject.class.php [new file with mode: 0644]
wcfsetup/install/files/lib/system/request/IRouteController.class.php