Commit 95d226e3 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Dépôt initial

parents
<?php
namespace UnicaenUtilisateurOctopusAdapter;
use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;
use Zend\Stdlib\ArrayUtils;
use Zend\Stdlib\Glob;
use Zend\Config\Factory as ConfigFactory;
class Module
{
public function onBootstrap(MvcEvent $e)
{
$e->getApplication()->getServiceManager()->get('translator');
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
/* Active un layout spécial si la requête est de type AJAX. Valable pour TOUS les modules de l'application. */
$eventManager->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch',
function (MvcEvent $e) {
$request = $e->getRequest();
if ($request instanceof HttpRequest && $request->isXmlHttpRequest()) {
$e->getTarget()->layout('layout/ajax.phtml');
}
}
);
}
public function getConfig()
{
$configInit = [
__DIR__ . '/config/module.config.php'
];
$configFiles = ArrayUtils::merge(
$configInit,
Glob::glob(__DIR__ . '/config/merged/{,*.}{config}.php', Glob::GLOB_BRACE)
);
return ConfigFactory::fromFiles($configFiles);
}
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
}
{
"name": "unicaen/utilisateur-octopus-adapter",
"description": "Module fournissant le service pour l'adpatation de unicaen/octopus sur unicaen/utilisateur",
"repositories": [
{
"type": "composer",
"url": "https://gest.unicaen.fr/packagist"
}
],
"require": {
"unicaen/utilisateur": "dev-zf-3.x",
"unicaen/octopus": "dev-zf-3.x"
},
"autoload": {
"psr-0": {
"UnicaenUtilisateurOctopusAdapter": "src/"
},
"classmap": [
"./Module.php"
]
}
}
<?php
use UnicaenUtilisateurOctopusAdapter\Service\OctopusService;
use UnicaenUtilisateurOctopusAdapter\Service\OctopusServiceFactory;
return [
'service_manager' => [
'factories' => [
OctopusService::class => OctopusServiceFactory::class
],
],
];
\ No newline at end of file
#Unicaen Utilisateur Octopus Adpater
## But du module
Le but de cet adaptateur est de fournir une service effectuant une recherche dans Octopus en garantissant le contract des
interface de `Unicaen/Utilisateur` : `RechercheIndividuServiceInterface` et `RechercheIndividuResultatInterface`.
Cela sans modification de `Unicaen/Octopus`.
## Historique des versions
**version 0.1.1** 16/10/2019
- version initial fournissant le service de recherche
## Amélioration et/ou changement à venir
Lorsque la gestion des comptes sera intégrer à Octopus penser à modifier les fonctions associées :
1. `OctopusIndividu::getUsername()`
1. `OctopusIndividu::getEmail()`
\ No newline at end of file
<?php
namespace UnicaenUtilisateurOctopusAdapter\Entity;
use Octopus\Entity\Db\Individu;
use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuResultatInterface;
class OctopusIndividu implements RechercheIndividuResultatInterface {
/** @var Individu $individu */
private $individu;
/**
* @return Individu
*/
public function getIndividu()
{
return $this->individu;
}
/**
* @param Individu $individu
* @return Individu
*/
public function setIndividu($individu)
{
$this->individu = $individu;
return $this->individu;
}
/** Fonction de l'interface RechercheIndividuResultatInterface */
public function getId() {
return $this->individu->getCIndividuChaine();
}
/** TODO changer lorsque le compte sera lié dans octopus */
public function getUsername()
{
return $this->individu->getCIndividuChaine();
}
public function getDisplayname()
{
return $this->individu->__toString();
}
/** TODO changer lorsque le compte sera lié dans octopus */
public function getEmail()
{
return "ne-pas-repondre@unicaen.fr";
}
}
\ No newline at end of file
<?php
namespace UnicaenUtilisateurOctopusAdapter\Service;
use Octopus\Service\Individu\IndividuServiceAwareTrait;
use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuResultatInterface;
use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuServiceInterface;
use UnicaenUtilisateurOctopusAdapter\Entity\OctopusIndividu;
class OctopusService implements RechercheIndividuServiceInterface {
use IndividuServiceAwareTrait;
/** Fonctions associées à l'interface RechercheIndividuServiceInterface */
/**
* @param $id
* @return \UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuResultatInterface|void
*/
public function findById($id)
{
$individu = $this->getIndividuService()->getIndividu($id);
return $individu;
}
/**
* @param string $term
* @return RechercheIndividuResultatInterface[]
*/
public function findByTerm(string $term)
{
$individus = $this->getIndividuService()->getIndividusByTerm($term);
$result = [];
foreach ($individus as $individu) {
$octopusIndividu = new OctopusIndividu();
$octopusIndividu->setIndividu($individu);
$result[] = $octopusIndividu;
}
return $result;
}
}
\ No newline at end of file
<?php
namespace UnicaenUtilisateurOctopusAdapter\Service;
use Interop\Container\ContainerInterface;
use Octopus\Service\Individu\IndividuService;
class OctopusServiceFactory {
/**
* @param ContainerInterface $container
* @return OctopusService
*/
public function __invoke(ContainerInterface $container) {
/**
* @var IndividuService $individuService
*/
$individuService = $container->get(IndividuService::class);
/** @var OctopusService $service */
$service = new OctopusService();
$service->setIndividuService($individuService);
return $service;
}
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment