<?php
class Entity {
/**
* @var array|stdClass|Collection|string
**/
private $mixed;
public function getMixedAsPhpArray(array $filter) {
return EntityHelper::toPhpArray($this->mixed, $filter);
}
}
die obige Klasse gegeben, wie würden Sie den statischen Aufruf zu EntityHelper::toPhpArray
Annahme $mixed
konnte durch eine der Arten im PHPDoc-Block entfernen? (Dies ist nur ein vereinfachtes Beispiel für ein Problem, das ich habe, wo ich eine Funktion habe, "dreckig rein und raus") (Ich kann es der Entität nicht hinzufügen, da viele Entitäten diese Funktion benötigen und nicht von einer Entität abtretten können mit dieser Methode, wie sie bereits verschiedene andere erweitern).Ersetzen PHP statische Methoden in Entities, Best Practices
Ich benutze Symfony und dachte an DI in den Helfer, aber alle new Entity
mit einem Aufruf an den Service-Container zu ersetzen wäre eine schlechte (und langsame) Idee. Eine andere Idee wäre, die schmutzige Ausgabe zurückzugeben und einen Dienst zu verwenden, um ihn zu säubern und zu filtern, aber ich denke auch, dass das eine schlechte Idee ist, da alle Daten von der Entität in die Anwendung und dann in den Dienst übernommen werden gehen Sie und entfernen Sie Fehler (und vielleicht Speicherverbrauch ...).
Warum möchten Sie es entfernen? Lassen Sie es intern so wie es ist, aber stellen Sie sicher, dass die Methode mit Unit-Tests abgedeckt ist. –