Skip to content

VincentProuchet/symFreeBlog

Repository files navigation

FREE BLOGGING

est un back-end en REST pour un blog compatible avec l'hébergement des pages perso de l'opérateur français FREE

conditions de développement

Quand j'ai le temps, je suis aussi en train de porter mes connaissances sur les API Rest vers C# et le .Net ce qui est prioritaire pour des raisons personnelles.

L'environnement

  1. le serveur fournit un php en 5.6.34

  2. ils nous offre nombres de variables prédéfinies par le serveur, que je n'ai pas encore réussit à configurer dans mon serveur de test, je ne suis pas encore un gourou PHP.

  3. une configuration proche est disponible dans le fichier free_blogging.ini. Il vous est cependant inutile de vous torturer à l'utiliser car vous pourrez faire les modifications des appels de fonctions désactivées avant l'upload.

  4. Je publirais une distribution contenant tout, y comprit ce que l'ont trouve dans le dossier vendor. J'ai crée une abstraction supplémentaire que je compte bien ajouter directement à une version de symfony.

Contraintes

l'environement server n'est pas modifiable

les fonctions php suivantes sont bloquées :
- - - -
chown chmod get_current_user php_uname
putenv set_time_limit getmyuid getmypid
dl ini_alter ini_restore realpath
tmpfile link shell_exec proc_open
chroot sleep usleep umask
set_include_path restore_include_path ini_set exec
passthru system popen pclose
leak mysql_list_dbs listen chgrp
disk_total_space disk_free_space rmdir openlog
closelog syslog flock socket_create_listen
socket_accept socket_listen symlink setlocale
imagerotate - - -

Source dans les pages d'aides de FREE

problème de POST Il est impossible d'utiliser les requêtes POST en RAW (donc pas de corps en Json). Celà provoque l'affichage d'une erreur serveur lié à la déprecation d'une fonctionnalitée de php. Les autre requêtes GET, PUT, PATCH, DELETE ne sont pas affectées par ce problème qui n'est qu'une erreur de configuration du serveur, erreur pardonnable, les API REST n'étaient pas à la mode lors de la mise en ligne des serveurs.

celà pourrait être corrigé en ajoutant la ligne always_populate_raw_post_data = -1 dans le php.ini du serveur et un redémarrage. Mais le esrvice de gestion des pages persos de FREE ne répond pas au demandes des utilisateurs on vas devoir se passer de cette solution.

Avouez que ce serait moins amusant si il n'y avait pas un peu de challenge.:stuck_out_tongue_winking_eye:

Framework

Notre petit outil de blogging utilise Symfony en 3.4 que vous pouvez trouver ici :
plus précisément le symfony standard edition qui créer un projet symfony pré-configuré ce qui est bien pratique.
le site du framework est ici : pour son aide en ligne

Configuration du Framework

Symfony Standard Edition est configuré avec les éléments suivants par défaut:

  • AppBundle qui est le répertoire ou l'ont mettrat la majorité du code

  • Twig comme moteur de template ;

  • Doctrine ORM/DBAL;

  • Swiftmailer;

  • Annotations activées pour tout.

  • FrameworkBundle - le coeur du Symfony framework bundle

  • SensioFrameworkExtraBundle

    • Ajoute nombre d'outils facilitant le développement la capacité de routage et de template par annotation
  • DoctrineBundle - support pour Doctrine ORM

  • TwigBundle - Moteur Twig template

  • SecurityBundle - Security Par l'intégration de Symfony security component

  • SwiftmailerBundle - Support de Swiftmailer, library pour l'envoi d'emails

  • MonologBundle - Monolog, library pour les log du framework

  • WebProfilerBundle (in dev/test env) - Ajoute du profiling et la tooolbar de débug

  • SensioDistributionBundle (in dev/test env) - Adds functionality for configuring and working with Symfony distributions

  • SensioGeneratorBundle (in dev env) - Adds code generation capabilities

  • WebServerBundle (in dev env) - Adds commands for running applications using the PHP built-in web server

  • DebugBundle (in dev/test env) - Adds Debug and VarDumper component integration

Toutes les librairies et les bundles sont distribués sous les licences MIT ou BSD

Adaptation du framework

Le framework est modifié pour qu'il n'appelle pas directement les fonctions désactivées par le fournisseur de service. Pour celà j'ai crée une la classe FFF (Oui je compte la renommer) qui superpose une couche d'abstraction suplémentaire. La classe est injectée par un require directement dans index.php et bin/console les appels de fonctions sont remplacés en les préfixant de : \Utility\FFF:: comme il n'existe pas encore de distribution de symfony 3.4 avec ses modifications il faut le faire soit-même par une search&replace (merci eclipse). Ce ne serat plus utile lorsque j'aurais publié une archive du projet incluant les dépendences modifiées.

About

Un outil de blogging compatible avec les pages persos de FREE

Topics

Resources

License

Stars

Watchers

Forks