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!

0.18.0(1mo ago)12261.1k—4.4%1[1 issues](https://github.com/veewee/reflecta/issues)1MITPHPPHP ~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 1mo ago

READMEChangelog (10)Dependencies (18)Versions (23)Used By (1)

🪞 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.

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

55

—

FairBetter than 98% of packages

Maintenance88

Actively maintained with recent releases

Popularity43

Moderate usage in the ecosystem

Community16

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 97.7% 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 ~47 days

Recently: every ~41 days

Total

19

Last Release

53d ago

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 (86 commits)")[![jdreesen](https://avatars.githubusercontent.com/u/424602?v=4)](https://github.com/jdreesen "jdreesen (2 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

[phpro/soap-client

A general purpose SoapClient library

8885.6M46](/packages/phpro-soap-client)[phpdocumentor/reflection-common

Common reflection classes used by phpdocumentor to reflect the code structure

9.1k706.8M26](/packages/phpdocumentor-reflection-common)[veewee/xml

XML without worries

1835.9M29](/packages/veewee-xml)[symfony/property-access

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

2.8k295.3M2.5k](/packages/symfony-property-access)[roave/backward-compatibility-check

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

5953.3M56](/packages/roave-backward-compatibility-check)[php-soap/wsdl

Deals with WSDLs

173.5M12](/packages/php-soap-wsdl)

PHPackages © 2026

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