Comment déployer une application symfony sur Heroku!

# 🌐 Projet Front-Back End Easy_Admin_YouTube_NewsLetter_Firebase![GitHub](https://github.com/vertingo/Easy_Admin_YouTube_Newsletter_Firebase)
=======================

Front:
Vertin Go Website Design By Mobirise(http://mobirise.com) + Front File Manager

Back end:
Api YouTube + FireBase(Push Notification) + NewsLetters + File Manager

#### Illustrations

Front-End

————————————

————————————

#### Ci-dessus tous vos fichiers upload sur le file manager regroupés sous forme de carousel automatique!

————————————
————————————
————————————
————————————
————————————
————————————
————————————

Ci-dessous un aperçu de la page Playlist Youtube généré automatiquement une fois votre compte synchronisé avec YouTube!

Back-End

————————————
————————————
————————————
————————————
————————————
Personnaliser votre Panel Football LiveScore en choississant votre championnat, joueur et club favori!
————————————
————————————
————————————
————————————
————————————
————————————
————————————
————————————
————————————
————————————

#### Installation Localement avec Xampp

Prérequis:

– *Gestionnaire de commande composer with xampp! ==> https://www.youtube.com/watch?v=v7uCji-WhjY

Une fois xampp installé il faut lancer le serveur apache et mysql illustré ci-dessous:

Assurer vous que les références à votre base de donnée sont bien renseignés dans parameters.yml.dist et parameters.yml. A priori les valeurs sont déjà correct pour l’environnement de dev! A noter qu’il faut bien distinguer config_dev.yml et config_prod.yml qui comme son nom l’indique sont deux fichiers de config propre à leur environnement dans lequelle l’application évolue! Soit local pour config_dev.yml et en ligne config_prod.yml!

Cliquer sur admin pour accéder à l’interface phpMyAdmin:

Une fois vos bases de données recréés elles seront accessibles dans PhpMyAdmin!

Pour les recréer voir les commandes ci-dessous:

composer install
php bin/console doctrine:database:create (Ou créer la base de donnée easy_admin directement dans phpmyadmin)
php bin/console doctrine:schema:create (Création des tables dans la base de donnée easy_admin)
php bin/console fos:user:create name test@example.com password (Utilisation du bundle fosuserbundle)
php bin/console fos:user:promote user ROLE_ADMIN (Afin de vous logger sur l'interface admin)
Page de login de l'admin interface ==> http://localhost/easyadmin-master/web/app_dev.php/login
Page de front interface ==> http://localhost/easyadmin-master/web/app_dev.php/intro

How to deploy on Heroku
Prérequis avant la phase de déploiement:Ajout des lignes suivantes dans le front controller de prod donc app.php dans le dossier web:

Request::setTrustedProxies(array($request->server->get(‘REMOTE_ADDR’)));
Request::setTrustedHeaderName(Request::HEADER_FORWARDED, null);
Request::setTrustedHeaderName(Request::HEADER_CLIENT_HOST, null);

Ajout d’un fichier procfile avec le contenu suivant spécifique pour les applications symfony dans le dossier web:web: vendor/bin/heroku-php-apache2 web/Ajouter une extension postgre pour la persistance des données:

Cliquer sur votre extension dans le sous menu du champs recherche:

Rendez-vous ensuite sur settings:

Aller sur view credentials:

Les différents champs doivent être ajouter dans le parameters.yml et parameters.yml.dist dans app/config dans les variables d’environnements prod donc database_host_prod. Pour database_host_mandanta et b il faut ajouter une fois de plus la même extension postgre! Il faut également préciser la variable d’environnement database url dans composer.json disponible une fois l’ajout de l’extension postgre effectué:

"incenteev-parameters": {
"file": "app/config/parameters.yml",
"env-map": {
"database_url": "DATABASE_URL",
"database_url2": "HEROKU_POSTGRESQL_BLUE_URL",
"database_url3": "HEROKU_POSTGRESQL_ONYX_URL",
"monolog_action_level": "LOG_LEVEL"
} }

Commande de Déploiement:
Prérequis installation des gestionnaires de commandes:
– *Git!(Git Cli)
– *Composer!(Composer Cli)
– *Heroku!(Heroku Cli)

Créer un projet sur Heroku, installer le gestionnaire de commande Heroku en local et taper les commandes suivantes:

heroku login
heroku create (Créer un nom d'app aléatoire sinon créer la sur Heroku directement!)
heroku git:remote -a nom_de_votre_app_heroku
heroku config:set ENV=PRODUCTION
git add .
git commit -am "make it better"
git push heroku master

Une fois déployé sur le serveur Heroku:
Il faut recréer la base donnée en se connectant à distance sur le terminal du serveur:

heroku run bash
php bin/console doctrine:schema:create (Création des tables dans la base de donnée easy_admin)
php bin/console fos:user:create name test@example.com password (Utilisation du bundle FosUserbundle)
php bin/console fos:user:promote user ROLE_ADMIN (Afin de vous logger sur l'interface admin)
Page de login de l'admin interface ==> https://platform-media.herokuapp.com/login
Page de front interface ==> https://platform-media.herokuapp.com/intro

Suppléments de configuration pour la connexion à YouTube:Créer un projet dans Google Cloud Console! Activer YouTube Data Api V3Cliquer sur créer des identifiants Id Client AuthOrigines JavaScript autorisées:
– http://votre_heroku_app.herokuapp.comEt URI de redirection autorisés:
– http://votre_heroku_app.herokuapp.com/admin/dashboard/
– http://localhost/easyadmin-master/web/app_dev.php/admin/dashboard/Une fois la clé créé copier coller cette clé puis renseigné la dans web/youtube:
– auth.js ligne 5
– analytics_codelab.js ligne 4

Ensuite si votre connexion via Google est bien configuré loger vous sur votre Interface Admin afin de synchroniser votre compte avec YouTube et ensuite accédez à la page: https://votre_heroku_app.herokuapp.com/listplaylist?pseudo=votre_nom_d_utilisateur
Voici l’exemple de ma page playlist automatiquement généré une fois connecté sur mon espace administrateur et la connexion établi via YouTube Api V3: https://platform-media.herokuapp.com/listplaylist?pseudo=vertingo

Ci-dessous la page Playlist Youtube généré une fois synchronisé avec YouTube!

#### Synchroniser avec l’application mobile:

– Des fichiers uploads sur le File Manager.
– Des vidéos et playlist de votre chaîne YouTube.
– Google Cloud Messaging pour réception de notification push. Ci-dessous illustration de la synchronisation avec l’application mobile TopsiteApp et réception de notification push!

Laisser un commentaire