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!

Tester l’application Mobile avec l’email et le mot de passe suivant afin de visionner et récupérer le contenu VertinGo Website:
Email: default_user@gmail.com
Mot de passe: default_user

Summary
Article Name
Comment déployer une application symfony sur Heroku!
Description
Dans ce tutoriel vous allez apprendre à déployer des applications Symfony sur Heroku! Heroku est un hébergeur gratuit dans la limite de 5 applications!
Author
Publisher Name
VertinGo Website

Laisser un commentaire