| author | Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com> |
| Thu, 07 May 2015 15:16:02 +0200 | |
| changeset 1230 | 68c69c656a2c |
| permissions | -rw-r--r-- |
|
1230
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
1 |
<?php |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
2 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
3 |
* Zend Framework |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
4 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
5 |
* LICENSE |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
6 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
7 |
* This source file is subject to the new BSD license that is bundled |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
8 |
* with this package in the file LICENSE.txt. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
9 |
* It is also available through the world-wide-web at this URL: |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
10 |
* http://framework.zend.com/license/new-bsd |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
11 |
* If you did not receive a copy of the license and are unable to |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
12 |
* obtain it through the world-wide-web, please send an email |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
13 |
* to license@zend.com so we can send you a copy immediately. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
14 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
15 |
* @category Zend |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
16 |
* @package Zend_Service_Console |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
17 |
* @version $Id$ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
18 |
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
19 |
* @license http://framework.zend.com/license/new-bsd New BSD License |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
20 |
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
21 |
* @license http://phpazure.codeplex.com/license |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
22 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
23 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
24 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
25 |
* @category Zend |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
26 |
* @package Zend_Service_Console |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
27 |
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
28 |
* @license http://framework.zend.com/license/new-bsd New BSD License |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
29 |
* @copyright Copyright (c) 2009 - 2011, RealDolmen (http://www.realdolmen.com) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
30 |
* @license http://phpazure.codeplex.com/license |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
31 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
32 |
class Zend_Service_Console_Command |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
33 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
34 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
35 |
* The handler. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
36 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
37 |
* @var array |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
38 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
39 |
protected $_handler; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
40 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
41 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
42 |
* Gets the handler. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
43 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
44 |
* @return array |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
45 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
46 |
public function getHandler() |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
47 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
48 |
return $this->_handler; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
49 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
50 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
51 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
52 |
* Sets the handler. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
53 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
54 |
* @param array $handler |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
55 |
* @return Zend_Service_Console_Command |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
56 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
57 |
public function setHandler($handler) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
58 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
59 |
$this->_handler = $handler; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
60 |
return $this; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
61 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
62 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
63 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
64 |
* Replaces PHP's error handler |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
65 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
66 |
* @param mixed $errno |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
67 |
* @param mixed $errstr |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
68 |
* @param mixed $errfile |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
69 |
* @param mixed $errline |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
70 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
71 |
public static function phpstderr($errno, $errstr, $errfile, $errline) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
72 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
73 |
self::stderr($errno . ': Error in ' . $errfile . ':' . $errline . ' - ' . $errstr); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
74 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
75 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
76 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
77 |
* Replaces PHP's exception handler |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
78 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
79 |
* @param Exception $exception |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
80 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
81 |
public static function phpstdex($exception) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
82 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
83 |
self::stderr('Error: ' . $exception->getMessage()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
84 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
85 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
86 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
87 |
* Writes output to STDERR, followed by a newline (optional) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
88 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
89 |
* @param string $errorMessage |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
90 |
* @param string $newLine |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
91 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
92 |
public static function stderr($errorMessage, $newLine = true) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
93 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
94 |
if (error_reporting() === 0) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
95 |
return; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
96 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
97 |
file_put_contents('php://stderr', $errorMessage . ($newLine ? "\r\n" : '')); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
98 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
99 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
100 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
101 |
* Bootstrap the shell command. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
102 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
103 |
* @param array $argv PHP argument values. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
104 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
105 |
public static function bootstrap($argv) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
106 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
107 |
// Abort bootstrapping depending on the MICROSOFT_CONSOLE_COMMAND_HOST constant. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
108 |
if (defined('MICROSOFT_CONSOLE_COMMAND_HOST') && strtolower(MICROSOFT_CONSOLE_COMMAND_HOST) != 'console') { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
109 |
return; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
110 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
111 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
112 |
// Replace error handler |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
113 |
set_error_handler(array('Zend_Service_Console_Command', 'phpstderr')); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
114 |
set_exception_handler(array('Zend_Service_Console_Command', 'phpstdex')); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
115 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
116 |
// Build the application model |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
117 |
$model = self::_buildModel(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
118 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
119 |
// Find a class that corresponds to the $argv[0] script name |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
120 |
$requiredHandlerName = str_replace('.bat', '', str_replace('.sh', '', str_replace('.php', '', strtolower(basename($argv[0]))))); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
121 |
$handler = null; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
122 |
foreach ($model as $possibleHandler) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
123 |
if ($possibleHandler->handler == strtolower($requiredHandlerName)) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
124 |
$handler = $possibleHandler; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
125 |
break; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
126 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
127 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
128 |
if (is_null($handler)) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
129 |
self::stderr("No class found that implements handler '" . $requiredHandlerName . "'. Create a class that is named '" . $requiredHandlerName . "' and extends Zend_Service_Console_Command or is decorated with a docblock comment '@command-handler " . $requiredHandlerName . "'. Make sure it is loaded either through an autoloader or explicitly using require_once()."); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
130 |
die(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
131 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
132 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
133 |
// Find a method that matches the command name |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
134 |
$command = null; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
135 |
foreach ($handler->commands as $possibleCommand) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
136 |
if (in_array(strtolower(isset($argv[1]) ? $argv[1] : '<default>'), $possibleCommand->aliases)) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
137 |
$command = $possibleCommand; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
138 |
break; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
139 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
140 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
141 |
if (is_null($command)) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
142 |
$commandName = (isset($argv[1]) ? $argv[1] : '<default>'); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
143 |
self::stderr("No method found that implements command " . $commandName . ". Create a method in class '" . $handler->class . "' that is named '" . strtolower($commandName) . "Command' or is decorated with a docblock comment '@command-name " . $commandName . "'."); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
144 |
die(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
145 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
146 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
147 |
// Parse parameter values |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
148 |
$parameterValues = array(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
149 |
$missingParameterValues = array(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
150 |
$parameterInputs = array_splice($argv, 2); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
151 |
foreach ($command->parameters as $parameter) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
152 |
// Default value: null |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
153 |
$value = null; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
154 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
155 |
// Consult value providers for value. First one wins. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
156 |
foreach ($parameter->valueproviders as $valueProviderName) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
157 |
if (!class_exists($valueProviderName)) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
158 |
$valueProviderName = 'Zend_Service_Console_Command_ParameterSource_' . $valueProviderName; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
159 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
160 |
$valueProvider = new $valueProviderName(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
161 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
162 |
$value = $valueProvider->getValueForParameter($parameter, $parameterInputs); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
163 |
if (!is_null($value)) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
164 |
break; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
165 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
166 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
167 |
if (is_null($value) && $parameter->required) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
168 |
$missingParameterValues[] = $parameter->aliases[0]; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
169 |
} else if (is_null($value)) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
170 |
$value = $parameter->defaultvalue; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
171 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
172 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
173 |
// Set value |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
174 |
$parameterValues[] = $value; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
175 |
$argvValues[$parameter->aliases[0]] = $value; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
176 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
177 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
178 |
// Mising parameters? |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
179 |
if (count($missingParameterValues) > 0) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
180 |
self::stderr("Some parameters are missing:\r\n" . implode("\r\n", $missingParameterValues)); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
181 |
die(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
182 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
183 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
184 |
// Supply argv in a nice way |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
185 |
$parameterValues['argv'] = $parameterInputs; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
186 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
187 |
// Run the command |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
188 |
$className = $handler->class; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
189 |
$classInstance = new $className(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
190 |
$classInstance->setHandler($handler); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
191 |
call_user_func_array(array($classInstance, $command->method), $parameterValues); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
192 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
193 |
// Restore error handler |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
194 |
restore_exception_handler(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
195 |
restore_error_handler(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
196 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
197 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
198 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
199 |
* Builds the handler model. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
200 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
201 |
* @return array |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
202 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
203 |
protected static function _buildModel() |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
204 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
205 |
$model = array(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
206 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
207 |
$classes = get_declared_classes(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
208 |
foreach ($classes as $class) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
209 |
$type = new ReflectionClass($class); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
210 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
211 |
$handlers = self::_findValueForDocComment('@command-handler', $type->getDocComment()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
212 |
if (count($handlers) == 0 && $type->isSubclassOf('Zend_Service_Console_Command')) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
213 |
// Fallback: if the class extends Zend_Service_Console_Command, register it as |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
214 |
// a command handler. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
215 |
$handlers[] = $class; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
216 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
217 |
$handlerDescriptions = self::_findValueForDocComment('@command-handler-description', $type->getDocComment()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
218 |
$handlerHeaders = self::_findValueForDocComment('@command-handler-header', $type->getDocComment()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
219 |
$handlerFooters = self::_findValueForDocComment('@command-handler-footer', $type->getDocComment()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
220 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
221 |
for ($hi = 0; $hi < count($handlers); $hi++) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
222 |
$handler = $handlers[$hi]; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
223 |
$handlerDescription = isset($handlerDescriptions[$hi]) ? $handlerDescriptions[$hi] : isset($handlerDescriptions[0]) ? $handlerDescriptions[0] : ''; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
224 |
$handlerDescription = str_replace('\r\n', "\r\n", $handlerDescription); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
225 |
$handlerDescription = str_replace('\n', "\n", $handlerDescription); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
226 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
227 |
$handlerModel = (object)array( |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
228 |
'handler' => strtolower($handler), |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
229 |
'description' => $handlerDescription, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
230 |
'headers' => $handlerHeaders, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
231 |
'footers' => $handlerFooters, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
232 |
'class' => $class, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
233 |
'commands' => array() |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
234 |
); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
235 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
236 |
$methods = $type->getMethods(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
237 |
foreach ($methods as $method) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
238 |
$commands = self::_findValueForDocComment('@command-name', $method->getDocComment()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
239 |
if (substr($method->getName(), -7) == 'Command' && !in_array(substr($method->getName(), 0, -7), $commands)) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
240 |
// Fallback: if the method is named <commandname>Command, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
241 |
// register it as a command. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
242 |
$commands[] = substr($method->getName(), 0, -7); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
243 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
244 |
for ($x = 0; $x < count($commands); $x++) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
245 |
$commands[$x] = strtolower($commands[$x]); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
246 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
247 |
$commands = array_unique($commands); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
248 |
$commandDescriptions = self::_findValueForDocComment('@command-description', $method->getDocComment()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
249 |
$commandExamples = self::_findValueForDocComment('@command-example', $method->getDocComment()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
250 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
251 |
if (count($commands) > 0) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
252 |
$command = $commands[0]; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
253 |
$commandDescription = isset($commandDescriptions[0]) ? $commandDescriptions[0] : ''; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
254 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
255 |
$commandModel = (object)array( |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
256 |
'command' => $command, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
257 |
'aliases' => $commands, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
258 |
'description' => $commandDescription, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
259 |
'examples' => $commandExamples, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
260 |
'class' => $class, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
261 |
'method' => $method->getName(), |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
262 |
'parameters' => array() |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
263 |
); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
264 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
265 |
$parameters = $method->getParameters(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
266 |
$parametersFor = self::_findValueForDocComment('@command-parameter-for', $method->getDocComment()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
267 |
for ($pi = 0; $pi < count($parameters); $pi++) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
268 |
// Initialize |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
269 |
$parameter = $parameters[$pi]; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
270 |
$parameterFor = null; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
271 |
$parameterForDefaultValue = null; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
272 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
273 |
// Is it a "catch-all" parameter? |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
274 |
if ($parameter->getName() == 'argv') { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
275 |
continue; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
276 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
277 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
278 |
// Find the $parametersFor with the same name defined |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
279 |
foreach ($parametersFor as $possibleParameterFor) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
280 |
$possibleParameterFor = explode(' ', $possibleParameterFor, 4); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
281 |
if ($possibleParameterFor[0] == '$' . $parameter->getName()) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
282 |
$parameterFor = $possibleParameterFor; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
283 |
break; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
284 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
285 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
286 |
if (is_null($parameterFor)) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
287 |
die('@command-parameter-for missing for parameter $' . $parameter->getName()); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
288 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
289 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
290 |
if (is_null($parameterForDefaultValue) && $parameter->isOptional()) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
291 |
$parameterForDefaultValue = $parameter->getDefaultValue(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
292 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
293 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
294 |
$parameterModel = (object)array( |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
295 |
'name' => '$' . $parameter->getName(), |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
296 |
'defaultvalue' => $parameterForDefaultValue, |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
297 |
'valueproviders' => explode('|', $parameterFor[1]), |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
298 |
'aliases' => explode('|', $parameterFor[2]), |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
299 |
'description' => (isset($parameterFor[3]) ? $parameterFor[3] : ''), |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
300 |
'required' => (isset($parameterFor[3]) ? strpos(strtolower($parameterFor[3]), 'required') !== false && strpos(strtolower($parameterFor[3]), 'required if') === false : false), |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
301 |
); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
302 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
303 |
// Add to model |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
304 |
$commandModel->parameters[] = $parameterModel; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
305 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
306 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
307 |
// Add to model |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
308 |
$handlerModel->commands[] = $commandModel; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
309 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
310 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
311 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
312 |
// Add to model |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
313 |
$model[] = $handlerModel; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
314 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
315 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
316 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
317 |
return $model; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
318 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
319 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
320 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
321 |
* Finds the value for a specific docComment. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
322 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
323 |
* @param string $docCommentName Comment name |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
324 |
* @param unknown_type $docComment Comment object |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
325 |
* @return array |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
326 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
327 |
protected static function _findValueForDocComment($docCommentName, $docComment) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
328 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
329 |
$returnValue = array(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
330 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
331 |
$commentLines = explode("\n", $docComment); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
332 |
foreach ($commentLines as $commentLine) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
333 |
if (strpos($commentLine, $docCommentName . ' ') !== false) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
334 |
$returnValue[] = trim(substr($commentLine, strpos($commentLine, $docCommentName) + strlen($docCommentName) + 1)); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
335 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
336 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
337 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
338 |
return $returnValue; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
339 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
340 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
341 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
342 |
* Display information on an object |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
343 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
344 |
* @param object $object Object |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
345 |
* @param array $propertiesToDump Property names to display |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
346 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
347 |
protected function _displayObjectInformation($object, $propertiesToDump = array()) |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
348 |
{ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
349 |
foreach ($propertiesToDump as $property) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
350 |
printf('%-16s: %s' . "\r\n", $property, $object->$property); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
351 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
352 |
printf("\r\n"); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
353 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
354 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
355 |
/** |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
356 |
* Displays the help information. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
357 |
* |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
358 |
* @command-name <default> |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
359 |
* @command-name -h |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
360 |
* @command-name -help |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
361 |
* @command-description Displays the current help information. |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
362 |
*/ |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
363 |
public function helpCommand() { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
364 |
$handler = $this->getHandler(); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
365 |
$newline = "\r\n"; |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
366 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
367 |
if (count($handler->headers) > 0) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
368 |
foreach ($handler->headers as $header) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
369 |
printf('%s%s', $header, $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
370 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
371 |
printf($newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
372 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
373 |
printf('%s%s', $handler->description, $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
374 |
printf($newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
375 |
printf('Available commands:%s', $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
376 |
foreach ($handler->commands as $command) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
377 |
$description = str_split($command->description, 50); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
378 |
printf(' %-25s %s%s', implode(', ', $command->aliases), $description[0], $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
379 |
for ($di = 1; $di < count($description); $di++) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
380 |
printf(' %-25s %s%s', '', $description[$di], $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
381 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
382 |
printf($newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
383 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
384 |
if (count($command->parameters) > 0) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
385 |
foreach ($command->parameters as $parameter) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
386 |
$description = str_split($parameter->description, 50); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
387 |
printf(' %-23s %s%s', implode(', ', $parameter->aliases), $description[0], $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
388 |
for ($di = 1; $di < count($description); $di++) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
389 |
printf(' %-23s %s%s', '', $description[$di], $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
390 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
391 |
printf($newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
392 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
393 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
394 |
printf($newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
395 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
396 |
if (count($command->examples) > 0) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
397 |
printf(' Example usage:%s', $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
398 |
foreach ($command->examples as $example) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
399 |
printf(' %s%s', $example, $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
400 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
401 |
printf($newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
402 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
403 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
404 |
|
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
405 |
if (count($handler->footers) > 0) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
406 |
printf($newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
407 |
foreach ($handler->footers as $footer) { |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
408 |
printf('%s%s', $footer, $newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
409 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
410 |
printf($newline); |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
411 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
412 |
} |
|
68c69c656a2c
upgrade Zend
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
413 |
} |