cli

Prestashop : Simplifier les migrations de version avec une commande console

Comme vous avez sans doute pu le suivre sur mes derniers articles sur le blog, j’essaye d’automatiser au maximum toutes les actions lors du déploiement des sites Prestashop.
Si besoin je vous renvoie vers la série d’articles ici : https://www.h-hennes.fr/blog/2023/09/16/prestashop-deploiement-continu-initialisation-du-projet/

Il y’a cependant encore un point qui me posait pas mal problème c’est les mises à jour de version de Prestashop.
Pour les mises à jour mineures, l’utilisation du module autoupgrade fait tout à fait l’affaire, mais il n’est pas pratique à utiliser dans car il est nécessaire de le lancer directement sur l’instance pour réaliser les différentes mises à jour.

Avec un workflow standard de CI/CD ce n’est pas possible de travailler de cette manière.
Les fichiers changés peuvent facilement être suivis via git, mais il est toujours nécessaire d’appliquer les mises à jour de la base de données.
Et le module autoupgrade ne permets pas à ma connaissance de le faire facilement

Je n’ai pas trouvé de solution existante et pratique pour faire cela, mais comme souvent avec Prestashop la création d’un module permets de répondre facilement à la problématique.…

Prestashop : Simplifier les migrations de version avec une commande console Lire la suite »

Magento 2 : Mise en place d’un environnement de développement local

L’année 2016 devrait marquer la montée en puissance de la plateforme Magento2.
Voici comment mettre en place rapidement un environnement de développement local pour Magento 2
Nous allons passer par la création d’une machine virtuelle qui utilisera Vagrant et virtualbox.
Je suppose donc que vous savez vous servir de ces technologies.

Installation du serveur et récupération des fichiers

  • Faites un clone du github :https://github.com/IamSwap/MageBox  ( Cette image est un stack lamp avec Mysql 5.6 obligatoire pour magento 2
  • Exécutez la commande vagrant « vagrant up » pour lancer la vm
  • Télécharger ensuite l’archive de Magento 2 depuis la page des download Magento et placer la dans le dossier « public »
  • (Optionnel ) Ajouter un nom de domaine local vers l’adresse ip : 192.168.20.10 , ( ex : www.magento2.dev )

Une fois tous ces éléments effectués, les conditions sont en place pour passer à l’installation de Magento 2

Installation de Magento2

Pour procéder rapidement nous allons l’installer via la ligne de commande.…

Magento 2 : Mise en place d’un environnement de développement local Lire la suite »

Magento : exécuter un modèle via le shell ( php CLI )

Voici un script qui vous permettra d’exécuter n’importe quel modèle de Magento via le shell ( PHP CLI )
Celui-ci est à placer dans un fichier « model.php » le dossier « shell » de magento.

Si vous souhaitez par exemple visualiser les données d’un produit vous pouvez saisir la commande suivante

php -f model.php -- -model catalog/product -action load -value 254

Ou également pour envoyer les emails en attente

php -f model.php -- -model core/email_queue -action send

Dans mon cas je l’utilise pour l’éxécution de modèles personnalisés

<?php
 
require_once 'abstract.php';
 
class Hhennes_Shell_Model extends Mage_Shell_Abstract {
       
    public function __construct() {
        parent::__construct();      
    }
    
    /**
     * Execution du script
     */
    public function run() {
        
        try {
                      
            if  ( $this->getArg('model')){
                
                //Gestion de la méthode à tester, par défaut load
                if ( $this->getArg('method'))
                    $method = $this->getArg('method');
                else
                    $method = 'load';
                   
                //Exécution du test
                $model = Mage::getModel($this->getArg('model'))->$method($this->getArg('value'));
                
                //Affichage des données
                Zend_debug::dump($model);
            }
                 
        } catch (Exception $exc) {
            echo $exc->getMessage();
        }
            
    }
    
    
        public function usageHelp()
    {
        return <<<USAGE
Usage:  php -f model.php

Magento : exécuter un modèle via le shell ( php CLI ) Lire la suite »

Prestashop : installer la dernière version depuis github

Si vous souhaitez tester la dernière version de Prestashop sur votre serveur voici un script qui vous permettra de l’installer via la ligne de commandes depuis github.

Attention , j’insiste bien sur le mot tester, car la version sur github est la version de développement qui ne doit pas être mise en production.
Pour télécharger la dernière version stable rendez-vous sur la page suivante : https://www.prestashop.com/fr/telechargement

Ce script est configuré pour installer prestashop via l’url http://example.com/prestashop/nightly/
Il est basé sur l’article suivant : Installer une version de prestashop en ligne de commande

#chemin d'installation
dir="/home/user/public_html/prestashop/"
nightlyDir="nightly"
domaineName="example.com"
 
#Accès base de données ( Remplacer par les bonnes informations )
dbuser="user"
dbpassword="password"
dbname="prestashop_nigthly"
 
#Accès administration (Remplacer par les bonnes informations
contactEmail="[email protected]"
adminpass="mypassword123"
 
#On se place dans le dossier ou on veut installer le site
cd $dir
 
#Si le dossier existe deja on le supprime
if [ -d "$nightlyDir" ]; then
echo "Le dossier $nightlyDir existe deja suppression des fichiers existants"
rm -rf $nightlyDir
#exit
fi
echo "Creation du dossier $nightlyDir"
mkdir $nightlyDir
 
#On clone la dernière version de la solution
git clone --recursive https://github.com

Prestashop : installer la dernière version depuis github Lire la suite »

Prestashop : Installer des modules sans passer par l’administration

Voici un module Prestashop qui vous permettra d’installer un module en appelant directement une page web ( depuis un navigateur ou la ligne de commande )

Ceci peut être pratique dans le cas ou il est nécessaire de déployer un module sur de nombreux sites différents

Une fois les fichiers déposé par ftp sur l’hébergement concerné , il vous suffit d’appeller la page http://www.site.com/modules/eiinstallmodulescli/install_module.php?module_name=module_name et le module sera automatiquement installé.

Le code exécuté est des plus basiques :-p , mais de mon côté cela m’a déjà permis de gagner pas mal de temps 🙂

require_once(dirname(__FILE__).'/../../config/config.inc.php');
 
//Nom du module à installer
$module_name = Tools::getValue('module_name');
 
if ( $module_name ) {
 
	//Inclusion de la classe du module
	if ( ! is_file(dirname(__FILE__).'/../'.$module_name.'/'.$module_name.'.php' ) )
		die (' Erreur : Impossible d\'inclure le fichier du module');
 
	include_once ( dirname(__FILE__).

Prestashop : Installer des modules sans passer par l’administration Lire la suite »