Outils pour utilisateurs

Outils du site


stage:valadon:btssio:2020:rodrigues.anthony:compte.rendu.hebdo2:semaine5

RODRIGUES Anthony | BTS SIO SLAM 2ème année


COMPTE RENDU HEBDO | SEMAINE N°5


Lundi 1 février

  • Recherche sur la connexion entre Symfony et l'API
  • Création d'un service permettant de faire le pont avec l'API
class CallApiService
{
    function get($resource){
        $apiUrl = 'http://localhost:8888/Sadem/wordpress/wp-json/wp/v2';
        $json = file_get_contents($apiUrl.$resource);
        $result = json_decode($json);
        return $result;
}
}
  • Création de la page Articles avec des cards Bootstrap

  • Création de la page Article qui permettra de voir un seul article
  • Configuration des routes :
    #[Route('/articles', name: 'articles')]
    #[Route('/article/{id}', name: 'article')]
  • Injection de mon service dans le contrôleur Articles
  • Création de la première version de récupération des articles depuis l'API
    • Adaptation des données reçu : titre/description/id
  • Affichage des données dans les card avec une boucle sur twig
  • Affichage des articles avec les premiers caractères de l'article : fonctionnel

Mardi 2 février

Après la mise à jour du plugin permettant la création des articles sous Elementor, tout travail sur la recherche des fichiers includes devient obsolète : il faudra trouver une autre solution !

  • Appel avec Florian le développeur pour faire un point sur les avancées du projet
    • Restructuration de l'architecture afin de dissocier les parties (ex : Services, admin, front)
    • Séparation entre le frontend Symfony (non crée) avec le backend gestion des articles (coté admin)
    • Reconfiguration des routes et des NameSpaces
admin:
    resource: "../src/Controller/Admin"
    prefix: "/admin"
    type: annotation
  • Recherches afin de rendre la solution moins instable avec les MAJ de Elementor
  • Suppression du contrôleur de deconnection afin de l'intégré dans le contrôleur de connection

Mercredi 3 février

  • Recherche d'une solution afin d'avoir un système de récupération du css et script fiable
  • Création d'un plugin wordpress qui permet de récupéré un fichier html et parcourir ses éléments
  • Création d'un nouveau endpoint wordpress avec le plugin crée
add_action('rest_api_init', 'gw_register_rest_field');
 
function gw_register_rest_field()
{
    register_rest_field(
        'post',
        'more_info',
        array(
            'get_callback'    => 'gw_fetch_post_cont',
            'schema'          => null,
        )
    );
}

Wordpress propose une fonction add_action() qui permet d'ajouter un nouveau endpoint. On remarque que gw_register_rest_field est une fonction callback qui elle même effectuera les traitements sur la page afin de transmettre à notre API les données sur les fichiers css et scripts.

Jeudi 4 février

  • Développement de la fonction callback gw_fetch_post_cont qui permet de parcourir les éléments css, script et style d'une page
//exemple pour récupéré les balises scripts
foreach ($document->getElementsByTagName('script') as $script) {
            if ($script->hasAttribute('src')) {
                if ($script->hasAttribute('id')) {
                    $scripts_array['script'][] = "<script src='" . $script->getAttribute('src') . "'id='" . $script->getAttribute('id') . "'></script>";
                }
            } else if ($script->hasAttribute('id')) {
                $scripts_array['script'][] = "<script id='" . $script->getAttribute('id') . "'>" . $script->nodeValue . "</script>";
 
            } else {
            $scripts_array['script'][] = "<script>" . $script->nodeValue . "</script>";
            }
        }

Le script ci-dessus permet seulement de reconstituer les liens vers les scripts :

<script src='localhost/wp-includes/js/comment.min.js' id='comment-js'></script>
  • 3 scripts ont été développé afin de reconstruire les liens vers les stylesheets, les scripts et les balises styles.

Vendredi 5 février

  • Sécurisation du nouveau endpoint (peut-être mise en place d'un token ?)
  • Ajout des sécurisation si certain lien avec les scripts n'ont pas d'id
  • Mise en place de plusieurs conditions de sécurité pour tout reconstruire sans erreur
  • Interdiction d'accès au script et header : Cross-origin
  • Redefinition des entêtes de réponse afin de ne plus avoir d'interdiction Cross-origin
  • Teste de création de plusieurs articles : récupération et affichage de toutes les données fonctionnel sur Symfony !

Retour

stage/valadon/btssio/2020/rodrigues.anthony/compte.rendu.hebdo2/semaine5.txt · Dernière modification: 2022/02/04 14:31 de rodrigues.anthony_educ-valadon-limoges.fr