@@ -2,7 +2,6 @@  | 
                                                    ||
| 2 | 2 | namespace Wandu\Compiler;  | 
                                                        
| 3 | 3 | |
| 4 | 4 | use Closure;  | 
                                                        
| 5 | -use Wandu\Compiler\Exception\UnknownTokenException;  | 
                                                        |
| 6 | 5 | use Wandu\Compiler\Exception\UnknownTokenFromLexException;  | 
                                                        
| 7 | 6 | |
| 8 | 7 | /**  | 
                                                        
@@ -3,7 +3,6 @@  | 
                                                    ||
| 3 | 3 | |
| 4 | 4 | use Psy\Shell;  | 
                                                        
| 5 | 5 | use Wandu\Console\Command;  | 
                                                        
| 6 | -use Wandu\Q\Queue;  | 
                                                        |
| 7 | 6 | |
| 8 | 7 | class PsyshCommand extends Command  | 
                                                        
| 9 | 8 |  { | 
                                                        
@@ -109,7 +109,7 @@  | 
                                                    ||
| 109 | 109 | }  | 
                                                        
| 110 | 110 | |
| 111 | 111 | /**  | 
                                                        
| 112 | - * @param mixed $method  | 
                                                        |
| 112 | + * @param string|null $method  | 
                                                        |
| 113 | 113 | * @return string  | 
                                                        
| 114 | 114 | */  | 
                                                        
| 115 | 115 | protected function filterMethod($method)  | 
                                                        
@@ -359,7 +359,7 @@  | 
                                                    ||
| 359 | 359 | }  | 
                                                        
| 360 | 360 | |
| 361 | 361 | /**  | 
                                                        
| 362 | - * @param string|\Wandu\Database\Contracts\ExpressionInterface $name  | 
                                                        |
| 362 | + * @param string $name  | 
                                                        |
| 363 | 363 | * @param string $type  | 
                                                        
| 364 | 364 | * @param array $attributes  | 
                                                        
| 365 | 365 | * @return \Wandu\Database\Query\Expression\ColumnExpression|\Wandu\Database\Contracts\ExpressionInterface  | 
                                                        
@@ -52,6 +52,12 @@  | 
                                                    ||
| 52 | 52 | return $this;  | 
                                                        
| 53 | 53 | }  | 
                                                        
| 54 | 54 | |
| 55 | + /**  | 
                                                        |
| 56 | + * @param string $logicalOp  | 
                                                        |
| 57 | + * @param callable $name  | 
                                                        |
| 58 | + * @param string $operator  | 
                                                        |
| 59 | + * @param string $value  | 
                                                        |
| 60 | + */  | 
                                                        |
| 55 | 61 | protected function addWhereQuery($logicalOp, $name, $operator = null, $value = null)  | 
                                                        
| 56 | 62 |      { | 
                                                        
| 57 | 63 |          if (!is_string($name) && is_callable($name)) { | 
                                                        
@@ -40,16 +40,19 @@ discard block  | 
                                                    ||
| 40 | 40 | /**  | 
                                                        
| 41 | 41 | * @param string $key  | 
                                                        
| 42 | 42 | * @param mixed $value  | 
                                                        
| 43 | + * @return void  | 
                                                        |
| 43 | 44 | */  | 
                                                        
| 44 | 45 | public function set($key, $value);  | 
                                                        
| 45 | 46 | |
| 46 | 47 | /**  | 
                                                        
| 47 | 48 | * @param string[] ...$keys  | 
                                                        
| 49 | + * @return void  | 
                                                        |
| 48 | 50 | */  | 
                                                        
| 49 | 51 | public function remove(...$keys);  | 
                                                        
| 50 | 52 | |
| 51 | 53 | /**  | 
                                                        
| 52 | 54 | * @param string[] ...$keys  | 
                                                        
| 55 | + * @return boolean  | 
                                                        |
| 53 | 56 | */  | 
                                                        
| 54 | 57 | public function has(...$keys);  | 
                                                        
| 55 | 58 | |
@@ -80,7 +83,7 @@ discard block  | 
                                                    ||
| 80 | 83 | |
| 81 | 84 | /**  | 
                                                        
| 82 | 85 | * @param callable $handler  | 
                                                        
| 83 | - * @return \Wandu\Collection\Contracts\MapInterface<\Wandu\Collection\Contracts\ListInterface>  | 
                                                        |
| 86 | + * @return \Wandu\Collection\ArrayMap  | 
                                                        |
| 84 | 87 | */  | 
                                                        
| 85 | 88 | public function groupBy(callable $handler);  | 
                                                        
| 86 | 89 | |
@@ -109,7 +109,7 @@  | 
                                                    ||
| 109 | 109 | }  | 
                                                        
| 110 | 110 | |
| 111 | 111 | /**  | 
                                                        
| 112 | - * @param mixed $name  | 
                                                        |
| 112 | + * @param string $name  | 
                                                        |
| 113 | 113 | */  | 
                                                        
| 114 | 114 | protected function validNameArgument($name)  | 
                                                        
| 115 | 115 |      { | 
                                                        
@@ -49,6 +49,10 @@ discard block  | 
                                                    ||
| 49 | 49 |          $this->output->writeln("<info>Install Complete!</info>"); | 
                                                        
| 50 | 50 | }  | 
                                                        
| 51 | 51 | |
| 52 | + /**  | 
                                                        |
| 53 | + * @param string $appBasePath  | 
                                                        |
| 54 | + * @param string $appNamespace  | 
                                                        |
| 55 | + */  | 
                                                        |
| 52 | 56 | protected function install($appBasePath, $appNamespace)  | 
                                                        
| 53 | 57 |      { | 
                                                        
| 54 | 58 | $installer = new SkeletonBuilder($appBasePath, __DIR__ . '/../skeleton');  | 
                                                        
@@ -83,6 +87,9 @@ discard block  | 
                                                    ||
| 83 | 87 |          (new Process("{$composer} dump-autoload", getcwd()))->run(); | 
                                                        
| 84 | 88 | }  | 
                                                        
| 85 | 89 | |
| 90 | + /**  | 
                                                        |
| 91 | + * @param string $appNamespace  | 
                                                        |
| 92 | + */  | 
                                                        |
| 86 | 93 | protected function saveAutoloadToComposer($appNamespace)  | 
                                                        
| 87 | 94 |      { | 
                                                        
| 88 | 95 |          $this->output->write("save autoload setting to composer... "); | 
                                                        
@@ -109,6 +116,10 @@ discard block  | 
                                                    ||
| 109 | 116 |          $this->output->writeln("<info>ok</info>"); | 
                                                        
| 110 | 117 | }  | 
                                                        
| 111 | 118 | |
| 119 | + /**  | 
                                                        |
| 120 | + * @param string $message  | 
                                                        |
| 121 | + * @param string $default  | 
                                                        |
| 122 | + */  | 
                                                        |
| 112 | 123 | protected function askAppNamespace($message, $default)  | 
                                                        
| 113 | 124 |      { | 
                                                        
| 114 | 125 |          return $this->io->ask($message, $default, function ($namespace) { | 
                                                        
@@ -138,6 +138,9 @@ discard block  | 
                                                    ||
| 138 | 138 | return $validator;  | 
                                                        
| 139 | 139 | }  | 
                                                        
| 140 | 140 | |
| 141 | + /**  | 
                                                        |
| 142 | + * @param string $pattern  | 
                                                        |
| 143 | + */  | 
                                                        |
| 141 | 144 | protected function getMethodAndParams($pattern)  | 
                                                        
| 142 | 145 |      { | 
                                                        
| 143 | 146 |          if (false === $pivot = strpos($pattern, ':')) { | 
                                                        
@@ -147,6 +150,10 @@ discard block  | 
                                                    ||
| 147 | 150 |          preg_match_all('/\/[^\/]*\/|[^,]+/', substr($pattern, $pivot + 1), $matches); | 
                                                        
| 148 | 151 | $params = array_reduce(  | 
                                                        
| 149 | 152 | $matches[0],  | 
                                                        
| 153 | +  | 
                                                        |
| 154 | + /**  | 
                                                        |
| 155 | + * @param string $carry  | 
                                                        |
| 156 | + */  | 
                                                        |
| 150 | 157 |              function ($carry, $value) { | 
                                                        
| 151 | 158 | $value = trim($value);  | 
                                                        
| 152 | 159 |                  if ($value) { |