[PHP 7] Typage d'un paramètre d'une fonction

[Résolu/Fermé]
Signaler
Messages postés
1370
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
10 septembre 2021
-
Messages postés
1370
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
10 septembre 2021
-
Bonjour,

Je développe une application sous Zend Framework et celle-ci est découpée en plusieurs modules.
Je souhaite créer une interface dans un module Elastic et une des méthodes doit prendre en paramètre une des classes présentes dans un dossier d'un autre module Pim

<?php

namespace Elastic\Model;

/**
 * Interface Indexes
 * @package Elastic\Model
 */
interface Indexes
{
    [....]
    
    /**
     * @return mixed
     */
    public function addElasticStatement(Pim\Entity\*);

    [....]
}


Seulement, les classes qui "impléments" mon interface Indexes doivent pouvoir envoyer un paramètre de la fonction addElasticStatement une des classes présentes dans le dossier Pim\Entity\ :
- Pim\Entity\Article
- Pim\Entity\Categorie
- Pim\Entity\Product
....

En gros, la classe Elastic/Model/Article doit pouvoir envoyer comme paramètre de la méthode la classe Pim/Entity/Article.
La classe Elastic/Model/Product doit pouvoir envoyer comme paramètre de la méthode la classe Pim/Entity/Product.
etc, etc....

Une idée de comment typer le paramètre de façon "globale" ?
Merci

1 réponse

Messages postés
1428
Date d'inscription
mercredi 29 juillet 2009
Statut
Contributeur
Dernière intervention
24 janvier 2019
93
Salut,
je sais pas si je comprends correctement ce que tu veux faire, mais je dirais en implémentant une interface générique Entity puis ensuite en faisant en sorte que tes classes implémentes cette interface et enfin en typant ta méthode addElasticStatement avec cette interface générique.
Messages postés
1370
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
10 septembre 2021
127
Salut,

En effet c'est la bonne solution. J'avais oublié le typage par interface.
Merci :)