PK 4CV'c c phpunit.xml.distnu W+A src/ tests/ PK 4CVŕWde de composer.locknu W+A { "_readme": [ "This file locks the dependencies of your project to a known state", "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], "hash": "795eb5f72b89c567d373834adbd578a5", "packages": [ { "name": "sebastian/version", "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", "reference": "a77d9123f8e809db3fbdea15038c27a95da4058b" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/a77d9123f8e809db3fbdea15038c27a95da4058b", "reference": "a77d9123f8e809db3fbdea15038c27a95da4058b", "shasum": "" }, "type": "library", "autoload": { "classmap": [ "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de", "role": "lead" } ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", "time": "2014-12-15 14:25:24" }, { "name": "symfony/console", "version": "v2.6.6", "target-dir": "Symfony/Component/Console", "source": { "type": "git", "url": "https://github.com/symfony/Console.git", "reference": "5b91dc4ed5eb08553f57f6df04c4730a73992667" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/Console/zipball/5b91dc4ed5eb08553f57f6df04c4730a73992667", "reference": "5b91dc4ed5eb08553f57f6df04c4730a73992667", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { "psr/log": "~1.0", "symfony/event-dispatcher": "~2.1", "symfony/phpunit-bridge": "~2.7", "symfony/process": "~2.1" }, "suggest": { "psr/log": "For using the console logger", "symfony/event-dispatcher": "", "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.6-dev" } }, "autoload": { "psr-0": { "Symfony\\Component\\Console\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" } ], "description": "Symfony Console Component", "homepage": "http://symfony.com", "time": "2015-03-30 15:54:10" } ], "packages-dev": [ { "name": "andrewsville/php-token-reflection", "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/Andrewsville/PHP-Token-Reflection.git", "reference": "e6d0ac2baf66cdf154be34c3d2a2aa1bd4b426ee" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/Andrewsville/PHP-Token-Reflection/zipball/e6d0ac2baf66cdf154be34c3d2a2aa1bd4b426ee", "reference": "e6d0ac2baf66cdf154be34c3d2a2aa1bd4b426ee", "shasum": "" }, "require": { "ext-tokenizer": "*", "php": ">=5.3.0" }, "type": "library", "autoload": { "psr-0": { "TokenReflection": "./" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3" ], "authors": [ { "name": "Ondřej Nešpor", "homepage": "https://github.com/andrewsville" }, { "name": "Jaroslav Hanslík", "homepage": "https://github.com/kukulich" } ], "description": "Library emulating the PHP internal reflection using just the tokenized source code.", "homepage": "http://andrewsville.github.com/PHP-Token-Reflection/", "keywords": [ "library", "reflection", "tokenizer" ], "time": "2014-08-06 16:37:08" }, { "name": "bartlett/php-reflect", "version": "3.0.x-dev", "source": { "type": "git", "url": "https://github.com/llaville/php-reflect.git", "reference": "7efd1d03583b32d8970100b5b8dc2dfd15b213e8" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/llaville/php-reflect/zipball/7efd1d03583b32d8970100b5b8dc2dfd15b213e8", "reference": "7efd1d03583b32d8970100b5b8dc2dfd15b213e8", "shasum": "" }, "require": { "doctrine/collections": "~1.2", "ext-date": "*", "ext-json": "*", "ext-pcre": "*", "ext-phar": "*", "ext-reflection": "*", "ext-spl": "*", "ext-tokenizer": "*", "justinrainbow/json-schema": "~1.3", "nikic/php-parser": "~1.1", "php": ">=5.3.2", "phpdocumentor/reflection-docblock": "~2.0", "sebastian/version": "~1.0", "seld/jsonlint": "~1.1", "symfony/console": "~2.5", "symfony/dependency-injection": "~2.5", "symfony/event-dispatcher": "~2.5", "symfony/finder": "~2.5", "symfony/stopwatch": "~2.5" }, "require-dev": { "bartlett/phpunit-loggertestlistener": "~1.1", "bartlett/umlwriter": "~1.0", "doctrine/cache": "~1.3", "monolog/monolog": "~1.10", "psr/log": "~1.0" }, "suggest": { "bartlett/phpunit-loggertestlistener": "Allow logging unit tests to your favorite PSR-3 logger interface", "bartlett/umlwriter": "Allow writing UML class diagrams (Graphviz or PlantUML)", "doctrine/cache": "Allow caching results", "monolog/monolog": "Allow logging events with the LogPlugin", "psr/log": "Allow logging events with the LogPlugin" }, "bin": [ "bin/phpreflect" ], "type": "library", "autoload": { "psr-0": { "Bartlett\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { "name": "Laurent Laville", "email": "pear@laurent-laville.org", "homepage": "https://github.com/llaville", "role": "Lead" } ], "description": "Adds the ability to reverse-engineer classes, interfaces, functions, constants, namespaces, traits and more.", "homepage": "http://php5.laurent-laville.org/reflect/", "keywords": [ "reflection", "reverse-engineer" ], "time": "2015-03-31 13:52:02" }, { "name": "doctrine/collections", "version": "v1.2", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/collections/zipball/b99c5c46c87126201899afe88ec490a25eedd6a2", "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2", "shasum": "" }, "require": { "php": ">=5.3.2" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.2.x-dev" } }, "autoload": { "psr-0": { "Doctrine\\Common\\Collections\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Jonathan Wage", "email": "jonwage@gmail.com", "homepage": "http://www.jwage.com/", "role": "Creator" }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com", "homepage": "http://www.instaclick.com" }, { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com", "homepage": "https://github.com/schmittjoh", "role": "Developer of wrapped JMSSerializerBundle" } ], "description": "Collections Abstraction library", "homepage": "http://www.doctrine-project.org", "keywords": [ "array", "collections", "iterator" ], "time": "2014-02-03 23:07:43" }, { "name": "justinrainbow/json-schema", "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", "reference": "2465fe486c864e30badaa4d005ebdf89dbc503f3" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2465fe486c864e30badaa4d005ebdf89dbc503f3", "reference": "2465fe486c864e30badaa4d005ebdf89dbc503f3", "shasum": "" }, "require": { "php": ">=5.3.0" }, "require-dev": { "json-schema/json-schema-test-suite": "1.1.0", "phpdocumentor/phpdocumentor": "~2", "phpunit/phpunit": "~3.7" }, "bin": [ "bin/validate-json" ], "type": "library", "extra": { "branch-alias": { "dev-master": "1.4.x-dev" } }, "autoload": { "psr-0": { "JsonSchema": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { "name": "Bruno Prieto Reis", "email": "bruno.p.reis@gmail.com" }, { "name": "Justin Rainbow", "email": "justin.rainbow@gmail.com" }, { "name": "Igor Wiedler", "email": "igor@wiedler.ch" }, { "name": "Robert Schönthal", "email": "seroscho@googlemail.com" } ], "description": "A library to validate a json schema.", "homepage": "https://github.com/justinrainbow/json-schema", "keywords": [ "json", "schema" ], "time": "2015-03-27 16:41:39" }, { "name": "nikic/php-parser", "version": "v1.2.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", "reference": "dba7524b3724f25b947cd26a580787c55c8a6f9b" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dba7524b3724f25b947cd26a580787c55c8a6f9b", "reference": "dba7524b3724f25b947cd26a580787c55c8a6f9b", "shasum": "" }, "require": { "ext-tokenizer": "*", "php": ">=5.3" }, "type": "library", "extra": { "branch-alias": { "dev-master": "1.2-dev" } }, "autoload": { "files": [ "lib/bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], "authors": [ { "name": "Nikita Popov" } ], "description": "A PHP parser written in PHP", "keywords": [ "parser", "php" ], "time": "2015-03-24 19:10:28" }, { "name": "phpdocumentor/reflection-docblock", "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8", "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { "phpunit/phpunit": "~4.0" }, "suggest": { "dflydev/markdown": "~1.0", "erusev/parsedown": "~1.0" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.0.x-dev" } }, "autoload": { "psr-0": { "phpDocumentor": [ "src/" ] } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Mike van Riel", "email": "mike.vanriel@naenius.com" } ], "time": "2015-02-03 12:10:50" }, { "name": "seld/jsonlint", "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", "reference": "863ae85c6d3ef60ca49cb12bd051c4a0648c40c4" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/863ae85c6d3ef60ca49cb12bd051c4a0648c40c4", "reference": "863ae85c6d3ef60ca49cb12bd051c4a0648c40c4", "shasum": "" }, "require": { "php": ">=5.3.0" }, "bin": [ "bin/jsonlint" ], "type": "library", "autoload": { "psr-4": { "Seld\\JsonLint\\": "src/Seld/JsonLint/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", "homepage": "http://seld.be" } ], "description": "JSON Linter", "keywords": [ "json", "linter", "parser", "validator" ], "time": "2015-01-04 21:18:15" }, { "name": "symfony/dependency-injection", "version": "v2.6.6", "target-dir": "Symfony/Component/DependencyInjection", "source": { "type": "git", "url": "https://github.com/symfony/DependencyInjection.git", "reference": "8e9007012226b4bd41f8afed855c452cf5edc3a6" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/8e9007012226b4bd41f8afed855c452cf5edc3a6", "reference": "8e9007012226b4bd41f8afed855c452cf5edc3a6", "shasum": "" }, "require": { "php": ">=5.3.3" }, "conflict": { "symfony/expression-language": "<2.6" }, "require-dev": { "symfony/config": "~2.2", "symfony/expression-language": "~2.6", "symfony/phpunit-bridge": "~2.7", "symfony/yaml": "~2.1" }, "suggest": { "symfony/config": "", "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.6-dev" } }, "autoload": { "psr-0": { "Symfony\\Component\\DependencyInjection\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" } ], "description": "Symfony DependencyInjection Component", "homepage": "http://symfony.com", "time": "2015-03-30 15:54:10" }, { "name": "symfony/event-dispatcher", "version": "v2.6.6", "target-dir": "Symfony/Component/EventDispatcher", "source": { "type": "git", "url": "https://github.com/symfony/EventDispatcher.git", "reference": "70f7c8478739ad21e3deef0d977b38c77f1fb284" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/70f7c8478739ad21e3deef0d977b38c77f1fb284", "reference": "70f7c8478739ad21e3deef0d977b38c77f1fb284", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { "psr/log": "~1.0", "symfony/config": "~2.0,>=2.0.5", "symfony/dependency-injection": "~2.6", "symfony/expression-language": "~2.6", "symfony/phpunit-bridge": "~2.7", "symfony/stopwatch": "~2.3" }, "suggest": { "symfony/dependency-injection": "", "symfony/http-kernel": "" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.6-dev" } }, "autoload": { "psr-0": { "Symfony\\Component\\EventDispatcher\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" } ], "description": "Symfony EventDispatcher Component", "homepage": "http://symfony.com", "time": "2015-03-13 17:37:22" }, { "name": "symfony/finder", "version": "v2.6.6", "target-dir": "Symfony/Component/Finder", "source": { "type": "git", "url": "https://github.com/symfony/Finder.git", "reference": "5dbe2e73a580618f5b4880fda93406eed25de251" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/Finder/zipball/5dbe2e73a580618f5b4880fda93406eed25de251", "reference": "5dbe2e73a580618f5b4880fda93406eed25de251", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { "symfony/phpunit-bridge": "~2.7" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.6-dev" } }, "autoload": { "psr-0": { "Symfony\\Component\\Finder\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" } ], "description": "Symfony Finder Component", "homepage": "http://symfony.com", "time": "2015-03-30 15:54:10" }, { "name": "symfony/stopwatch", "version": "v2.6.6", "target-dir": "Symfony/Component/Stopwatch", "source": { "type": "git", "url": "https://github.com/symfony/Stopwatch.git", "reference": "5f196e84b5640424a166d2ce9cca161ce1e9d912" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/5f196e84b5640424a166d2ce9cca161ce1e9d912", "reference": "5f196e84b5640424a166d2ce9cca161ce1e9d912", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { "symfony/phpunit-bridge": "~2.7" }, "type": "library", "extra": { "branch-alias": { "dev-master": "2.6-dev" } }, "autoload": { "psr-0": { "Symfony\\Component\\Stopwatch\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" } ], "description": "Symfony Stopwatch Component", "homepage": "http://symfony.com", "time": "2015-03-22 16:55:57" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": { "bartlett/php-reflect": 20 }, "prefer-stable": false, "prefer-lowest": false, "platform": { "php": ">=5.3.0" }, "platform-dev": [] } PK 4CVds LICENSEnu W+A Copyright (c) 2015, Laurent Laville All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PK 4CV phar-manifest.phpnu W+A #!/usr/bin/env php '; $tag = exec('git describe --tags 2>&1'); if (strpos($tag, '-') === false && strpos($tag, 'No names found') === false) { print $tag; } else { $branch = exec('git rev-parse --abbrev-ref HEAD'); $hash = exec('git log -1 --format="%H"'); print $branch . '@' . $hash; } print "\n"; $lock = json_decode(file_get_contents(__DIR__ . '/composer.lock')); $packages = function ($package) { print $package->name . ': ' . $package->version; if (!preg_match('/^[v= ]*(([0-9]+)(\\.([0-9]+)(\\.([0-9]+)(-([0-9]+))?(-?([a-zA-Z-+][a-zA-Z0-9\\.\\-:]*)?)?)?)?)$/', $package->version)) { print '@' . $package->source->reference; } print "\n"; }; foreach ($lock->packages as $package) { $packages($package); } foreach ($lock->{'packages-dev'} as $package) { $packages($package); } PK 4CV4b b bin/umlwriter.1nu W+A '\" t .\" Title: umlwriter .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 2015-04-02 .\" Manual: \ \& .\" Source: \ \& 1.0.0 .\" Language: English .\" .TH "UMLWRITER" "1" "2015\-04\-02" "\ \& 1\&.0\&.0" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" umlwriter \- Create UML class diagrams from your PHP source .SH "SYNOPSIS" .sp \fBumlwriter\fR [\fIoptions\fR] \fIcommand\fR [\fIarguments\fR] .SH "DESCRIPTION" .sp The umlwriter(1) command parse any data source, and return UML diagram statements in processor format\&. .SH "OPTIONS" .PP \fB\-h, \-\-help\fR .RS 4 Display this help message\&. .RE .PP \fB\-q, \-\-quiet\fR .RS 4 Do not output any message\&. .RE .PP \fB\-v|vv|v, \-\-verbose\fR .RS 4 Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug\&. .RE .PP \fB\-V, \-\-version\fR .RS 4 Display this application version\&. .RE .PP \fB\-\-ansi\fR .RS 4 Force ANSI output\&. .RE .PP \fB\-\-no\-ansi\fR .RS 4 Disable ANSI output\&. .RE .PP \fB\-\-manifest\fR .RS 4 Show which versions of dependencies are bundled (PHAR version only)\&. .RE .SH "DIAGRAM:RENDER COMMAND" .sp The umlwriter(1) \fIdiagram:render\fR command is used to generate diagram about all objects, present in a data source .sp Usage: .sp .if n \{\ .RS 4 .\} .nf umlwriter diagram:render [\-\-reflector[="\&.\&.\&."]] [\-\-processor[="\&.\&.\&."]] source .fi .if n \{\ .RE .\} .sp Where: .sp \fBsource\fR Identify a data source\&. File or directory .sp \fB\-\-reflector\fR Reverse\-engine compatible (case insensitive) (default: "reflect") .sp \fB\-\-processor\fR Diagram processor (case insensitive) .SH "DIAGRAM:RENDER:CLASS COMMAND" .sp The umlwriter(1) \fIdiagram:render:class\fR command is used to generate diagram about a single class, and its direct dependencies, present in a data source .sp Usage: .sp .if n \{\ .RS 4 .\} .nf umlwriter diagram:render:class [\-\-reflector[="\&.\&.\&."]] [\-\-processor[="\&.\&.\&."]] source object .fi .if n \{\ .RE .\} .sp Where: .sp \fBsource\fR Identify a data source\&. File or directory .sp \fBobject\fR Identify the class (fully qualified name) .sp \fB\-\-reflector\fR Reverse\-engine compatible (case insensitive) (default: "reflect") .sp \fB\-\-processor\fR Diagram processor (case insensitive) .SH "DIAGRAM:RENDER:NAMESPACE COMMAND" .sp The umlwriter(1) \fIdiagram:render:namespace\fR command is used to generate diagram about a single namespace, with all its objects, present in a data source .sp Usage: .sp .if n \{\ .RS 4 .\} .nf umlwriter diagram:render:namespace [\-\-reflector[="\&.\&.\&."]] [\-\-processor[="\&.\&.\&."]] source object .fi .if n \{\ .RE .\} .sp Where: .sp \fBsource\fR Identify a data source\&. File or directory .sp \fBobject\fR Identify the namespace .sp \fB\-\-reflector\fR Reverse\-engine compatible (case insensitive) (default: "reflect") .sp \fB\-\-processor\fR Diagram processor (case insensitive) .SH "EXIT STATUS" .PP \fB0\fR .RS 4 Success .RE .PP \fB1\fR .RS 4 Failure (syntax or usage error; configuration error; unexpected error)\&. .RE .SH "BUGS" .sp Report any issue at https://github\&.com/llaville/umlwriter/issues .SH "AUTHORS" .sp The Command\-Line Interface (CLI) version was introduced in version 1\&.0 and is written by Laurent Laville\&. .SH "SEE ALSO" .sp Main web site: http://php5\&.laurent\-laville\&.org/umlwriter/ .SH "COPYRIGHT" .sp Copyright (C) 2015 Laurent Laville\&. .SH "LICENSE" .sp Free use of this software is granted under the terms of the BSD 3\-clause license\&. PK 4CV|s bin/umlwriternu W+A #!/usr/bin/env php run(); PK 4CV, box.jsonnu W+A { "alias": "umlwriter.phar", "chmod": "0755", "directories": ["src"], "extract": false, "compression": "GZ", "files": [ "manifest.txt", "LICENSE", "vendor/andrewsville/php-token-reflection/LICENSE.md", "vendor/bartlett/php-reflect/LICENSE", "vendor/doctrine/collections/LICENSE", "vendor/nikic/php-parser/LICENSE", "vendor/sebastian/version/LICENSE", "vendor/symfony/console/Symfony/Component/Console/LICENSE", "vendor/autoload.php" ], "finder": [ { "name": "*.php", "in": "vendor/composer" }, { "name": "*.php", "in": "vendor/andrewsville/php-token-reflection/TokenReflection" }, { "name": "*.php", "in": "vendor/bartlett/php-reflect/src" }, { "name": "*.php", "in": "vendor/doctrine/collections/lib" }, { "name": "*.php", "in": "vendor/nikic/php-parser/lib" }, { "name": "Version.php", "in": "vendor/sebastian/version/src" }, { "name": "*.php", "notPath": "/Tests/", "in": "vendor/symfony" } ], "git-version": "package_version", "main": "bin/umlwriter", "output": "umlwriter-@git-version@.phar", "stub": "phar-stub.php", "web": false, "shebang": false } PK 4CV.`+} } manifest.txtnu W+A bartlett/umlwriter: 1.0.0 sebastian/version: 1.0.4 symfony/console: v2.6.6 andrewsville/php-token-reflection: 1.4.0 bartlett/php-reflect: 3.0.x-dev@7efd1d03583b32d8970100b5b8dc2dfd15b213e8 doctrine/collections: v1.2 justinrainbow/json-schema: 1.4.1 nikic/php-parser: v1.2.1 phpdocumentor/reflection-docblock: 2.0.4 seld/jsonlint: 1.3.1 symfony/dependency-injection: v2.6.6 symfony/event-dispatcher: v2.6.6 symfony/finder: v2.6.6 symfony/stopwatch: v2.6.6 PK 4CV2) phar-stub.phpnu W+A #!/usr/bin/env php =5.3.0", "symfony/console": "~2.5", "sebastian/version": "~1.0" }, "require-dev": { "bartlett/php-reflect": "3.0.*@dev", "andrewsville/php-token-reflection": "~1.4" }, "suggest": { "bartlett/php-reflect": "Reverse-engine, default solution", "andrewsville/php-token-reflection": "Reverse-engine, alternative solution" }, "authors": [ { "name": "Laurent Laville", "email": "pear@laurent-laville.org", "homepage": "https://github.com/llaville", "role": "Lead" } ], "bin": [ "bin/umlwriter" ], "autoload": { "psr-0": { "Bartlett\\": "src/" } }, "autoload-dev": { "psr-0": { "Bartlett\\Tests\\UmlWriter\\": "tests/" } } } PK 4CVh"j j README.asciidocnu W+A = UmlWriter **UmlWriter** is a library that adds the ability to generate UML class diagram in both Graphviz and PlantUML formats. You have also choice to switch between two reverse-engine : * https://github.com/llaville/php-reflect[Bartlett\Reflect] * https://github.com/Andrewsville/PHP-Token-Reflection[Andrewsville\TokenReflection] Follow development on the http://php5.laurent-laville.org/umlwriter/blog/[official Blog]. == Install Clone the git repository [source,bash] .HTTPS ---- $ git clone https://github.com/llaville/umlwriter.git ---- [source,bash] .SSH ---- $ git clone git@github.com:llaville/umlwriter.git ---- Install composer dependencies [source,bash] ---- $ cd umlwriter $ php composer.phar require bartlett/php-reflect 3.0.0-RC1 ---- Or [source,bash] ---- $ cd umlwriter $ php composer.phar require andrewsville/php-token-reflection ~1.4 ---- PK 4CVHT T examples/graphviz.phpnu W+A * @license http://www.opensource.org/licenses/bsd-license.php BSD License * @version GIT: $Id$ * @link http://php5.laurent-laville.org/umlwriter/ * @since Example available since Release 1.0.0-RC1 */ $vendor = dirname(__DIR__) . '/vendor'; require_once $vendor . '/autoload.php'; // path to directory where to find PHP source code $dataSource = dirname(__DIR__) . '/src/Bartlett/UmlWriter'; // $dataSource = $vendor . '/bartlett/php-reflect/src'; // uses Bartlett\Reflect as reverse engine $reflector = new Bartlett\UmlWriter\Reflector\Reflect($dataSource); // you may also used Andrewsville\TokenReflection reverse engine // $reflector = new Bartlett\UmlWriter\Reflector\TokenReflection($dataSource); // creates a new instance of Graphviz processor $processor = new Bartlett\UmlWriter\Processor\GraphvizProcessor($reflector); // generates UML class diagram of all objects in the Bartlett\UmlWriter\Processor namespace $g = $processor->setGraphId('G1')->renderNamespace('Bartlett\UmlWriter\Processor'); // prints results in STDOUT echo $g; // you may also, writes results to a file $filename = tempnam(__DIR__ . '/out', 'graphviz_'); file_put_contents($filename, $g); PK 4CV kP P examples/plantuml.phpnu W+A * @license http://www.opensource.org/licenses/bsd-license.php BSD License * @version GIT: $Id$ * @link http://php5.laurent-laville.org/umlwriter/ * @since Example available since Release 1.0.0-RC1 */ $vendor = dirname(__DIR__) . '/vendor'; require_once $vendor . '/autoload.php'; // path to directory where to find PHP source code $dataSource = dirname(__DIR__) . '/src/Bartlett/UmlWriter'; // $dataSource = $vendor . '/bartlett/php-reflect/src'; // uses Bartlett\Reflect as reverse engine $reflector = new Bartlett\UmlWriter\Reflector\Reflect($dataSource); // you may also used Andrewsville\TokenReflection reverse engine // $reflector = new Bartlett\UmlWriter\Reflector\TokenReflection($dataSource); // creates a new instance of PlantUML processor $processor = new Bartlett\UmlWriter\Processor\PlantUMLProcessor($reflector); // generates UML class diagram of all objects in the Bartlett\UmlWriter\Processor namespace $g = $processor->setGraphId('G1')->renderNamespace('Bartlett\UmlWriter\Processor'); // prints results in STDOUT echo $g; // you may also, writes results to a file $filename = tempnam(__DIR__ . '/out', 'plantuml_'); file_put_contents($filename, $g); PK 4CVJ build/build.xmlnu W+A A toolchain manager for ${phing.project.name} ${build.version} targets: adoc.all Generate the full documentation all Do all tasks above PK 4CVj tests/ProcessorTest.phpnu W+A * @license http://www.opensource.org/licenses/bsd-license.php BSD License * @version GIT: $Id$ * @link http://php5.laurent-laville.org/umlwriter/ * @since Class available since Release 1.0.0-RC2 */ namespace Bartlett\Tests\UmlWriter; /** * Tests for PHP_CompatInfo, retrieving reference elements, * and versioning information. * * @category PHP * @package UmlWriter * @subpackage Tests * @author Laurent Laville * @license http://www.opensource.org/licenses/bsd-license.php BSD License * @version Release: @package_version@ * @link http://php5.laurent-laville.org/umlwriter/ */ class ProcessorTest extends \PHPUnit_Framework_TestCase { private function generator($extFile) { $fixtures = __DIR__ . DIRECTORY_SEPARATOR . 'fixtures' . DIRECTORY_SEPARATOR; $graphs = array(); $iterator = new \DirectoryIterator($fixtures); foreach ($iterator as $file) { /* @var $file \SplFileInfo */ if (!preg_match('/\.php$/', $file)) { continue; } $phpFile = $file->getRealpath(); $gFile = preg_replace('/\.php$/', $extFile, $file->getRealPath()); if (!file_exists($gFile)) { continue; } $gCode = file_get_contents($gFile); $graphs[] = array( 'phpFile' => $phpFile, 'graphStmts' => $gCode, ); } asort($graphs); return $graphs; } /** * Data Provider to test generation of graph statements with Graphviz processor * * @return array */ public function graphvizProvider() { return $this->generator('.gv'); } /** * Data Provider to test generation of graph statements with PlantUML processor * * @return array */ public function plantumlProvider() { return $this->generator('.puml'); } /** * Tests graph statements generation with the Graphviz processor * * @return void * @dataProvider graphvizProvider */ public function testGraphvizProcessor($phpFile, $graphStmts) { // uses Bartlett\Reflect as reverse engine $reflector = new \Bartlett\UmlWriter\Reflector\Reflect($phpFile); // creates a new instance of Graphviz processor $processor = new \Bartlett\UmlWriter\Processor\GraphvizProcessor($reflector); // render a full graph with all objects $gvStmts = $processor->setGraphId('G1')->render(); $this->assertEquals($graphStmts, $gvStmts); } /** * Tests graph statements generation with the PlantUML processor * * @return void * @dataProvider plantumlProvider */ public function testPlantUMLProcessor($phpFile, $graphStmts) { // uses Bartlett\Reflect as reverse engine $reflector = new \Bartlett\UmlWriter\Reflector\Reflect($phpFile); // creates a new instance of PlantUML processor $processor = new \Bartlett\UmlWriter\Processor\PlantUMLProcessor($reflector); // render a full graph with all objects $pumlStmts = $processor->render(); $this->assertEquals($graphStmts, $pumlStmts); } } PK 4CVu u tests/bootstrap.phpnu W+A > { +zeroMethod() +objectTypeHint() +objectTypeHintAndDocComment() #scalarParameters() -typeHintWinsOverDocComment() +parametersWithValues() } @enduml PK 4CVJ J + tests/fixtures/003_simpleClassImplements.gvnu W+A digraph G1 { overlap = false; node [fontname="Verdana", fontsize="8", shape="none", margin="0", fillcolor="#FEFECE", style="filled"]; edge [fontname="Verdana", fontsize="8"]; subgraph cluster_2 { label=""; "OneInterface" [label=< << interface >>OneInterface >]; "TwoInterface" [label=< << interface >>TwoInterface >]; "OneClass" [label=< << class >>OneClass >]; "TwoClass" [label=< << class >>TwoClass >]; } "TwoInterface" -> "OneInterface"; "OneClass" -> "OneInterface" [arrowhead="empty", style="dashed"]; "TwoClass" -> "TwoInterface" [arrowhead="empty", style="dashed"]; } PK 4CVCY % tests/fixtures/005_InheritMethod.pumlnu W+A @startuml class ParentClass << class >> { +someParentMethod() +methodToOverride() } class ExtendingClass << class >> { +methodToOverride() } ExtendingClass --|> ParentClass @enduml PK 4CVv # tests/fixtures/005_InheritMethod.gvnu W+A digraph G1 { overlap = false; node [fontname="Verdana", fontsize="8", shape="none", margin="0", fillcolor="#FEFECE", style="filled"]; edge [fontname="Verdana", fontsize="8"]; subgraph cluster_4 { label=""; "ParentClass" [label=< << class >>ParentClass +someParentMethod() +methodToOverride() >]; "ExtendingClass" [label=< << class >>ExtendingClass +methodToOverride() >]; } "ExtendingClass" -> "ParentClass"; } PK 4CVf? tests/fixtures/008_Property.gvnu W+A digraph G1 { overlap = false; node [fontname="Verdana", fontsize="8", shape="none", margin="0", fillcolor="#FEFECE", style="filled"]; edge [fontname="Verdana", fontsize="8"]; subgraph cluster_7 { label=""; "OneClass" [label=< << class >>OneClass - stringProperty # intProperty + booleanProperty # arrayProperty + floatProperty >]; } } PK 4CV] $ tests/fixtures/005_InheritMethod.phpnu W+A << class >>OneClass >]; } } PK 4CV4 tests/fixtures/004_Method.phpnu W+A > { +STRING_CONSTANT +INTEGER_CONSTANT +FLOAT_CONSTANT +LF_CONSTANT +CR_CONSTANT +TAB_CONSTANT .. +NOVALUE_STATIC +STRING_STATIC +INTEGER_STATIC +FLOAT_STATIC +LF_STATIC +CR_STATIC +TAB_STATIC +PUBLIC_STATIC #PROTECTED_STATIC -PRIVATE_STATIC -- +staticPublic() #staticProtected() -staticPrivate() } @enduml PK 4CVOٍ &