[PHP 7] Typage d'un paramètre d'une fonction [Résolu/Fermé]

Signaler
Messages postés
1363
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
27 février 2020
-
patrice86
Messages postés
1363
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
27 février 2020
-
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
87
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.
patrice86
Messages postés
1363
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
27 février 2020
110
Salut,

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