File tree Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Original file line number Diff line number Diff line change 1313
1414use Symfony \Component \DependencyInjection \ContainerAwareInterface ;
1515use Symfony \Component \Console \Application as BaseApplication ;
16+ use Symfony \Component \Console \Command \Command ;
1617use Symfony \Component \Console \Input \InputInterface ;
1718use Symfony \Component \Console \Input \InputOption ;
1819use Symfony \Component \Console \Output \OutputInterface ;
@@ -120,6 +121,16 @@ public function all($namespace = null)
120121 return parent ::all ($ namespace );
121122 }
122123
124+ /**
125+ * {@inheritdoc}
126+ */
127+ public function add (Command $ command )
128+ {
129+ $ this ->registerCommands ();
130+
131+ return parent ::add ($ command );
132+ }
133+
123134 protected function registerCommands ()
124135 {
125136 if ($ this ->commandsRegistered ) {
Original file line number Diff line number Diff line change @@ -115,6 +115,21 @@ public function testBundleCommandsHaveRightContainer()
115115 $ tester ->run (array ('command ' => 'foo ' ));
116116 }
117117
118+ public function testBundleCommandCanOverriddeAPreExistingCommandWithTheSameName ()
119+ {
120+ $ command = new Command ('example ' );
121+
122+ $ bundle = $ this ->createBundleMock (array ($ command ));
123+
124+ $ kernel = $ this ->getKernel (array ($ bundle ));
125+
126+ $ application = new Application ($ kernel );
127+ $ newCommand = new Command ('example ' );
128+ $ application ->add ($ newCommand );
129+
130+ $ this ->assertSame ($ newCommand , $ application ->get ('example ' ));
131+ }
132+
118133 private function getKernel (array $ bundles , $ useDispatcher = false )
119134 {
120135 $ container = $ this ->getMockBuilder ('Symfony\Component\DependencyInjection\ContainerInterface ' )->getMock ();
You can’t perform that action at this time.
0 commit comments