Yii2 Db ActiveRecord магия повсеместна.
Zend Skeleton Application - работает на __invoke
И ещё куча чего использует их предположим такой код.
class Test{
private $id = 10;
public function __get( $name ){
$name = ucfirst($name);
return call_user_func( [ $this, "get{$name}"] );
}
public function getId(){
return $this->id * 10;
}
}
$t = new Test();
echo $t->id; // Out 100
Это совсем утрированный пример. Так можно getId сделать protected или private. и внутри метода творить что угодно. а ощущение будет что обращаются к свойству. Ну и т.д. c __isset __unset __set и прочими.
__sleep __wakeup ещё не доводилось на практике использовать, но где-то несомненно могут понадобятся.