le static qui est apparut dans php5.3 est effectivement de plus en plus utilisé et pour cause. Déjà on peut le voir sur certaine class du coeur dans Symfony2 ou bien dans ZendFramework 2 aussi et déjà dans le 1 les class et méthode static utilisait le static:: plutôt que le self::.
Dans Fuelphp et Laravel les "Late statics Binding" sont abondamment utilisé (peut être un peu trop à mon goût mais bon).
Pourquoi ? :
- Les méthodes static sont plus rapide que les méthodes objet "->" non static.
- Les class utilisant le Late Static Binding vont éviter la duplication d'objet et au lieu de créer un nouvel objet comme on le faisait fréquemment avec des $obj = new $coreObject(); afin de pouvoir appeler ses méthodes, on va directement le faire de cette façon Core::Mamethode() static ou attribut & co.
- On évite de passer par un pattern singleton du coup même si de toute manière on va utiliser tout de même ce pattern dans les class static avec une methode static::instance() qui fera office du constructeur.
Cel évite la duplication et doublons d'une instance de class. On ne va pas le faire sur toute nos class bien entendu mais certain ayant une vocation propre au noyau, une class autonome.
Ce qui est déroutant c'est effectivement les instances de new Static() cela rend dynamique l'appelle de la class plutôt que d'utiliser new className() mais c'est surtout afin de pouvoir bénéficier de l'instance courante de notre class à un instant T.