Déployer son site Symfony sur un serveur Mutualisé

Il y a 2 ou 3 petites choses à faire, mais rien de bien sorcier, par contre la ressource n’est pas facilement trouvable sur le net.

Je vous conseille avant toute chose, de cloner votre projet dans un autre répertoire, il peut y avoir un risque de pétage de projet.

Tout d’abord, il faut faire un dump de votre environnement grâce à la commande :

composer dump-env prod

Une fois fait, vous vous retrouvez avec un fichier env.php qui contient un tableau associatif avec les accès BDD, serveur mail, etc. (ce qui se trouvait dans env.php). Pensez à mettre a jour avec vos identifiants BDD, serveur SMTP

Ensuite, passez en prod et relancez le composer install qui va ne prendre que les dépendances de la prod (pas de web profile, fixtures, etc.)

Une fois fait, vous devez ajouter 2 fichiers .htaccess. Un à la racine du site, le second dans le répertoire public.

Voici le contenu de celui à la racine, qui en gros redirige les requêtes vers le répertoire public en les passant en https.

RewriteEngine on

RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L]

Et celui à mettre dans public qui va faire les branchements avec le moteur de Symfony


<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
    RewriteRule .* - [E=BASE:%1]

   
    RewriteCond %{HTTP:Authorization} .+
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]

    RewriteCond %{ENV:REDIRECT_STATUS} =""
    RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 307 ^/$ /index.php/

    </IfModule>
</IfModule>

une fois fait, envoyez ça sur votre hébergement et normalement ça marche. En cas de problème, pensez à virer le cache, le plus facile c’est d’aller dans var et de renommer le répertoire prod en prod_ (c’est plus rapide, car il contient des centaines de fichiers)

Rendre une photo plus nette avec Gimp

Pour rendre une photo de qualité moyenne plus net, il est possible en suivant ces étapes très simples d’améliorer le rendu.

Tout d’abord faire une copie de l’image avant de travailler avec. (Ne jamais travailler sur l’original)

Une fois ouverte avec Gimp.

Dupliquer le calque 3 fois (toujours dans l’esprit de garder une copie) seul 2 calques servent au traitement.

Sélectionner le calque le plus haut, aller dans le menu filtre/flou/flou gaussien.

Mettre la valeur du taux de flou à 40.

Changer le mode de travail à « extraction de grain »

Le mode de travail se trouvent ici par défaut.

Faire la fusion avec le calque du dessous.

Changer le mode de travail à « fusion de grain »

Voilà.

 

Gagner un peu en vitesse dans le Backoffice Prestashop

Par défaut Prestashop va recuperer des infos sur le site des addons officiels, ce qui à pour effet de méchament ralentir la navigation, c'est encore pire quand ont est en local sur une machine de dev avec une connexion internet poussive(ce qui est mon cas). Il faut quand même faire attention car les module qui pourrait vous servir ne vont plus apparaitre.

Pour ça il faut aller modifier 2 fichiers. Le premier est classes/tools.php. Il faut modifier la methode addonsRequest() et rajouter un return false; des le début de la methode. comme ça plus requete vers le serveur addons.

Pour le second, qui concerne les themes, il faut le chercher dans controllers/admin/AdminThemeControllers.php.

Dedans cherche la methode ajaxProcessGetAddonsThemes(), et appeler la fonction die() des le debut. C'est tout.

Après cela ne fait pas de miracle, mais on gagne un peu. Voili Voilou.

Ajouter des champs personnalisés dans un article WordPress

Pour ajouter des champs spécifiques dans un article WordPress, il faut d'abord ajouter à votre theme le fichier functions.php s'il n'est pas existant. Dedans il faut rajouter un hooks:

 

// nom du hook : "wp_insert_post"

// nom de la fonction à appeler : " champs_defaut"

add_action("wp_insert_post", "champs_defaut");

// prend en parametre l'identifiant du post

 function champs_defaut($post_id){
        if(get_post_type($post_id)=='post'){
            add_post_meta( $post_id, 'prix', '', true );      // ajout du champ 'prix', true => unique
            add_post_meta( $post_id, 'editeur', '', true );
            add_post_meta( $post_id, 'auteur', '', true );
            add_post_meta( $post_id, 'reserve', '', true );
        }
    return true;
    }   

Maintenant dans la page d'ajout d'article 4 champs sont apparut dans le backoffice. Les champs n'apparaissent pas dans les articles existants, il y a juste à clique sur le boutons "mettre à jour".

 

Pour les afficher dans la page single.php,  il reste à ajouter ce code:

 

// get_post_meta retourne la valeur du champs désigné dans les parametres,

// le booleen permet de définir si le retour est sous forme de tableau ou d'un string tout seul

$auteurs = get_post_meta(get_the_id(), 'auteur', false);
$editeur = get_post_meta(get_the_id(), 'editeur', true );
$prix = get_post_meta(get_the_id(), 'prix', true );
$reserve = get_post_meta(get_the_id(), 'reserve', true );

 

Voili voilou!!!