00f100/fcphp-command

There is no license information available for the latest version (0.1.0) of this package.

Library to manipulate console commands into FcPhp

0.1.0 2018-08-12 21:08 UTC

This package is auto-updated.

Last update: 2024-12-18 06:44:04 UTC


README

Package to manupulate commands of terminal into FcPhp

Build Status codecov

PHP Version Packagist Version Total Downloads

How to install

Composer:

$ composer require 00f100/fcphp-command

or add in composer.json

{
    "require": {
        "00f100/fcphp-command": "*"
    }
}

How to use

This package use FcPhp Security Console to manipulate permissions and FcPhp Cache to save commands cache for better performance

use FcPhp\SConsole\SCEntity;
use FcPhp\Command\Interfaces\ICEntity;
use FcPhp\Command\Facades\CommandFacade;


// Instance of SCEntity provider from FcPhp Security Console
// or ...
$entity = new SCEntity();

// Custom commands...
$commands = [];

// Composer dir to autoload find "commands.php" into packages and cache into FcPhp Cache
$vendorPathAutoload = 'vendor/*/*/config';

$instance = CommandFacade::getInstance($entity, $commands, $vendorPathAutoload);

// Args from console request
// Example: php index.php package datasource connect -h localhost -u user -p password
$args = [
    'package',
    'datasource',
    'connect',
    '-h',
    'localhost',
    '-u',
    'user',
    '-p',
    'password'
];

// Return instance FcPhp\Command\Interfaces\ICEntity
$match = $this->instance->match($args);

if($match instanceof ICEntity) {
    // Print status code
    echo $match->getStatusCode();

    // Print action
    echo $match->getAction();

    // ...
}

FcPhp\Command\Interfaces\ICEntity

<?php

namespace FcPhp\Command\Interfaces
{
    interface ICEntity
    {
        /**
         * Method to contruct instance
         *
         * @param array $params Params to entity
         * @return void
         */
        public function __construct(array $params = []);

        /**
         * Method to get command
         *
         * @return string|null
         */
        public function getCommand();

        /**
         * Method to get action
         *
         * @return string|null
         */
        public function getAction();

        /**
         * Method to get rule
         *
         * @return string|null
         */
        public function getRule();

        /**
         * Method to get params to controller
         *
         * @return array
         */
        public function getParams() :array;

        /**
         * Method to get status code
         *
         * @return int
         */
        public function getStatusCode() :int;

        /**
         * Method to get status message
         *
         * @return string|null
         */
        public function getStatusMessage();
    }
}