Diciamo che abbiamo una struttura come questa:
Application
-- Modules
--Module1
-- Controller
-- PublicHelper
--Module2
-- Controller
-- PublicHelper
In cui il Public Helper di un modulo può fornire funzioni di supporto.
In quasi ogni helper di moduli, l'helper deve accedere ai metodi di supporto pubblico di un altro modulo.
Diciamo per esempio, in un'applicazione PHP:
Module1 fornisce funzionalità per creare una vendita e come parte di
class Module1PublicHelper extends AbstractModuleHelper {
public function createSale($customerId, $param, $param)
{
$userPublicHelper = // grab an instance of the user public helper
$currentUser = $userPublicHelper->getCurrentUser();
}
}
class Module2PublicHelper extends AbstractModuleHelper {
public function getCurrentUser()
{
//do something
return $user;
}
}
In questa situazione, il metodo deve ottenere un'istanza, nuova o qualsiasi altra cosa del helper pubblico dell'utente.
Dato che tutte le classi di Public Helper del modulo sono istanziate con un set minimo di parametri del costruttore, ad es. EntityManager, quale sarebbe il modo migliore per ottenere una copia di esso?
Ovviamente, non possiamo davvero inserire la classe helper pubblica dell'utente nella classe contenente createSale
Una soluzione sarebbe utilizzare un localizzatore di servizi o un registro, tuttavia, testare l'applicazione non è esattamente facile.