friends-of-presta / fop_console

Prestashop Module providing a set of shell/terminal commands for developers (PrestaShop 1.7.5+)
Academic Free License v3.0
84 stars 35 forks source link
command-line console php prestashop prestashop-1-7 prestashop-module symfony

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

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_DEVMODE) 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 :x:
1.7.5.x :heavy_check_mark:
1.7.6.x :heavy_check_mark:
1.7.7.x :heavy_check_mark:
1.7.8.x :heavy_check_mark:
Php Version Compatible
7.1 and below :x:
7.2 :heavy_check_mark:
7.3 :heavy_check_mark:
7.4 :heavy_check_mark:
8.0 :interrobang: Not yet tested

License

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