Bonjour,
j'ai crée un StatsService, je souhaiterai afficher le résultat de la fonction dans Twig, par exemple : {% readStats() %}. Cependant j'ai essayé divers méthodes mais rien n'abouti, pouvez m'éclairer sur le sujet? Merci d'avance.
Le statsService :
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 <?php namespace App\Service; use Twig\TwigFilter; class StatService { public function getStats() { $ip=fopen('last_ip.txt', 'c+'); $check=fgets($ip); $file=fopen('counter.txt', 'c+'); $count=intval(fgets($file)); //si l'ip du dernier visiteur est différent on incrémente de 1 if($_SERVER['REMOTE_ADDR'] !=$check){ fclose($ip); //w+ = ecrase les données dans le fichier $ip=fopen('last_ip.txt', 'w+'); fputs($ip, $_SERVER['REMOTE_ADDR']); $count++; fseek($file,0); fputs($file,$count); } fclose($file); fclose($ip); } public function readStats(){ $filename="C:\Blog\Axo\public\counter.txt"; $handle=fopen($filename,'r'); $contents=fread($handle,filesize($filename)); fclose($handle); echo $contents; return $contents; } }
ensuite la vue :
Code twig : 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 {% extends 'admin/blog/base.html.twig' %} {% block title %}Tableau de bord {% endblock %} {% block body %} <div class="container-fluid"> <div class="row"> <div class="col"> <div class="card bg-primary text-white mb-3 text-center"> <div class="card-body"> <div class="row"> <div class="col-4"> <i class="fas fa-users fa-3x"></i> </div> <div class="col-8"> <h4 class="card-title">{%readStats()%}</h4> </div> </div> </div> </div> </div> <div class="col"> <div class="card bg-dark text-white mb-3 text-center"> <div class="card-body"> <div class="row"> <div class="col-4"> <i class="fas fa-newspaper fa-3x"></i> </div> <div class="col-8"> <h4 class="card-title">{{ stats.articles }} articles publiés</h4> </div> </div> </div> </div> </div> <div class="col"> <div class="card bg-warning text-white mb-3 text-center"> <div class="card-body"> <div class="row"> <div class="col-4"> <i class="fas fa-registered fa-3x"></i> </div> <div class="col-8"> <h4 class="card-title">{{ stats.users }} inscrits</h4> </div> </div> </div> </div> </div> <div class="col"> <div class="card bg-success text-white mb-3 text-center"> <div class="card-body"> <div class="row"> <div class="col-4"> <i class="fas fa-plug fa-3x"></i> </div> <div class="col-8"> <h4 class="card-title">xxx connexions</h4> </div> </div> </div> </div> </div> </div> </div> {% endblock %}
Partager