Salut à tous,
Je réalise actuellement un site avec comme cœur de fonctionnement un champ de géolocalisation et un champ catégorie.
J'ai déjà l'ensemble qui fonctionne très bien.
comme je viens de le dire, mon appli fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 /** * @return Ad[] */ public function findAllVisibleQuery(AdSearch $search): array { if ($search->getLat() && $search->getLng() && $search->getCategory()) { return $this->findVisibleQuery() ->select('a') ->addSelect('(6353 * 2 * ASIN(SQRT( POWER(SIN((a.lat - :lat) * pi()/180 / 2), 2) +COS(a.lat * pi()/180) * COS(:lat * pi()/180) * POWER(SIN((a.lng - :lng) * pi()/180 / 2), 2) ))) AS HIDDEN distance') ->andWhere('a.category = :category') ->having('distance <= :distance') ->setMaxResults(AdSearch::NUMBER_OF_ITEMS) ->addOrderBy("distance", "ASC") ->setParameter('lng', $search->getLng()) ->setParameter('lat', $search->getLat()) ->setParameter('distance', AdSearch::DISTANCE) ->setParameter('category', $search->getCategory()) ->getQuery() ->getResult(); } }
Je voulais voir avec vous le pour et le contre concernant la bonne pratique pour utiliser ce genre de calcul.
Faut-il laisser le code comme ci-dessus ou il faut le mettre en procédure stockée ? sachant que la géolocalisation va être le cœur du site..donc pas mal de requête en perspective.
C'est la première fois que j'utilise cela avec Symfony donc je me demande s'il existe une solution pour la création de la fonction de procédure stockée dans Symfony autre que de passer par phpmyadmin bien sur. Par exemple un php bin/console make.. ou autre etc
Quelle est la bonne pratique sous sf5 ? ou bien, il y a t'il un schéma genre fichier dans sf pour écrire la fonction ou rien du tout c'est juste par phpmyadmin ?
je vous remercie j'espère que je suis clair dans mon message.![]()
Partager