Skip to content

Commit c785686

Browse files
committed
Merge pull request #9 from xl32/swagger-php-2.0
Support for Swagger 2.0
2 parents 23c63cd + 11238bf commit c785686

3 files changed

Lines changed: 28 additions & 10 deletions

File tree

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
],
1313
"require": {
1414
"php": ">=5.3.3",
15-
"zircote/swagger-php": "~0.9.0"
15+
"zircote/swagger-php": "~2.0"
1616
},
1717
"autoload": {
1818
"psr-0": {

src/SwaggerModule/Controller/DocumentationController.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ class DocumentationController extends AbstractActionController
3535
*/
3636
public function displayAction()
3737
{
38-
/** @var $swagger \Swagger\Swagger */
39-
$swagger = $this->serviceLocator->get('Swagger\Swagger');
40-
$jsonModel = new JsonModel();
41-
return $jsonModel->setVariables($swagger->getResourceList());
38+
/** @var $swagger \Swagger\Annotations\Swagger */
39+
$swagger = $this->serviceLocator->get('Swagger\Annotations\Swagger');
40+
$jsonModel = new JsonModel((array)$swagger->jsonSerialize());
41+
return $jsonModel;
4242
}
4343

4444
/**
@@ -49,7 +49,7 @@ public function displayAction()
4949
public function detailsAction()
5050
{
5151
/** @var $swagger \Swagger\Swagger */
52-
$swagger = $this->serviceLocator->get('Swagger\Swagger');
52+
$swagger = $this->serviceLocator->get('Swagger\Annotations\Swagger');
5353

5454
/** @var $options \SwaggerModule\Options\ModuleOptions */
5555
$options = $this->serviceLocator->get('SwaggerModule\Options\ModuleOptions');

src/SwaggerModule/Module.php

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121
namespace SwaggerModule;
2222

2323
use RuntimeException;
24-
use Swagger\Swagger as SwaggerLibrary;
2524
use SwaggerModule\Options\ModuleOptions as SwaggerModuleOptions;
25+
use Swagger\StaticAnalyser as SwaggerStaticAnalyser;
26+
use Swagger\Analysis as SwaggerAnalysis;
27+
use Swagger\Util as SwaggerUtil;
2628
use Zend\Console\Adapter\AdapterInterface;
2729
use Zend\ModuleManager\Feature\ConfigProviderInterface;
2830
use 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

Comments
 (0)