CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

23 February, 2022

How to Add Command line in to Console CLI in Magento 2

 Programing Coderfunda     February 23, 2022     Magento 2, MAGENTO TUTORIALS     No comments   

 

How to Add Command line in to Console CLI in Magento 2

In this article, we will find how to add a command line into magento 2 console CLI. Magento 2 add command line use a interface to quick change some features like:

  • Installing Magento (and related tasks such as creating or updating the database schema, creating the deployment configuration, and so on)
  • Clearing the cache
  • Managing indexes, including reindexing
  • Creating translation dictionaries and translation packages
  • Generating non-existent classes such as factories and interceptors for plug-ins, generating the dependency injection configuration for the object manager
  • Deploying static view files
  • Creating CSS from LESS

Before we start, please take some minutes to know about the naming in Magento 2 CLI.

We will use an example module Mageplaza_HelloWorld to demo for this lesson. To add an option to Magento 2 CLI, we will follow by some steps:

Step 1: Define command in di.xml

In di.xml file, you can use a type with name Magento\Framework\Console\CommandList to define the command option.

File: app/code/Mageplaza/HelloWorld/etc/di.xml

<?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="exampleSayHello" xsi:type="object">Mageplaza\HelloWorld\Console\Sayhello</item>
           </argument>
       </arguments>
   </type>
</config>

This config will declare a command class Sayhello. This class will define the command name and execute() method for this command.

Step 2: Create command class

As define in di.xml, we will create a command class:

File: app/code/Mageplaza/HelloWorld/Console/Sayhello.php

<?php
namespace Mageplaza\HelloWorld\Console;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class Sayhello extends Command
{
   protected function configure()
   {
       $this->setName('example:sayhello');
       $this->setDescription('Demo command line');
       
       parent::configure();
   }
   protected function execute(InputInterface $input, OutputInterface $output)
   {
       $output->writeln("Hello World");
   }
}

In this function, we will define 2 methods:

  • configure() method is used to set the name, description, command line arguments of the magento 2 add command line
  • execute() method will run when we call this command line via console.

After declare this class, please flush Magento cache and type this command:

php magento --list

You will see the list of all commands. Our command will be show here

magento 2 add command line

Now you can run bin/magento example:sayhello from the command to see the result

magento 2 add command line

Now, we will add the arguments for the command.

Content would be:

<?php

namespace Mageplaza\HelloWorld\Console;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Input\InputOption;

class Sayhello extends Command
{

	const NAME = 'name';

	protected function configure()
	{

		$options = [
			new InputOption(
				self::NAME,
				null,
				InputOption::VALUE_REQUIRED,
				'Name'
			)
		];

		$this->setName('example:sayhello')
			->setDescription('Demo command line')
			->setDefinition($options);

		parent::configure();
	}

	protected function execute(InputInterface $input, OutputInterface $output)
	{
		if ($name = $input->getOption(self::NAME)) {

			$output->writeln("Hello " . $name);


		} else {

			$output->writeln("Hello World");

		}

		return $this;

	}
}

We defined name argument for command line in configure() function and get it in execute() function. Please clear cache and run php bin/magento example:sayhello --name="Join" from the command line to check the result. It will show “Hello Join”

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Generate Migrations from an Existing Database With the Migration Generator Package
    Laravel Migration Generator Migration Generator for Laravel is a package by Bennett Treptow to generate migrations from existing database ...
  • Tailwindcss best practices for responsive design
    Tailwind CSS provides powerful utilities for responsive design out of the box. To use it effectively and maintain clean, scalable code, here...
  • Search Through Models with Laravel Searchable
      Laravel Searchable   is a package by   Spatie   to search through models and other sources pragmatically. Using this package, you can get ...
  • Laravel Razorpay Integration | Payment gateway integration Laravel in 30 mins | Laravel Razorpay
    1 Integration of Razorpay with Laravel. In this tutorial, I have taught how to integrate payment gateway with laravel with mini-project. If...
  • Vue.js Render functions
        Vue.js Render functions Vue.js recommends us to use templates to build HTML. Here, we can use the render function as a closer-to-the-co...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (69)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • ►  2026 (3)
    • ►  07/26 - 08/02 (2)
    • ►  06/28 - 07/05 (1)
  • ►  2025 (4)
    • ►  07/06 - 07/13 (2)
    • ►  06/29 - 07/06 (2)
  • ►  2024 (486)
    • ►  09/15 - 09/22 (30)
    • ►  09/08 - 09/15 (35)
    • ►  09/01 - 09/08 (35)
    • ►  08/11 - 08/18 (2)
    • ►  08/04 - 08/11 (33)
    • ►  07/28 - 08/04 (30)
    • ►  07/07 - 07/14 (11)
    • ►  06/30 - 07/07 (35)
    • ►  06/23 - 06/30 (5)
    • ►  06/02 - 06/09 (31)
    • ►  05/26 - 06/02 (20)
    • ►  05/05 - 05/12 (29)
    • ►  04/28 - 05/05 (26)
    • ►  04/07 - 04/14 (10)
    • ►  03/31 - 04/07 (34)
    • ►  03/24 - 03/31 (10)
    • ►  03/03 - 03/10 (35)
    • ►  02/25 - 03/03 (15)
    • ►  02/04 - 02/11 (22)
    • ►  01/28 - 02/04 (30)
    • ►  01/07 - 01/14 (8)
  • ►  2023 (484)
    • ►  12/31 - 01/07 (35)
    • ►  12/24 - 12/31 (10)
    • ►  12/03 - 12/10 (33)
    • ►  11/26 - 12/03 (20)
    • ►  11/05 - 11/12 (35)
    • ►  10/29 - 11/05 (20)
    • ►  10/22 - 10/29 (9)
    • ►  10/15 - 10/22 (7)
    • ►  10/08 - 10/15 (9)
    • ►  10/01 - 10/08 (10)
    • ►  09/24 - 10/01 (9)
    • ►  09/17 - 09/24 (9)
    • ►  09/10 - 09/17 (7)
    • ►  09/03 - 09/10 (9)
    • ►  08/27 - 09/03 (9)
    • ►  08/20 - 08/27 (8)
    • ►  08/13 - 08/20 (8)
    • ►  08/06 - 08/13 (8)
    • ►  07/30 - 08/06 (8)
    • ►  07/23 - 07/30 (7)
    • ►  07/16 - 07/23 (8)
    • ►  07/09 - 07/16 (7)
    • ►  07/02 - 07/09 (8)
    • ►  06/25 - 07/02 (7)
    • ►  06/18 - 06/25 (7)
    • ►  06/11 - 06/18 (7)
    • ►  06/04 - 06/11 (11)
    • ►  05/28 - 06/04 (7)
    • ►  05/21 - 05/28 (8)
    • ►  05/14 - 05/21 (11)
    • ►  05/07 - 05/14 (7)
    • ►  04/30 - 05/07 (7)
    • ►  04/23 - 04/30 (8)
    • ►  04/16 - 04/23 (9)
    • ►  04/09 - 04/16 (7)
    • ►  04/02 - 04/09 (4)
    • ►  03/26 - 04/02 (21)
    • ►  03/19 - 03/26 (2)
    • ►  03/12 - 03/19 (9)
    • ►  03/05 - 03/12 (26)
    • ►  02/26 - 03/05 (25)
    • ►  01/15 - 01/22 (7)
    • ►  01/08 - 01/15 (1)
  • ▼  2022 (1037)
    • ►  12/11 - 12/18 (13)
    • ►  12/04 - 12/11 (1)
    • ►  11/27 - 12/04 (40)
    • ►  11/06 - 11/13 (1)
    • ►  10/16 - 10/23 (13)
    • ►  09/04 - 09/11 (5)
    • ►  08/21 - 08/28 (24)
    • ►  08/14 - 08/21 (24)
    • ►  07/03 - 07/10 (9)
    • ►  06/19 - 06/26 (3)
    • ►  05/29 - 06/05 (3)
    • ►  05/22 - 05/29 (3)
    • ►  05/15 - 05/22 (109)
    • ►  05/01 - 05/08 (7)
    • ►  04/24 - 05/01 (7)
    • ►  04/17 - 04/24 (64)
    • ►  04/10 - 04/17 (115)
    • ►  04/03 - 04/10 (73)
    • ►  03/27 - 04/03 (77)
    • ►  03/13 - 03/20 (2)
    • ►  03/06 - 03/13 (25)
    • ►  02/27 - 03/06 (18)
    • ▼  02/20 - 02/27 (153)
      • Laravel artisan call with confirm
      • laravel array_pluck
      • Laravel arrays
      • Laravel array validation
      • Laravel api get controller
      • Laravel array to string error
      • Laravel array to string conversion
      • Laravel array search blade
      • Laravel array search blade
      • Laravel array in lang
      • Laravel array cast
      • Laravel APP_ENV config
      • Laravel append parameter to links
      • Laravel append array to array
      • Laravel app service provider why eloquent model error
      • Laravel app running in console
      • Laravel app get locale
      • Laravel apiresource
      • Laravel api too many requests
      • Laravel api routes
      • Laravel api form request validation 404
      • Laravel api error return homepage
      • Laravel API Endpoint "401 Unauthorized" on Server ...
      • Laravel API Endpoint "401 Unauthorized" on Server ...
      • Laravel api enable cors
      • Laravel api cors localhost issue
      • Laravel apache2
      • Laravel apache public folder
      • Laravel allow null records relationship
      • Laravel allow all fillable
      • Laravel ailed: WebSocket opening handshake was can...
      • Laravel after method()
      • Laravel admin panel free package
      • Laravel adding new items to config run time
      • Laravel adding condition to relation
      • Laravel add values to request
      • Laravel add utility class
      • Laravel add user
      • laravel add timestamps to existing table
      • Laravel add request
      • Laravel Add regx on password
      • laravel add package without updating
      • laravel add model to polymorphic relationships
      • laravel add model to one to many relationship
      • Get Product Collection Filter By Visibility in Mag...
      • Magento 2 Get All Order Collection with Filters
      • How to Get Product Collection by Category ID in Ma...
      • How to get Customer Collection in Magento 2
      • Disable a Payment Method Programmatically in Magen...
      • 4 Steps to add Custom Tab in Customer Account in M...
      • Magento 2 Javascript Bundling - Group/Combine JS f...
      • Magento 2 Get All Payment Methods
      • Magento 2 How to Unlock Reindex Process: Index is ...
      • Magento 2 Display Error Enable Error Reporting
      • How To Add A Navigation Link In My Account On Mage...
      • How to add Quick View feature in Magento 2
      • How to Add Custom Tab in Product Page Magento 2
      • How To Add CMS Block In Checkout Page Magento 2
      • How to make Sidebar sticky in Magento 2
      • How To Add Custom Columns To Magento 2
      • Enable/ Disable Magento 2 Developer Mode
      • 3 Steps to Create Helper Class in Magento 2
      • Magento 2 Slow? 10 Steps to Speed Up Magento 2
      • Magento 2 Areas vs Modules
      • How to Connect to Magento 2 using Terminal SSH
      • 4 Steps to Install Magento 2 on XAMPP Windows
      • 7 Steps to Install Magento 2 on Ubuntu/Debian [Lat...
      • 4 Steps to Install Magento 2 on MAC OSX
      • 6 Steps to Install Magento 2 on CentOS [Latest] - ...
      • Magento 2 File Structure - Folder, Module Director...
      • Clear Cache Programmatically Magento 2
      • How to add a custom Zipcode validator in checkout ...
      • LaRecipe: Documentation with Markdown in Your Lara...
      • Magento 2 Factory Object
      • Create Resource Model - Get Model Collection in Ma...
      • Magento 2 Create Model
      • How to Create a Custom Widget in Magento 2
      • Create Payment Method
      • Magento 2 Create Shipping Method
      • How to Create Cron Job Programmatically in Magento 2
      • Magento 2 Create API with samples - Snippet
      • Magento 2 Add Category Attributes Programmatically
      • Magento 2 Create Events - Observer in Magento 2
      • How to rewrite controller in Magento 2
      • Magento 2 Cache and Page Cache Overview
      • Magento 2 Module Creator
      • How to Create Module in Magento 2 - Helloworld dev...
      • Magento 2 Add Product Attribute Programmatically
      • Magento 2 Add Customer Attribute Programmatically
      • How to use Command Line Interface CLI
      • How to Add Command line in to Console CLI in Magen...
      • Magento 2 Indexing & Reindex
      • Magento 2 Plugin - Interceptor
      • Magento 2 Routing
      • Magento 2 Events
      • How to Create Setup, Upgrade, Uninstall Script in ...
      • How to Create/Save Admin Grid in Magento 2
      • Magento 2 How to Create System.xml Configuration
      • Magento 2 Create Admin Menu
      • Magento 2 Admin ACL Access Control Lists
      • Magento 2 Create View: Block, Layouts, Templates
      • CRUD Models in Magento 2
      • How to Create Controller in Magento 2
      • Magento 2 Module Development - Simple Hello World ...
      • How to add a custom Zipcode validator in checkout ...
      • How to add custom shipping validations Magento 2
      • How to customize a checkout step in Magento 2
      • Magento 2 Theme Development from Scratch
      • Install the Magento 2 step by steps fully tutorial...
      • Use Laravel GeoIP to Determine Users’ Geographical...
      • A Stand-Alone Laravel Slack Package
      • Laravel View Components Package
      • Plug and Play Avatars in Laravel with Laravolt
      • Laravel Localization Package for Vue
      • Laravel Breadcrumbs Package
      • Automatically Open Files on Artisan “Make” Commands
      • Laravel Tenancy – Multi-Tenant Package for Laravel
      • Eventy: WordPress-like Actions and Filters for Lar...
      • Laravel Self-Diagnosis Package
      • Laravel Relationship Events
      • Count Models With the Laravel Visits Package
      • Laravel View X-Ray
      • Laravel Love: Likes and Dislikes for Eloquent Models
      • Laravel Befriended
      • Laravel Enum Package
      •  LaRecipe is a code-driven package created by Sale...
      • Laratables: Ajax support of DataTables in Laravel
      • Luhn Algorithm Package for Laravel
    • ►  02/13 - 02/20 (187)
    • ►  01/30 - 02/06 (45)
    • ►  01/23 - 01/30 (15)
    • ►  01/16 - 01/23 (1)
  • ►  2021 (412)
    • ►  10/24 - 10/31 (2)
    • ►  07/25 - 08/01 (1)
    • ►  07/11 - 07/18 (10)
    • ►  06/13 - 06/20 (29)
    • ►  05/23 - 05/30 (1)
    • ►  05/02 - 05/09 (24)
    • ►  04/25 - 05/02 (24)
    • ►  04/18 - 04/25 (112)
    • ►  04/11 - 04/18 (1)
    • ►  04/04 - 04/11 (6)
    • ►  03/28 - 04/04 (86)
    • ►  03/21 - 03/28 (19)
    • ►  03/14 - 03/21 (2)
    • ►  03/07 - 03/14 (10)
    • ►  02/28 - 03/07 (1)
    • ►  02/21 - 02/28 (29)
    • ►  02/14 - 02/21 (13)
    • ►  02/07 - 02/14 (12)
    • ►  01/31 - 02/07 (6)
    • ►  01/17 - 01/24 (2)
    • ►  01/10 - 01/17 (8)
    • ►  01/03 - 01/10 (14)
  • ►  2020 (376)
    • ►  12/27 - 01/03 (37)
    • ►  12/20 - 12/27 (92)
    • ►  12/13 - 12/20 (29)
    • ►  12/06 - 12/13 (37)
    • ►  11/29 - 12/06 (4)
    • ►  11/15 - 11/22 (14)
    • ►  11/08 - 11/15 (8)
    • ►  11/01 - 11/08 (2)
    • ►  10/18 - 10/25 (14)
    • ►  10/11 - 10/18 (16)
    • ►  10/04 - 10/11 (10)
    • ►  09/20 - 09/27 (10)
    • ►  09/06 - 09/13 (19)
    • ►  08/30 - 09/06 (26)
    • ►  08/23 - 08/30 (4)
    • ►  08/16 - 08/23 (2)
    • ►  07/12 - 07/19 (48)
    • ►  05/17 - 05/24 (2)
    • ►  01/05 - 01/12 (2)
  • ►  2019 (74)
    • ►  07/07 - 07/14 (6)
    • ►  06/16 - 06/23 (6)
    • ►  02/10 - 02/17 (17)
    • ►  01/13 - 01/20 (37)
    • ►  01/06 - 01/13 (8)
  • ►  2018 (376)
    • ►  12/30 - 01/06 (24)
    • ►  12/16 - 12/23 (8)
    • ►  12/09 - 12/16 (98)
    • ►  12/02 - 12/09 (16)
    • ►  11/18 - 11/25 (36)
    • ►  11/04 - 11/11 (18)
    • ►  10/28 - 11/04 (10)
    • ►  10/21 - 10/28 (26)
    • ►  10/14 - 10/21 (52)
    • ►  10/07 - 10/14 (4)
    • ►  09/30 - 10/07 (2)
    • ►  09/23 - 09/30 (68)
    • ►  09/16 - 09/23 (4)
    • ►  09/09 - 09/16 (4)
    • ►  08/26 - 09/02 (6)

Data Publish News

Loading...

Al Jazeera – Breaking News, World News and Video from Al Jazeera

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda