Skip to content

Commit

Permalink
fix exception name and ensure metadata are generated only once
Browse files Browse the repository at this point in the history
  • Loading branch information
goetas committed Jan 30, 2021
1 parent 86592c7 commit d609a35
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/Loader/ArrayMetadataLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace GoetasWebservices\SoapServices\Metadata\Loader;

use GoetasWebservices\SoapServices\Exception\MetadataException;
use GoetasWebservices\SoapServices\Metadata\Exception\MetadataException;

class ArrayMetadataLoader implements MetadataLoaderInterface
{
Expand Down
14 changes: 11 additions & 3 deletions src/Loader/DevMetadataLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace GoetasWebservices\SoapServices\Metadata\Loader;

use GoetasWebservices\SoapServices\Exception\MetadataException;
use GoetasWebservices\SoapServices\Metadata\Exception\MetadataException;
use GoetasWebservices\SoapServices\Metadata\Generator\MetadataGenerator;
use GoetasWebservices\XML\SOAPReader\SoapReader;
use GoetasWebservices\XML\WSDLReader\DefinitionsReader;
Expand Down Expand Up @@ -41,9 +41,17 @@ public function __construct(MetadataGenerator $metadataGenerator, SoapReader $so
public function load(string $wsdl): array
{
if (!isset($this->metadataCache[$wsdl])) {
$this->wsdlReader->readFile($wsdl);
try {
$this->metadataCache[$wsdl] = $this->metadataGenerator->generate($this->soapReader->getServices());
$definitions = $this->wsdlReader->readFile($wsdl);

$services = [];
foreach ($definitions->getServices() as $service) {
foreach ($service->getPorts() as $port) {
$services[] = $this->soapReader->getServiceByPort($port);
}
}

$this->metadataCache[$wsdl] = $this->metadataGenerator->generate($services);
} catch (\Throwable $e) {
throw new MetadataException(sprintf('Can not generate metadata information for %s', $wsdl), 0, $e);
}
Expand Down

0 comments on commit d609a35

Please sign in to comment.