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 addaction() qui permet d'ajouter un nouveau endpoint. On remarque que gwregisterrestfield 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