<?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() 
    { 
        return __DIR__.'/schema'; 
    } 
 
    public function getNamespace() 
    { 
        return 'http://www.example.com/schema/projectwithxsdinphar'; 
    } 
 
    public function getAlias() 
    { 
        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(); ?>'); 
 
 |