2017 © Pedro Peláez
 

library shell-args

A simple interface for processing arguments passed on the command line to PHP.

image

pointybeard/shell-args

A simple interface for processing arguments passed on the command line to PHP.

  • Friday, April 22, 2016
  • by pointybeard
  • Repository
  • 1 Watchers
  • 0 Stars
  • 49 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

Shell Arguments for PHP CLI

Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

A convenience class for loading arguments passed through the command line ($argv), (*2)

  • Autoloads from $argv, or pass in handcrafted array
  • Uses the Iterator base class, but adds find() to make looking for, and testing, arguments trivial.
  • Support for most common argument formats

Installation

Shell Arguments for PHP CLI is installed via Composer. To install, use composer require pointybeard/shell-args or add "pointybeard/shell-args": "~1.0" to your composer.json file., (*3)

Usage

Include pointybeard\ShellArgs\Lib in your scripts then create an instance of ArgumentIterator. It will automatically look for arguments, or you can pass it your own argument string (see below)., (*4)

Syntax Supported

This library supports the most common argument formats. Specifically -x,--long, /x. It also supports use of = or : as a delimiter. The following are examples of supported argument syntax:, (*5)

-x
--aa
--database=blah
-d:blah
--d blah
--database-name=blah
/d blah
-u http://www.theproject.com
-y something
-p:\Users\pointybeard\Sites\shellargs\
-p:"\Users\pointybeard\Sites"
-h:local:host
/host=local-host

Examples

<?php
use pointybeard\ShellArgs\Lib;

// Load up the arguments from $argv. By default
// it will ignore the first item, which is the
// script name
$args = new ArgumentIterator();

// Instead of using $argv, send in an array
// of arguments. e.g. emulates "... -i --database blah"
$args = new ArgumentIterator(false, [
    '-i', '--database', 'blah'
]);

// Arguments can an entire string too [Added 1.0.1]
$args = new ArgumentIterator(false, [
    '-i --database blah'
]);

// Iterate over all the arguments
foreach($args as $a){
    printf("%s => %s" . PHP_EOL, $a->name(), $a->value());
}

// Find a specific argument by name
$args->find('i');

// Find also accepts an array of values, returning the first one that is valid
$args->find(['h', 'help', 'usage']);

Running the Test Suite

You can check that all code is passing by running the following command from the shell-args folder:, (*6)

./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/ArgumentsTest

If you want to run code coverage (e.g. --coverage-html tests/reports/ ...) you'll need an older version of xdebug (for PHP 5.6). To install this, use the following commands:, (*7)

pecl channel-update pecl.php.net
pecl install xdebug-2.5.5

You'll need enable xdebug.so. Try adding the following to /etc/php/5.6/mods-available, (*8)

; configuration for php xdebug module
; priority=20
zend_extension=/usr/lib/php/20131226/xdebug.so 

Then enable it with phpenmod xdebug. The above works on Ubuntu, however, paths might be different for other distros., (*9)

Support

If you believe you have found a bug, please report it using the GitHub issue tracker, or better yet, fork the library and submit a pull request., (*10)

Contributing

We encourage you to contribute to this project. Please check out the Contributing documentation for guidelines about how to get involved., (*11)

License

"Shell Arguments for PHP CLI" is released under the MIT License., (*12)

The Versions

22/04 2016

dev-master

9999999-dev

A simple interface for processing arguments passed on the command line to PHP.

  Sources   Download

MIT

The Requires

  • php >=5.6.6

 

command line shell arguments argv argc

05/06 2015

1.0.3

1.0.3.0

A simple interface for processing arguments passed on the command line to PHP.

  Sources   Download

MIT

The Requires

  • php >=5.6.6

 

command line shell arguments argv argc

02/06 2015

1.0.2

1.0.2.0

A simple interface for processing arguments passed on the command line to PHP.

  Sources   Download

MIT

The Requires

  • php >=5.6.6

 

command line shell arguments argv argc

28/03 2015

1.0.1

1.0.1.0

A simple interface for processing arguments passed on the command line to PHP.

  Sources   Download

MIT

The Requires

  • php >=5.6.6

 

command line shell arguments argv argc

27/03 2015

1.0.0

1.0.0.0

A simple interface for processing arguments passed on the command line.

  Sources   Download

MIT

shell arguments argv argc