48 lines
1.3 KiB
PHP
Executable File
48 lines
1.3 KiB
PHP
Executable File
<?php
|
|
|
|
$file = __DIR__.'/ProjectWithXsdExtensionInPhar.phar';
|
|
if (is_file($file)) {
|
|
@unlink($file);
|
|
}
|
|
|
|
$phar = new Phar($file, 0, 'ProjectWithXsdExtensionInPhar.phar');
|
|
$phar->addFromString('ProjectWithXsdExtensionInPhar.php', <<<'EOT'
|
|
<?php
|
|
|
|
class ProjectWithXsdExtensionInPhar extends ProjectExtension
|
|
{
|
|
public function getXsdValidationBasePath(): string
|
|
{
|
|
return __DIR__.'/schema';
|
|
}
|
|
|
|
public function getNamespace(): string
|
|
{
|
|
return 'http://www.example.com/schema/projectwithxsdinphar';
|
|
}
|
|
|
|
public function getAlias(): string
|
|
{
|
|
return 'projectwithxsdinphar';
|
|
}
|
|
}
|
|
EOT
|
|
);
|
|
$phar->addFromString('schema/project-1.0.xsd', <<<'EOT'
|
|
<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
|
<xsd:schema xmlns="http://www.example.com/schema/projectwithxsdinphar"
|
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
targetNamespace="http://www.example.com/schema/projectwithxsdinphar"
|
|
elementFormDefault="qualified">
|
|
|
|
<xsd:element name="bar" type="bar" />
|
|
|
|
<xsd:complexType name="bar">
|
|
<xsd:attribute name="foo" type="xsd:string" />
|
|
</xsd:complexType>
|
|
</xsd:schema>
|
|
EOT
|
|
);
|
|
$phar->setStub('<?php Phar::mapPhar("ProjectWithXsdExtensionInPhar.phar"); require_once "phar://ProjectWithXsdExtensionInPhar.phar/ProjectWithXsdExtensionInPhar.php"; __HALT_COMPILER(); ?>');
|