Szukałem nowych funkcji dla PHP7 i pomyślałem, że mogę zacząć przygotowywać mój projekt dla nowych wprowadzanych funkcji, takich jak podpowiedź typu skalarnego.Podpowiedź typów i wielu konstruktorów
Jednym z pierwszych problemów, które napotkałem, byli moi konstruktorzy w różnych klasach. Mam pewne ogólne contrustors który działa mniej więcej tak:
public function __construct($data = null) {
if (is_numeric($data)) {
$this->controller->createById($data);
}
elseif (is_array($data)) {
$this->controller->createByArray($data);
}
elseif (strlen($data) > 0) {
$this->controller->createByUrl($data);
}
}
Wprowadzenie do typów parametrów dla tej metody będą oczywiście rzucić błędów we wszystkich kierunkach.
O ile wiem, PHP7 nie wprowadza obsługi wielu konstruktorów. Czy są jakieś sposoby na obejście tego problemu, czy jest to jedna z ograniczeń tego języka?
Nie wprowadzaj wskazówek dotyczących tej metody? –
@ N.B. Tak, wiem, że jest taka możliwość, ale pochodząc z tła OOP, bardzo chciałbym, aby cała moja baza kodowa była prawdziwie zorientowana obiektowo;) – OptimusCrime
Programowanie i OOP służą konkretnie do rozwiązywania problemów. Nie masz żadnych problemów, które wymagają rozwiązywania przez programowanie, cierpisz na OCD i teraz błędnie uznałeś to OCD za ograniczenie języka. Niestety, nie jest to ograniczenie języka. To po prostu trochę ciernia w twojej stronie, ponieważ masz jakiegoś głupiego konstruktora, który akceptuje cokolwiek, a teraz chcesz wpisać podpowiedź przez 3 konstruktorów, jaka jest wartość. Czy to naprawdę "OOP"? Złożony, głupi kod, który nie rozwiązuje żadnych problemów? –