J'ai un projet dans symfony 2 ... et j'ai ce problème.comment séparer les fonctions et les appeler php
je ce fichier src/ApiV1Bundle/contrôleur/TeamsController.php sorcière ont ce contenu:
<?php
namespace ApiV1Bundle\Controller;
use AppBundle\Entity\Teams;
use ApiV1Bundle\Collection\TeamsCollection;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Cocur\Slugify\Slugify;
Class TeamsController extends Controller
{
/**
* Lists all Teams entities.
*
*/
public function getTeamsAction()
{
$em = $this->getDoctrine()->getManager();
$teams = $em->getRepository('AppBundle:Teams')->findBy(['active' => 1]);
$resource = [];
foreach ($teams as $team) {
array_push($resource, $this->displayTeam($team));
}
$response = new Response(json_encode($resource));
$response->setStatusCode(200);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
function displayTeam(Teams $team)
{
$slug = new Slugify();
$resource['id'] = $team->getId();
$resource['name'] = $team->getName();
$resource['slug'] = $slug->slugify($team->getName());
$resource['league'] = $slug->slugify($team->getLeagueId());
$resource['shield'] = $slug->slugify($team->getMultimediaId());
return $resource;
}
}
Et cela fonctionne parfaitement ... mais je besoin de séparer les fonctions auxiliaires, au code principal ... dans un fichier comme celui-ci.
Voici l'itinéraire: src/ApiV1Bundle/Collection/TeamCollection.php, avec ce contenu:
<?php
namespace ApiV1Bundle\Collection;
use AppBundle\Entity\Teams; use Cocur\Slugify\Slugify;
Class TeamsCollection {
function displayTeam(Teams $team)
{
$slug = new Slugify();
$resource['id'] = $team->getId();
$resource['name'] = $team->getName();
$resource['slug'] = $slug->slugify($team->getName());
$resource['league'] = $slug->slugify($team->getLeagueId());
$resource['shield'] = $slug->slugify($team->getMultimediaId());
return $resource;
}
}
Ceci pour conserver le fichier du contrôleur plus propre, mais je ne sais pas comment appeler cette nouveau fichier dans mon pilote, ou si je crée bien, ou si quelque chose manque.
Et à ce sujet? – Martin