PHPackages                             veewee/reflecta - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. veewee/reflecta

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

veewee/reflecta
===============

Unleash the Power of Optics in your code!

1.0.1(2mo ago)13477.2k↓30.3%1[1 PRs](https://github.com/veewee/reflecta/pulls)2MITPHPPHP ~8.4.0 || ~8.5.0CI passing

Since Nov 17Pushed 1mo ago2 watchersCompare

[ Source](https://github.com/veewee/reflecta)[ Packagist](https://packagist.org/packages/veewee/reflecta)[ GitHub Sponsors](https://github.com/veewee)[ RSS](/packages/veewee-reflecta/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (42)Versions (32)Used By (2)

🪞 REFLECTA 🪞
------------

[](#-reflecta--)

### Unleash the Power of Optics in your code

[](#unleash-the-power-of-optics-in-your-code)

Welcome to Reflecta!

Transform your data like never before with this optics implementation – a set of sleek, intuitive tools designed to empower your code with the finesse of reflection, the precision of lenses, and the magic of Isomorphisms. Say goodbye to the complexities, and hello to a world where building, accessing and manipulating your data structures becomes as effortless as a brushstroke on a canvas.

Dive into this Optics Toolkit, where coding meets artistry, and simplicity meets power. It's not just about data – it's about orchestrating a symphony of possibilities. Your data has never looked so good!

Installation
------------

[](#installation)

Reflecta is installed via Composer.

```
composer require veewee/reflecta

```

> Requires PHP 8.1+

**Warning.** This package is primarily published to receive early feedback and for contributors, during this development phase we cannot guarantee the stability of the APIs, consider each release to contain breaking changes.

### Psalm support

[](#psalm-support)

This package is created with type-safety and error awareness in mind.

In order to have better type inference, this package comes shipped with a psalm plugin. You can enable it by:

```
./vendor/bin/psalm-plugin enable 'VeeWee\Reflecta\Psalm\Plugin'

```

> Requires vimeo/psalm 5+

Components
----------

[](#components)

This package provides following components:

- [ArrayAccess](/docs/array-access.md): Helps you read from and write to arrays.
- [Iso](/docs/isomorphisms.md): Provides bidirectional transformations on your data.
- [Lens](/docs/lens.md): Separate your data from it's structure
- [Reflect](/docs/reflect.md): Helps you read from and write to objects in a runtime-safe context.

> Finding your way around optics? The [🧬 STAB optics walkthrough](/docs/stab-optics.md) maps out the `S`, `T`, `A`, `B` type parameters with worked examples.

Inspiration
-----------

[](#inspiration)

This library was inspired by the following projects:

- [marcosh/lamphpda-optics](https://github.com/marcosh/lamphpda-optics)
- [fp-ts/optic](https://github.com/fp-ts/optic)
- [haskell lens](https://hackage.haskell.org/package/lens)

###  Health Score

59

—

FairBetter than 98% of packages

Maintenance87

Actively maintained with recent releases

Popularity44

Moderate usage in the ecosystem

Community19

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 96.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~42 days

Recently: every ~16 days

Total

23

Last Release

81d ago

Major Versions

0.x-dev → 1.0.02026-05-27

PHP version history (4 changes)0.1.0PHP ~8.1.0 || ~8.2.0 || ~8.3.0

0.10.0PHP ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0

0.14.0PHP ~8.3.0 || ~8.4.0 || ~8.5.0

0.18.0PHP ~8.4.0 || ~8.5.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/c0cb7e57de4834c7e94552864acb7c5640725b5ec0ea8f087ebbf6761dd3c206?d=identicon)[veewee](/maintainers/veewee)

---

Top Contributors

[![veewee](https://avatars.githubusercontent.com/u/1618158?v=4)](https://github.com/veewee "veewee (93 commits)")[![jdreesen](https://avatars.githubusercontent.com/u/424602?v=4)](https://github.com/jdreesen "jdreesen (2 commits)")[![raphaelstolt](https://avatars.githubusercontent.com/u/48225?v=4)](https://github.com/raphaelstolt "raphaelstolt (1 commits)")

---

Tags

array-accesshacktoberfestisomorphismslensesopticsreflectionreflectionarray-accesslensesopticsisomorphisms

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/veewee-reflecta/health.svg)

```
[![Health](https://phpackages.com/badges/veewee-reflecta/health.svg)](https://phpackages.com/packages/veewee-reflecta)
```

###  Alternatives

[veewee/xml

XML without worries

1837.3M39](/packages/veewee-xml)[phpro/soap-client

A general purpose SoapClient library

8896.3M56](/packages/phpro-soap-client)[php-soap/wsdl

Deals with WSDLs

184.1M19](/packages/php-soap-wsdl)[roave/backward-compatibility-check

Tool to compare two revisions of a public API to check for BC breaks

6014.0M203](/packages/roave-backward-compatibility-check)[phpdocumentor/reflection-common

Common reflection classes used by phpdocumentor to reflect the code structure

9.0k747.6M39](/packages/phpdocumentor-reflection-common)[symfony/property-access

Provides functions to read and write from/to an object or array using a simple string notation

2.8k325.8M3.5k](/packages/symfony-property-access)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
