Immutable

Über das Interface \Alvine\Types\Immutable können Klassen als unveränderlich gekennzeichnet werden. Dadurch kann schon im Vorfeld überprüft werden, ob das Objekt veränderbar ist.

class myClass implements \Alvine\Types\Immutable {

}

Möchte man eine Klasse explizit als veränderbar kennzeichnen, so kann man das über das \Alvine\Types\Mutable machen.

class myClass implements \Alvine\Types\Mutable {

}

Hinweis

Klassen dürfen nur eines der beiden Interfaces implementieren und nicht beide. Folgendes führt zu einem Fehler:

class A implements Mutable, Immutable {