Download the PHP package kariricode/property-inspector without Composer

On this page you can find all versions of the php package kariricode/property-inspector. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package property-inspector

KaririCode PropertyInspector

[![PHP 8.4+](https://img.shields.io/badge/PHP-8.4%2B-777BB4?logo=php&logoColor=white)](https://www.php.net/) [![License: MIT](https://img.shields.io/badge/License-MIT-22c55e.svg)](LICENSE) [![PHPStan Level 9](https://img.shields.io/badge/PHPStan-Level%209-4F46E5)](https://phpstan.org/) [![Tests](https://img.shields.io/badge/Tests-40%20passing-22c55e)](https://kariricode.org) [![ARFA](https://img.shields.io/badge/ARFA-1.3-orange)](https://kariricode.org) [![KaririCode Framework](https://img.shields.io/badge/KaririCode-Framework-orange)](https://kariricode.org) **Attribute-based property analysis and inspection for the KaririCode Framework — multi-pass pipelines, reflection caching, and zero-overhead property mutation, PHP 8.4+.** [Installation](#installation) · [Quick Start](#quick-start) · [Features](#features) · [Pipeline](#the-inspection-pipeline) · [Architecture](#architecture)

The Problem

PHP reflection is boilerplate-heavy, error-prone, and slow when repeated across object graphs:

No caching, no mutation abstraction, no error isolation, no handler contract — just raw loops you repeat in every project.

The Solution


Requirements

Requirement Version
PHP 8.4 or higher
kariricode/contract ^2.8
kariricode/exception ^1.2

Installation


Quick Start

Define an attribute, an entity, a handler — and inspect:


Features

Reflection Caching

AttributeAnalyzer caches reflection metadata after the first analysis per class. Subsequent calls for the same class — even with different object instances — skip ReflectionClass entirely:

Multi-Pass Inspection

Run multiple independent passes over the same object with different attribute types:

PropertyAccessor — Safe Property Mutation

Read and write any property (public, protected, private) without setAccessible boilerplate:

Attribute Polymorphism

AttributeAnalyzer uses ReflectionAttribute::IS_INSTANCEOF — it matches attribute hierarchies, not just exact class names:

Isolated Error Handling

All exceptions from reflection or handler code are wrapped in PropertyInspectionException — your calling code only needs to catch one type:


The Inspection Pipeline


Architecture

Source layout

Key design decisions

Decision Rationale ADR
Reflection cache per class One ReflectionClass call per type, not per instance
Remove setAccessible Deprecated in PHP 8.1, removed in PHP 9; PropertyAccessor handles this ADR-001
clearCache() on interface Enables test isolation and dynamic class reloading ADR-002
Wrapped exception hierarchy Callers catch PropertyInspectionException, not reflection internals ADR-003
Handler-returned values Handler decides the processed value — supports chaining and transformation

Specifications

Spec Covers
SPEC-001 Full pipeline: analysis → handler → mutation

Integration with the KaririCode Ecosystem

PropertyInspector is the reflection engine used internally by other KaririCode components:

Component Role
kariricode/validator Uses PropertyInspector to discover #[Rule] attributes and dispatch to rule processors
kariricode/sanitizer Uses PropertyInspector to discover #[Sanitize] attributes and apply transformers
kariricode/normalizer Uses PropertyInspector for attribute-driven normalization passes

Any component that needs declarative, attribute-based property processing can be built on top of this pipeline.


Project Stats

Metric Value
PHP source files 7
External runtime dependencies 2 (contract · exception)
Test suite 40 tests · 96 assertions
PHPStan level 9
PHP version 8.4+
ARFA compliance 1.3
Test suites Unit + Integration
Reflection cache Per-class, per-AttributeAnalyzer instance

Contributing


License

Walmir Silva


Part of the **[KaririCode Framework](https://kariricode.org)** ecosystem. [kariricode.org](https://kariricode.org) · [GitHub](https://github.com/KaririCode-Framework/kariricode-property-inspector) · [Packagist](https://packagist.org/packages/kariricode/property-inspector) · [Issues](https://github.com/KaririCode-Framework/kariricode-property-inspector/issues)

All versions of property-inspector with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
kariricode/contract Version ^2.8
kariricode/exception Version ^1.2
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package kariricode/property-inspector contains the following files

Loading the files please wait ...