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> |
<?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__
); |
<?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> |
<?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. |
…