phar-io/manifest

repository·master·Indexed 27 days ago

https://github.com/phar-io/manifest

A PHP component for reading and writing phar.io manifest information from PHP Archives (PHAR). It provides tools like ManifestLoader for loading XML files and ManifestSerializer for converting Manifest objects back into XML strings.

Tokens
701
Snippets
3
Records
3
Agent score
43%

What's inside phar-io/manifest

  1. Install phar-io/manifest via Composer

    master

    You can add this library as a dependency to your project using Composer.

    To add it as a local, per-project dependency:

    composer require phar-io/manifest

    To add it as a development-time dependency (e.g., for running test suites):

    composer require --dev phar-io/manifest
    composer require phar-io/manifest
  2. Read a manifest.xml file

    master

    Use PharIo\Manifest\ManifestLoader::fromFile() to load a manifest from an XML file. You can then use PharIo\Manifest\ManifestSerializer to convert the loaded Manifest object back into an XML string.

    use PharIo\Manifest\ManifestLoader;
    use PharIo\Manifest\ManifestSerializer;
    
    $manifest = ManifestLoader::fromFile('manifest.xml');
    
    var_dump($manifest);
    
    echo (new ManifestSerializer)->serializeToString($manifest);
  3. Create a Manifest via API

    master

    You can programmatically construct a PharIo\Manifest\Manifest object by instantiating its required components: ApplicationName, Version, Manifest type (e.g., Library), CopyrightInformation, RequirementCollection, and BundledComponentCollection.

    $bundled = new \PharIo\Manifest\BundledComponentCollection();
    $bundled->add(
        new \PharIo\Manifest\BundledComponent('vendor/packageA', new \PharIo\Version\Version('1.2.3-dev')
        )
    );
    
    $manifest = new PharIo\Manifest\Manifest(
        new \PharIo\Manifest\ApplicationName('vendor/package'),
        new \PharIo\Version\Version('1.0.0'),
        new \PharIo\Manifest\Library(),
        new \PharIo\Manifest\CopyrightInformation(
            new \PharIo\Manifest\AuthorCollection(),
            new \PharIo\Manifest\License(
                'BSD-3-Clause',
                new \PharIo\Manifest\Url('https://spdx.org/licenses/BSD-3-Clause.html')
            )
        ),
        new \PharIo\Manifest\RequirementCollection(),
        $bundled
    );
    
    echo (new ManifestSerializer)->serializeToString($manifest);