PHPackages                             jesobreira/cmdline - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. jesobreira/cmdline

ActiveLibrary[CLI &amp; Console](/categories/cli)

jesobreira/cmdline
==================

PHP command line arguments parser

1.0.0(6y ago)015MITPHP

Since Apr 30Pushed 6y ago1 watchersCompare

[ Source](https://github.com/jesobreira/cmdline-parser-php)[ Packagist](https://packagist.org/packages/jesobreira/cmdline)[ RSS](/packages/jesobreira-cmdline/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

CmdLine Parser
==============

[](#cmdline-parser)

Library for easy parsing of command line arguments.

Install by running:

```
composer require jesobreira/cmdline

```

It can get:

Simple key/value
----------------

[](#simple-keyvalue)

Example. The following code:

```
use CmdLine\Parser as cmdline;

echo cmdline::get('color');

```

Will return "white" if you run the script in one of these ways (quotes are optional but mandatory if you're going to use spaces):

- php script.php -color "white"
- php script.php --color white
- php script.php /color white

Existence
---------

[](#existence)

Example. The following code:

```
if (cmdline::keyexists('givemecoffee')) {
	echo "You want coffee.";
} else {
	echo "You do not want coffee.";
}

```

Will return "You want coffee." if you run one of these:

- php script.php -givemecoffee
- php script.php --givemecoffee
- php script.php /givemecoffee

Flags
-----

[](#flags)

Example. This script:

```
echo "You want: ";

if (cmdline::flagenabled('C')) echo "coffee ";

if (cmdline::flagenabled('B')) echo "beer ";

echo " and you do not want: ";

if (cmdline::flagdisabled('V')) echo "vodka ";

if (cmdline::flagdisabled('W')) echo "wine ";

echo " but you did not tell me if you want: ";

if (!cmdline::flagexists('S')) echo "soda ";

if (!cmdline::flagexists('J')) echo "juice ";

```

Will return "Will return "You want: coffee beer and you do not want: vodka wine but you did not tell me if you want: soda juice" if you run:

- php script.php +CB -VW

Getting arguments by its index
------------------------------

[](#getting-arguments-by-its-index)

You can also read the `process.argv` (0-based index) through this function. The advantage is that if the index does not exist (the user did not specify the argument), it won't throw an error. It will just return the value you specify in the second function parameter.

```
// 0 = php executable; 1 = php script; 2... = args
$first_argument = cmdline::getvalbyindex(2, false);
if (!$first_argument) {
	echo "You did not specify any argument.";
} else {
	echo "First argument is: " . $first_argument;
}

```

*Just a note:* The second value of `getvalbyindex` method can be an integer value, a string, a boolean value, an array or anything you want it to return if the index does not exist in `process.argv` object.

This parameter is also available in `get` method, also as a second function parameter. In this case, it will return this value if the key was not found. Example:

```
$user_wants = cmdline::get('iwant', 'nothing');
echo "You want" . $user_wants;

```

So, if you run:

- php script.php /iwant water

It will return "You want water". But if you run just:

- php script.php

It will return "You want nothing". Please note that, as these two are the only methods in this module meant to return strings, the second parameter is not available for the other functions. By default, if you do not specify any fallback value, it returns null if the wanted value could not be found.

Also, please note that this module can NOT parse arguments in the format key=value. Example:

- php script.php key=value **IT WILL NOT WORK**

Other Ports
===========

[](#other-ports)

This lib is a port from the [AutoIt3 UDF](https://www.autoitscript.com/forum/topic/169610-cmdline-udf-get-valueexistenceflag/), which is also available as a [NodeJS module](https://www.npmjs.com/package/node-cmdline-parser).

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2206d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7cad19dafdf9bb28fd1bf74a734f4c8d7aabf3abdaa67879ca07126cecf7afc8?d=identicon)[jesobreira](/maintainers/jesobreira)

---

Top Contributors

[![jesobreira](https://avatars.githubusercontent.com/u/3002249?v=4)](https://github.com/jesobreira "jesobreira (1 commits)")

---

Tags

cliterminalargvargcargsdos

### Embed Badge

![Health badge](/badges/jesobreira-cmdline/health.svg)

```
[![Health](https://phpackages.com/badges/jesobreira-cmdline/health.svg)](https://phpackages.com/packages/jesobreira-cmdline)
```

###  Alternatives

[symfony/console

Eases the creation of beautiful and testable command line interfaces

9.8k1.1B11.3k](/packages/symfony-console)[league/climate

PHP's best friend for the terminal. CLImate allows you to easily output colored text, special formats, and more.

1.9k14.0M273](/packages/league-climate)[php-school/cli-menu

A command line menu helper in PHP

2.0k1.1M27](/packages/php-school-cli-menu)[php-tui/php-tui

Comprehensive TUI library heavily influenced by Ratatui

589747.0k6](/packages/php-tui-php-tui)[aplus/cli

Aplus Framework CLI Library

2301.7M6](/packages/aplus-cli)[splitbrain/php-cli

Easy command line scripts for PHP with opt parsing and color output. No dependencies

177817.2k28](/packages/splitbrain-php-cli)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
