Skip to content

Prestashop Module providing a set of shell/terminal commands for developers (PrestaShop 1.7.5+)

License

Notifications You must be signed in to change notification settings

friends-of-presta/fop_console

Repository files navigation

Minimum PHP Version PHP tests GitHub release Slack chat

Friends of Presta Console

Fop console is a module which provides a set a commands to extend PrestaShop 1.7 commands.

Since version 1.7.5.0 Prestashop provides some terminal commands using the Symfony console tool.

This repository provides a base Command with better support for PrestaShop legacy classes and useful commands to easy the development on Prestashop or manage a shop. These commands are mainly for developers, just some basic knowledge of command line processing is needed.

Install from release (recommended)

Donwload a zip release and install it like any other module.

Alternatively, run this in a shell :

#!/bin/bash
wget https://git.io/JMF3q --output-document /tmp/fop_console.zip && unzip /tmp/fop_console.zip -d modules && ./bin/console pr:mo install fop_console

Install from sources

If you want use the dev branch, you can install from github. If you want to contribute, first create a fork and follow the same steps using your forked repository url instead of the original one.

cd modules 
git clone https://github.com/friends-of-presta/fop_console.git
cd fop_console
composer install

Install the module in the backoffice or in command line like this :

cd ../../
php bin/console pr:mo install fop_console

Current commands

  • fop:about:version Display the Fop Console version (on disk, on database, latest available release)
  • fop:cache:clear Replace the cache directory with an empty one.
  • fop:category:clean Manage empty categories
  • fop:category:products-count Get the number of products for category and its children
  • fop:configuration:export Export configuration values (from ps_configuration table)
  • fop:configuration:import Import configuration values
  • fop:container:check Health check of the Service Container
  • fop:customer-groups Customer groups
  • fop:employee:list List registered employees
  • fop:employee:change-password Change employee password
  • fop:environment:debug-mode Enable or Disable debug mode.
  • fop:environment:get-parameters Display information about the installation (db name, etc)
  • fop:environment:setup-dev Install your project for local developement
  • fop:export:data Allows to export data in XML
  • fop:generate:htaccess Generate the .htaccess file
  • fop:generate:robots Generate the robots.txt file
  • fop:group:transfer-customers Transfers or add customers from a group to an other
  • fop:hook:add Create hook in database
  • fop:image:generate:categories Regenerate categories thumbnails
  • fop:image:generate:manufacturers Regenerate manufacturers thumbnails
  • fop:image:generate:products Regenerate products thumbnails
  • fop:image:generate:stores Regenerate stores thumbnails
  • fop:image:generate:suppliers Regenerate suppliers thumbnails
  • fop:module:generate Scaffold new PrestaShop module
  • fop:module:hook Attach one module on specific hook
  • fop:module:hooks Get modules list
  • fop:module:non-essential Manage non essential modules
  • fop:module:rename Rename a module
  • fop:module:unhook Detach module from hook
  • fop:override:make Generate a file to make an override
  • fop:product:latest Displays the latest products
  • fop:shop:maintenance Configure maintenance mode
  • fop:shop:status Display shops statuses
  • fop:theme:reset-layout Reset current (or selected) theme

Create your owns Commands

The official documentation from PrestaShop and Symfony Core teams are still right, but you needs to extends our class.

<?php

// psr-4 autoloader

namespace FOP\Console\Commands\Domain; // e.g. namespace FOP\Console\Commands\Configuration

use FOP\Console\Command;
use Symfony\Component\Console\Style\SymfonyStyle;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

final class DomainAction extends Command
{
    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this
            ->setName('fop:domain') // e.g 'fop:export'
            // or
            ->setName('fop:domain:action') // e.g 'fop:configuration:export' 
            ->setDescription('Describe the command on a user perspective.');
    }

    /**
     * {@inheritdoc}
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $this->io->text('Hello friends of PrestaShop!');

        return 0; // return 0 on success or 1 on failure.
    }
}

Getting started

In a shell (call it shell, console or terminal), at the root of a Prestashop installation, type this command to list all available commands. You'll see commands provided by Symfony, Prestashop and installed modules.

./bin/console list

To list only fop commands :

./bin/console list fop

To toggle the debug-mode (PS_DEV_MODE) run :

./bin/console fop:environment:debug toggle

To get help about a command :

./bin/console help fop:environment:debug

You are ready to go !

Contribute

Any contributions are very welcome :) First install from sources and see Contributing for details.

Current contributors or contributors.

Compatibility

Prestashop Version Compatible
1.7.4.x and below
1.7.5.x ✔️
1.7.6.x ✔️
1.7.7.x ✔️
1.7.8.x ✔️
Php Version Compatible
7.1 and below
7.2 ✔️
7.3 ✔️
7.4 ✔️
8.0 ⁉️ Not yet tested

License

This module is released under AFL license. See License for details.