J'ai étudié les nouvelles fonctionnalités de PHP7 et j'ai pensé que je pourrais commencer à préparer mon projet pour les nouvelles fonctionnalités qu'il introduit, comme les indicateurs de type scalaire.Recherche de type et constructeurs multiples
L'un des premiers problèmes que j'ai rencontrés a été mes constructeurs dans diverses classes. J'ai quelques contrustors génériques qui agit quelque chose comme ceci:
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);
}
}
Introducing type hinting pour cette méthode erreurs jeter bien sûr dans toutes les directions. Pour autant que je sache, PHP7 ne présente pas de support pour plusieurs constructeurs. Existe-t-il des moyens de contourner ce problème ou s'agit-il d'une des limitations de la langue?
Ne pas introduire les indications de type pour cette méthode? –
@ N.B. Ouais, je sais que c'est une possibilité, mais venant de OOP-background, j'aimerais vraiment que mon code soit entièrement orienté objet;) – OptimusCrime
La programmation et la POO sont spécialement conçues pour résoudre les problèmes. Vous n'avez aucun problème à résoudre via la programmation, vous souffrez de TOC et maintenant vous avez confondu ce TOC avec la limitation de la langue. Malheureusement, ce n'est pas une limitation de la langue. C'est juste une épine dans votre côté parce que vous avez un constructeur stupide qui accepte n'importe quoi et maintenant vous voulez taper l'indice via 3 constructeurs quelle est la valeur. Est-ce vraiment "OOP"? Code complexe et stupide qui ne résout aucun problème? –