/** * @see \WsdlToPhp\PackageGenerator\Parser\Wsdl\AbstractParser::parseWsdl() */ protected function parseWsdl(Wsdl $wsdl, Schema $schema = null) { foreach ($this->getTags() as $tag) { if ($tag instanceof AbstractTagImport && $tag->getLocationAttribute() != '') { $finalLocation = Utils::resolveCompletePath($this->getLocation($wsdl, $schema), $tag->getLocationAttribute()); $this->generator->addSchemaToWsdl($wsdl, $finalLocation); } } }
/** * @param string $metaName * @param mixed $metaValue * @return string|null */ public static function getMetaValueAnnotation($metaName, $metaValue) { $meta = null; if (is_array($metaValue)) { $metaValue = implode(' | ', $metaValue); } $metaValue = GeneratorUtils::cleanComment($metaValue, ', ', stripos($metaName, 'SOAPHeader') === false); if (is_scalar($metaValue)) { $meta = sprintf("\t- %s: %s", $metaName, $metaValue); } return $meta; }
/** * Clean a string to make it valid as PHP variable * @uses GeneratorUtils::cleanString() * @param string $string the string to clean * @param bool $keepMultipleUnderscores optional, allows to keep the multiple consecutive underscores * @return string */ public static function cleanString($string, $keepMultipleUnderscores = true) { return GeneratorUtils::cleanString($string, $keepMultipleUnderscores); }
/** * @param string $url * @return string */ public function getUrlContent($url) { if (strpos($url, '://') !== false) { return Utils::getContentFromUrl($url, $this->getOptionBasicLogin(), $this->getOptionBasicPassword(), $this->getOptionProxyHost(), $this->getOptionProxyPort(), $this->getOptionProxyLogin(), $this->getOptionProxyPassword(), $this->getSoapClient()->getSoapClientStreamContextOptions()); } elseif (is_file($url)) { return file_get_contents($url); } return null; }
/** * @see \WsdlToPhp\PackageGenerator\File\AbstractFile::writeFile() * @param bool $withSrc * @return int|bool */ public function writeFile($withSrc = true) { if (!$this->getModel() instanceof AbstractModel) { throw new \InvalidArgumentException('You MUST define the model before begin able to generate the file', __LINE__); } GeneratorUtils::createDirectory($this->getFileDestination($withSrc)); $this->defineNamespace()->defineUseStatement()->addAnnotationBlock()->addClassElement(); return parent::writeFile(); }
/** * Returns potential default value * @uses AbstractModel::getMetaValueFirstSet() * @uses Utils::getValueWithinItsType() * @uses StructAttribute::getType() * @uses StructAttribute::getContainsElements() * @return mixed */ public function getDefaultValue() { if ($this->isArray()) { return array(); } return Utils::getValueWithinItsType($this->getMetaValueFirstSet(array('default', 'Default', 'DefaultValue', 'defaultValue', 'defaultvalue')), $this->getType()); }
/** * */ public function testGetEndPartStringEndingWithInt() { $this->assertSame('Operation', Utils::getPart(GeneratorOptions::VALUE_END, 'MyOperation0')); }
/** * Allows to define from which class the curent model extends * @param bool $short * @return string */ public function getExtends($short = false) { $extends = $this->getGenerator()->getOptionSoapClientClass(); return $short ? Utils::removeNamespace($extends) : $extends; }
/** * @param bool $withNamespace * @param bool $withinItsType * @param string $asType * @return mixed */ public function getValue($withNamespace = false, $withinItsType = true, $asType = self::DEFAULT_VALUE_TYPE) { $value = $this->getAttribute()->value; if ($withNamespace === false && !empty($value)) { $value = implode('', array_slice(explode(':', $value), -1, 1)); } if ($value !== null && $withinItsType === true) { $value = Utils::getValueWithinItsType($value, empty($asType) ? $this->getType() : $asType); } return $value; }
/** * Returns the value with good type * @uses AbstractModel::getName() * @uses Utils::getValueWithinItsType() * @return mixed */ public function getValue() { return Utils::getValueWithinItsType($this->getName()); }
/** * Allows to define from which class the curent model extends * @param bool $short * @return string */ public function getExtends($short = false) { $extends = ''; if ($this->isArray()) { $extends = $this->getGenerator()->getOptionStructArrayClass(); } elseif (!$this->getIsRestriction()) { $extends = $this->getGenerator()->getOptionStructClass(); } return $short ? Utils::removeNamespace($extends) : $extends; }
/** * @expectedException \InvalidArgumentException */ public function testExceptionOntInitDirectory() { Utils::createDirectory($destination = self::getTestDirectory() . 'notwritable', 0444); $generator = self::getBingGeneratorInstance(); $generator->setOptionComposerName('wsdltophp/invalid')->setOptionDestination($destination); $generator->generatePackage(); }
/** * */ public function testCleanString() { $this->assertSame('КонтактнаяИнформация', Utils::cleanString('КонтактнаяИнформация')); $this->assertSame('____________________', Utils::cleanString('-"\'{&~(|`\\^¨@)°]+=}£')); $this->assertSame('1234567890aBcD_EfGhI', Utils::cleanString('1234567890aBcD_EfGhI')); $this->assertSame('äöüß', Utils::cleanString('äöüß')); $this->assertSame('θωερτψυιοπασδφγηςκλζχξωβνμάέήίϊΐόύϋΰώ', 'θωερτψυιοπασδφγηςκλζχξωβνμάέήίϊΐόύϋΰώ'); }