├── .github └── workflows │ └── ci.yaml ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── composer.json ├── phpcs.xml ├── phpstan.neon ├── phpunit.xml ├── src ├── Component │ ├── Architecture.php │ └── Component.php ├── Composer │ ├── CachedComposerFileParserFactory.php │ ├── ComposerFileParser.php │ ├── ComposerFileParserCacheDecorator.php │ ├── ComposerFileParserFactory.php │ ├── ComposerFileParserFactoryInterface.php │ └── ComposerFileParserInterface.php ├── Exception │ ├── CodeAnalysisException.php │ ├── ComponentNotDefinedException.php │ └── Exception.php ├── Parser │ ├── Parser.php │ ├── ParserException.php │ └── Visitor │ │ ├── DocBlockTypeAnnotations.php │ │ ├── ExtractDeclaredNamespace.php │ │ ├── FullyQualifiedReference.php │ │ ├── NamespaceCollectingVisitor.php │ │ └── UseStatement.php ├── PhpArch.php ├── Utility │ ├── ArrayUtility.php │ ├── NamespaceComperator.php │ └── NamespaceComperatorCollection.php └── Validation │ ├── AbstractValidationCollection.php │ ├── AllowInterfaces.php │ ├── ExplicitlyAllowDependency.php │ ├── ForbiddenDependency.php │ ├── MustBeSelfContained.php │ ├── MustOnlyDependOn.php │ ├── MustOnlyDependOnComposerDependencies.php │ ├── MustOnlyHaveAutoloadableDependencies.php │ ├── ValidationCollection.php │ └── Validator.php └── tests ├── ArchitectureTest.php ├── Component ├── ArchitectureTest.php ├── ComponentTest.php └── Example │ ├── Allowed │ └── AllowedDependency.php │ ├── Forbidden │ └── ForbiddenDependency.php │ ├── OutsideDependency.php │ └── Test │ ├── InsideDependency.php │ └── TestClass.php ├── Composer ├── ComposerFileParserTest.php └── Mock │ ├── .gitignore │ ├── composer.json │ └── composer.lock ├── Parser └── Visitor │ ├── DocBlockTypeAnnotationsTest.php │ ├── Example │ ├── DocBlock │ │ ├── AnonymousClassDocBlockArgument.php │ │ ├── DocBlockArgument.php │ │ ├── DocBlockArrayItem.php │ │ ├── DocBlockGenericTypeArrayLong.php │ │ ├── DocBlockGenericTypeArrayShort.php │ │ ├── DocBlockReturn.php │ │ ├── DocBlockTypedTemplate.php │ │ ├── DocBlockUnionGenericChildA.php │ │ ├── DocBlockUnionGenericChildB.php │ │ ├── DocBlockUnionGenericChildC.php │ │ ├── DocBlockUnionGenericChildD.php │ │ ├── DocBlockUnionGenericWrapperA.php │ │ ├── DocBlockUnionGenericWrapperB.php │ │ ├── DocBlockUnionTypeA.php │ │ ├── DocBlockUnionTypeB.php │ │ ├── GenericPseudoType.php │ │ ├── ImportedAnonymousClassDocBlockArgument.php │ │ ├── ImportedDocBlockArgument.php │ │ ├── ImportedDocBlockReturn.php │ │ ├── ImportedGenericArgument.php │ │ └── ImportedGenericClassArgument.php │ ├── InstanceCreation │ │ ├── ImportedInstanceCreation.php │ │ └── InstanceCreation.php │ ├── ParentClass.php │ ├── SomeInterface.php │ ├── StaticMethodCall │ │ ├── ImportedStaticMethodCall.php │ │ └── StaticMethodCall.php │ ├── TestClass.php │ ├── Traits │ │ ├── ImporetdTrait.php │ │ └── UsedTrait.php │ └── TypeAnnotation │ │ ├── ArgumentAnnotation.php │ │ ├── ImportedArgumentAnnotation.php │ │ ├── ImportedReturnTypeAnnotation.php │ │ └── ReturnTypeAnnotation.php │ ├── ExtractDeclaredNamespaceTest.php │ ├── FullyQualifiedReferencedTest.php │ └── UseStatementTest.php ├── TestCase.php ├── Utility ├── NamespaceComperatorCollectionTest.php └── NamespaceComperatorTest.php └── Validation ├── ForbiddenDependencyTest.php ├── Mock ├── ExistingClass.php ├── ExistingInterface.php ├── ExistingTrait.php ├── TestClass.php └── TestValidator.php ├── MustBeSelfContainedTest.php ├── MustOnlyDependOnTest.php ├── MustOnlyHaveAutoloadableDependenciesTest.php └── ValidationCollectionTest.php /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/.travis.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/README.md -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/composer.json -------------------------------------------------------------------------------- /phpcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/phpcs.xml -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/phpstan.neon -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/phpunit.xml -------------------------------------------------------------------------------- /src/Component/Architecture.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Component/Architecture.php -------------------------------------------------------------------------------- /src/Component/Component.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Component/Component.php -------------------------------------------------------------------------------- /src/Composer/CachedComposerFileParserFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Composer/CachedComposerFileParserFactory.php -------------------------------------------------------------------------------- /src/Composer/ComposerFileParser.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Composer/ComposerFileParser.php -------------------------------------------------------------------------------- /src/Composer/ComposerFileParserCacheDecorator.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Composer/ComposerFileParserCacheDecorator.php -------------------------------------------------------------------------------- /src/Composer/ComposerFileParserFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Composer/ComposerFileParserFactory.php -------------------------------------------------------------------------------- /src/Composer/ComposerFileParserFactoryInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Composer/ComposerFileParserFactoryInterface.php -------------------------------------------------------------------------------- /src/Composer/ComposerFileParserInterface.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Composer/ComposerFileParserInterface.php -------------------------------------------------------------------------------- /src/Exception/CodeAnalysisException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Exception/CodeAnalysisException.php -------------------------------------------------------------------------------- /src/Exception/ComponentNotDefinedException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Exception/ComponentNotDefinedException.php -------------------------------------------------------------------------------- /src/Exception/Exception.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Exception/Exception.php -------------------------------------------------------------------------------- /src/Parser/Parser.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Parser/Parser.php -------------------------------------------------------------------------------- /src/Parser/ParserException.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Parser/ParserException.php -------------------------------------------------------------------------------- /src/Parser/Visitor/DocBlockTypeAnnotations.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Parser/Visitor/DocBlockTypeAnnotations.php -------------------------------------------------------------------------------- /src/Parser/Visitor/ExtractDeclaredNamespace.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Parser/Visitor/ExtractDeclaredNamespace.php -------------------------------------------------------------------------------- /src/Parser/Visitor/FullyQualifiedReference.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Parser/Visitor/FullyQualifiedReference.php -------------------------------------------------------------------------------- /src/Parser/Visitor/NamespaceCollectingVisitor.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Parser/Visitor/NamespaceCollectingVisitor.php -------------------------------------------------------------------------------- /src/Parser/Visitor/UseStatement.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Parser/Visitor/UseStatement.php -------------------------------------------------------------------------------- /src/PhpArch.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/PhpArch.php -------------------------------------------------------------------------------- /src/Utility/ArrayUtility.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Utility/ArrayUtility.php -------------------------------------------------------------------------------- /src/Utility/NamespaceComperator.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Utility/NamespaceComperator.php -------------------------------------------------------------------------------- /src/Utility/NamespaceComperatorCollection.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Utility/NamespaceComperatorCollection.php -------------------------------------------------------------------------------- /src/Validation/AbstractValidationCollection.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/AbstractValidationCollection.php -------------------------------------------------------------------------------- /src/Validation/AllowInterfaces.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/AllowInterfaces.php -------------------------------------------------------------------------------- /src/Validation/ExplicitlyAllowDependency.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/ExplicitlyAllowDependency.php -------------------------------------------------------------------------------- /src/Validation/ForbiddenDependency.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/ForbiddenDependency.php -------------------------------------------------------------------------------- /src/Validation/MustBeSelfContained.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/MustBeSelfContained.php -------------------------------------------------------------------------------- /src/Validation/MustOnlyDependOn.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/MustOnlyDependOn.php -------------------------------------------------------------------------------- /src/Validation/MustOnlyDependOnComposerDependencies.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/MustOnlyDependOnComposerDependencies.php -------------------------------------------------------------------------------- /src/Validation/MustOnlyHaveAutoloadableDependencies.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/MustOnlyHaveAutoloadableDependencies.php -------------------------------------------------------------------------------- /src/Validation/ValidationCollection.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/ValidationCollection.php -------------------------------------------------------------------------------- /src/Validation/Validator.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/src/Validation/Validator.php -------------------------------------------------------------------------------- /tests/ArchitectureTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/tests/ArchitectureTest.php -------------------------------------------------------------------------------- /tests/Component/ArchitectureTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/tests/Component/ArchitectureTest.php -------------------------------------------------------------------------------- /tests/Component/ComponentTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/tests/Component/ComponentTest.php -------------------------------------------------------------------------------- /tests/Component/Example/Allowed/AllowedDependency.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/tests/Component/Example/Allowed/AllowedDependency.php -------------------------------------------------------------------------------- /tests/Component/Example/Forbidden/ForbiddenDependency.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j6s/phparch/HEAD/tests/Component/Example/Forbidden/ForbiddenDependency.php -------------------------------------------------------------------------------- /tests/Component/Example/OutsideDependency.php: -------------------------------------------------------------------------------- 1 |