2121namespace SwaggerModule ;
2222
2323use RuntimeException ;
24- use Swagger \Swagger as SwaggerLibrary ;
2524use SwaggerModule \Options \ModuleOptions as SwaggerModuleOptions ;
25+ use Swagger \StaticAnalyser as SwaggerStaticAnalyser ;
26+ use Swagger \Analysis as SwaggerAnalysis ;
27+ use Swagger \Util as SwaggerUtil ;
2628use Zend \Console \Adapter \AdapterInterface ;
2729use Zend \ModuleManager \Feature \ConfigProviderInterface ;
2830use Zend \ModuleManager \Feature \ServiceProviderInterface ;
@@ -47,7 +49,7 @@ public function getServiceConfig()
4749 {
4850 return array (
4951 'aliases ' => array (
50- 'service.swagger ' => 'Swagger\Swagger ' ,
52+ 'service.swagger ' => 'Swagger\Annotations\ Swagger ' ,
5153 ),
5254
5355 'factories ' => array (
@@ -62,10 +64,26 @@ public function getServiceConfig()
6264 return new SwaggerModuleOptions ($ config );
6365 },
6466
65- 'Swagger\Swagger ' => function ($ serviceManager ) {
67+ 'Swagger\Annotations\ Swagger ' => function ($ serviceManager ) {
6668 /** @var $options \SwaggerModule\Options\ModuleOptions */
6769 $ options = $ serviceManager ->get ('SwaggerModule\Options\ModuleOptions ' );
68- return new SwaggerLibrary ($ options ->getPaths ());
70+ $ analyser = new SwaggerStaticAnalyser ();
71+ $ analysis = new SwaggerAnalysis ();
72+ $ processors = SwaggerAnalysis::processors ();
73+
74+ // Crawl directory and parse all files
75+ $ paths = $ options ->getPaths ();
76+ foreach ($ paths as $ directory ) {
77+ $ finder = SwaggerUtil::finder ($ directory );
78+ foreach ($ finder as $ file ) {
79+ $ analysis ->addAnalysis ($ analyser ->fromFile ($ file ->getPathname ()));
80+ }
81+ }
82+ // Post processing
83+ $ analysis ->process ($ processors );
84+ // Validation (Generate notices & warnings)
85+ $ analysis ->validate ();
86+ return $ analysis ->swagger ;
6987 },
7088 )
7189 );
0 commit comments