3232use Cognesy \Auxiliary \Beads \Presentation \Console \Command \ShowCommand ;
3333use Cognesy \Auxiliary \Beads \Presentation \Console \Command \UpdateCommand ;
3434use Symfony \Component \Console \Application ;
35+ use Symfony \Component \Console \Command \Command ;
3536
3637class TbdApplicationFactory
3738{
@@ -44,19 +45,33 @@ public function create(): Application {
4445 $ ids = new TbdIdFactory ();
4546 $ map = new TbdInputMapper ();
4647
47- $ app ->addCommand (new InitCommand (new InitAction ($ store )));
48- $ app ->addCommand (new ListCommand (new ListAction ($ store ), $ map ));
49- $ app ->addCommand (new ReadyCommand (new ReadyAction ($ store )));
50- $ app ->addCommand (new ShowCommand (new ShowAction ($ store )));
51- $ app ->addCommand (new CreateCommand (new CreateAction ($ store , $ ids , $ clock , $ map ), $ map ));
52- $ app ->addCommand (new UpdateCommand (new UpdateAction ($ store , $ clock , $ map ), $ map ));
53- $ app ->addCommand (new CloseCommand (new CloseAction ($ store , $ clock )));
54- $ app ->addCommand (new CommentCommand (new CommentAction ($ store , $ clock )));
55- $ app ->addCommand (new DepAddCommand (new DepAddAction ($ store , $ clock , $ map )));
56- $ app ->addCommand (new DepRemoveCommand (new DepRemoveAction ($ store , $ clock )));
57- $ app ->addCommand (new DepTreeCommand (new DepTreeAction ($ store ), $ map ));
58- $ app ->addCommand (new CompactCommand (new CompactAction ($ store )));
48+ $ commands = [
49+ new InitCommand (new InitAction ($ store )),
50+ new ListCommand (new ListAction ($ store ), $ map ),
51+ new ReadyCommand (new ReadyAction ($ store )),
52+ new ShowCommand (new ShowAction ($ store )),
53+ new CreateCommand (new CreateAction ($ store , $ ids , $ clock , $ map ), $ map ),
54+ new UpdateCommand (new UpdateAction ($ store , $ clock , $ map ), $ map ),
55+ new CloseCommand (new CloseAction ($ store , $ clock )),
56+ new CommentCommand (new CommentAction ($ store , $ clock )),
57+ new DepAddCommand (new DepAddAction ($ store , $ clock , $ map )),
58+ new DepRemoveCommand (new DepRemoveAction ($ store , $ clock )),
59+ new DepTreeCommand (new DepTreeAction ($ store ), $ map ),
60+ new CompactCommand (new CompactAction ($ store )),
61+ ];
62+
63+ foreach ($ commands as $ command ) {
64+ $ this ->registerCommand ($ app , $ command );
65+ }
5966
6067 return $ app ;
6168 }
69+
70+ private function registerCommand (Application $ app , Command $ command ): void {
71+ if (method_exists ($ app , 'addCommand ' )) {
72+ $ app ->addCommand ($ command );
73+ } else {
74+ $ app ->add ($ command );
75+ }
76+ }
6277}
0 commit comments