Crew algemeen |
|
Citaat: We are going to use an interface in our database abstraction layer, to ensure that every time we create a class for a particular database, it exposes the same API. When using them, we can then rely on the methods defined in the interface being part of the class, because, if they are not, PHP will not parse it.
Een interface wordt gebruikt als je zeker wil weten dat de implementerende (raar woord ) class alle methodes van de interface class gedefinieerd heeft. Als je in de interface zet dat er een functie connect() is, maar als die niet in de implementerende class staat geeft php een foutmelding:
interface DB {
function connect();
}
class MySQL implements DB {
}
interface DB { function connect(); } class MySQL implements DB { }
==>Citaat: Fatal error: Class MySQL contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (DB::connect)
Je kan hetzelfde bereiken door in plaats van een interface een abstracte class te maken en voor elke functie die in de extendende (weer zo'n raar woord ) class voor moet komen "abstract" te zetten. Dan geeft php ook een foutmelding als de functie niet bestaat in die extendende class. |