Posts Tagged ‘console’

Prestashop : Générer des modules via la console.

Note : Cette fonctionnalité n’est pas disponible via la console native de Prestashop ( disponible à partir de prestashop 1.7 ) mais sur mon outil de console externe : prestashopConsole ( cf. https://github.com/nenes25/prestashop_console )

J’ai dernièrement du créer de nombreux modules sous Prestashop et le fait de les copier / coller des différents modules à chaque fois m’a fait perdre pas mal de temps.
Et je ne connais pas forcément par coeur l’ensemble des syntaxes nécessaires.
Pour optimiser tout cela j’ai donc cherché un moyen de créer facilement et rapidement des modules.
Il existe déjà la possibilité de créer un module via le générateur de module de Prestashop ( disponible ici ) , en revanche cela ne correspondait pas vraiment à mon besoin.
Le plus simple est donc de le gérer via la ligne de commandes, j’ai donc implémenté des nouvelles commandes dans la console de prestashop pour gérer cela.

Voyons ensemble comment créer facilement et rapidement un module via cet outil.…

1 commentaire

Magento 2 : Commande console pour supprimer les fichiers de logs et les reports

Lors de la phase de développement sous magento 2, les dossiers contenants les fichiers de logs et de reports ont tendance à augmenter rapidement et il devient difficile de s’y retrouver.
Il est possible de supprimer facilement le contenu des ces dossiers via l’explorateur de fichier ou via des commandes shell, mais cela peut être rébarbatif ou source d’erreurs ( rm -rf sur un mauvais dossier entre autre … )

Pour simplifier ces actions nous allons donc créer 2 nouvelles commandes dans la console Magento.
Ceci nous permets de constater qu’ajouter des commandes consoles sur magento 2 c’est très simple 🙂

Le module s’appellera Hhennes_Tools et sera situé dans app/code/Hhennes/Tools/

Pour initialiser le module créer le fichier etc/module.xml avec le contenu suivant

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Hhennes_Tools" setup_version="0.1.0">
    </module>
</config>

Et le fichier de registration registration.php avec le contenu suivant :

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Hhennes_Tools',
    __DIR__
);

Dans le fichier Hhennes/Tools/etc/di.xml ajoutez le contenu suivant :

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\Console\CommandList">
        <arguments>
            <argument name="commands" xsi:type="array">
                <item name="hhennes_tools_cleanreports" xsi:type="object">Hhennes\Tools\Console\Command\CleanReportsCommand</item>
                <item name="hhennes_tools_cleanlogs" xsi:type="object">Hhennes\Tools\Console\Command\CleanLogsCommand</item>
            </argument>
        </arguments>
    </type>
</config>

La logique d’ajout des commandes est situé dans ce fichier, nous ajoutons nos commandes à la liste des commandes disponible lors de l’initialisation de la classe Magento\Framework\Console\CommandList

Il ne reste plus qu’a créer les fichiers php des commandes :
Hhennes/Tools/Console/Command/CleanLogsCommand.php

<?php
 
namespace Hhennes\Tools\Console\Command;
 
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Magento\Framework\App\Filesystem\DirectoryList;
 
class CleanLogsCommand extends Command
{
 
    /** @var DirectoryList  */
    protected $_directoryList;
 
    /**
     * CleanLogsCommand constructor.
Pas de commentaires

Prestahop console : nouvelle version

Je viens de sortir la nouvelle version de mon module console pour prestashop 🙂

Celle-ci simplifie encore les choses puisqu’il suffit de télécharger un seul fichier phar à la racine de votre site pour bénéficier des fonctionnalités de la console 🙂
Pour rappel le précédent article : Console prestashop

Télécharger la console

wget https://github.com/nenes25/prestashop_console/raw/master/bin/prestashopConsole.phar

Ajouter les droits d’éxécution au fichier

chmod +x prestashopConsole.phar

Lancer la console

./prestashopConsole.phar
Pas de commentaires

Console Prestashop

Tout ceux qui travaillent sous Magento ou Symfony le save, la ligne de commande est la meilleure amie du développeur pour gagner du temps 🙂
J’utilise très régulièrement l’outil Magerun : https://github.com/netz98/n98-magerun  qui permets de réaliser pleins d’actions depuis la ligne de commande

Ce type d’outil n’existe pas (encore) sous Prestashop.
Ceci arrivera sans doute pour les prochaines versions, comme Symfony est amené à devenir le cœur de la solution :-).

En attendant voici donc un nouvel outil de console pour Prestashop.
Il est basé sur le composant console de Symfony2 et disponible sur mon compte github : https://github.com/nenes25/prestashop_console

Pour l’utiliser les prérequis sont les suivants :

  • accès ssh à votre hébergement
  • composer installé

Voici comment l’installer rapidement.

Edit : Utiliser plutôt le nouveau mode de fonctionnement : https://www.h-hennes.fr/blog/2016/09/19/prestahop-console-nouvelle-version/

Clonez le dépôt à la racine de votre site, ceci créera un dossier « PrestashopConsole »

git clone https://github.com/nenes25/prestashop_console.git PrestashopConsole

Rendez-vous dans le dossier et installer les composants avec composer

composer install

Puis vous pouvez lancer la console, et voir les commandes disponibles.…

5 commentaires


Compte Github