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

Résolu
patrice86 Messages postés 1380 Date d'inscription   Statut Membre Dernière intervention   -  
patrice86 Messages postés 1380 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

1 réponse

miramaze Messages postés 1429 Date d'inscription   Statut Contributeur Dernière intervention   92
 
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.
0
patrice86 Messages postés 1380 Date d'inscription   Statut Membre Dernière intervention   125
 
Salut,

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