Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Respect\Cli

Respect\Cli

A tool for interacting with PHP code from the command line. It is intended to be used alongside Respect\Config.

Main Actions

Usage: [action] [config] [command]

  • print -p shows up a shell-friendly representation of the given command
  • serve -s opens up a standalone PHP server serving the given command
  • start -d opens up a PHP daemon for the given command
  • interactive -a lets the user interact with the code

Usage Samples

Prints out tables from a MySQL database using PDO:

$ respect print Pdo --dsn='mysql:localhost;dbname=mydb' --user=root --password='' query 'SHOW TABLES'

Arguments starting with '--' are configuration/instantiation, other arguments are commands. Commands are always 'fluent', so the next command always runs upon the last command return.

This is equivalent to:

<?php
$command = new PDO('mysql:localhost;dbname=mydb', 'root', '');
$command = $command->query('SHOW TABLES');
return Respect\Cli\TextFormatter($command);

Using an external Respect\Config INI file:

$ respect print --myconfig.ini db query 'SHOW TABLES'

INI file:

[db Pdo]
dsn = mysql:localhost;dbname=mydb
user = root
password = ""

Interactive usage

Type the initial INI file:

$ respect interactive --myconfig.ini

Tab to auto-complete to container keys:

$ db 

Tab again to auto-complete to methods/properties/constructor-parameters of that instance:

$ db query 

Type your commands:

$ db query 'SHOW TABLES'
@henriquemoody

This comment has been minimized.

Show comment Hide comment
@henriquemoody

henriquemoody Feb 14, 2012

Great idea, let's code?

Great idea, let's code?

@alganet

This comment has been minimized.

Show comment Hide comment
@alganet

alganet Feb 14, 2012

Owner

alganet commented Feb 14, 2012

@augustohp

This comment has been minimized.

Show comment Hide comment
@augustohp

augustohp Feb 14, 2012

The interative part i have no fucking idea of how to code, BUT, great idea. =D

The interative part i have no fucking idea of how to code, BUT, great idea. =D

@alganet

This comment has been minimized.

Show comment Hide comment
@alganet

alganet Feb 14, 2012

We leave the interactiveness for the future. Probably a lot of Reflection to auto-complete these guys and a lot of dynamic Respect\Config containers being altered in runtime.

Owner

alganet commented Feb 14, 2012

We leave the interactiveness for the future. Probably a lot of Reflection to auto-complete these guys and a lot of dynamic Respect\Config containers being altered in runtime.

@ncuesta

This comment has been minimized.

Show comment Hide comment
@ncuesta

ncuesta Feb 23, 2012

I don't know if this would help you, but I'm developing Clinner a CLI commands abstraction for PHP5.3+ which allows to run and chain both CLI commands and PHP functions. If you feel like it, you can check it out here.

ncuesta commented Feb 23, 2012

I don't know if this would help you, but I'm developing Clinner a CLI commands abstraction for PHP5.3+ which allows to run and chain both CLI commands and PHP functions. If you feel like it, you can check it out here.

@alganet

This comment has been minimized.

Show comment Hide comment
@alganet

alganet Feb 23, 2012

@ncuesta I do like your approach on Clinner! I have some suggestions on the API/Interface for it, let me know if you are willing to know them =D Not sure how I would use it in Respect\Cli yet, but for sure it will be very handy on other projects.

Owner

alganet commented Feb 23, 2012

@ncuesta I do like your approach on Clinner! I have some suggestions on the API/Interface for it, let me know if you are willing to know them =D Not sure how I would use it in Respect\Cli yet, but for sure it will be very handy on other projects.

@ncuesta

This comment has been minimized.

Show comment Hide comment
@ncuesta

ncuesta Feb 23, 2012

Hey @alganet, Clinner's issues are open :) I'm always available for other points of view. Thanks! And if you would like any kind of help on this, I'd be more than happy to help.

ncuesta commented Feb 23, 2012

Hey @alganet, Clinner's issues are open :) I'm always available for other points of view. Thanks! And if you would like any kind of help on this, I'd be more than happy to help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment