symfony

symfony/property-access

PHP MIT Dev Tools

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

2.8k stars
26 forks
slow
GitHub +1 / week

2.8k

Stars

26

Forks

0

Open issues

30

Contributors

v8.1.0 29 May 2026

AI Analysis

The PropertyAccess component provides a unified API to read and write object and array properties using intuitive string notation (e.g., 'user.profile.name'). It is a core utility for Symfony applications and any PHP projects needing declarative property access patterns, particularly valuable for form binding, serialization, and configuration mapping. This library is primarily for PHP developers building Symfony-based applications or those who need dynamic property resolution in their own fra...

Dev Tools Library Discovery value: 2/10
Documentation 8/10
Activity 9/10
Community 8/10
Code quality 5/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

property-access reflection object-mapping symfony-component php-utility
Actively maintained Well documented MIT licensed Niche/specialized use case Production ready
Deep Analysis · Based on README and public signals
5d ago

Symfony's declarative property accessor abstraction for nested object/array traversal

PropertyAccess is a PHP utility component that abstracts read/write operations on objects and arrays using dot-notation-style string paths (e.g., 'person.address.street'). Built and maintained as part of Symfony, it powers form binding, serialization, and data mapping workflows across Symfony applications and is likely used indirectly by millions of PHP developers through Symfony's ecosystem. It solves a narrow, well-defined problem: eliminating boilerplate code for nested property access.

Origin

Created in 2013 as part of Symfony's component extraction initiative, PropertyAccess emerged from the need to standardize how the framework accessed dynamic object properties. It has been a foundational utility within Symfony since its inception, evolving alongside Symfony's versioning and PHP language capabilities.

Growth

Growth has been gradual and stable rather than explosive. The 2,823 stars reflect steady, non-viral adoption within the PHP/Symfony ecosystem. Star velocity (1 in last 7 days as of 2026-07-05) indicates mature, plateau-stage adoption. Growth was likely highest during Symfony's initial mainstream adoption (2013–2018) and has since stabilized as a well-known, widely-integrated component.

In production

Adoption not formally documented in README, but PropertyAccess is a core Symfony component bundled with Symfony installations and used internally by form handling, serialization, and validation systems. Indirect adoption is extremely high within Symfony-dependent applications. Direct, standalone adoption outside Symfony is likely minimal and not verified.

Code analysis
Architecture

Based on README, PropertyAccess provides an abstraction layer that parses property path strings and executes read/write operations. Likely uses a PropertyAccessor class as the primary entry point. The component appears designed for composability within larger Symfony workflows. Implementation details not documented in README.

Tests

Not documented in README. However, as a core Symfony component, industry practice and the project's stability suggest robust test coverage, but this cannot be verified from available metadata.

Maintenance

Last push 2026-06-05 (29 days prior to analysis date) indicates active maintenance. The project is part of the Symfony monorepo, so update cadence aligns with Symfony's release schedule (typically every 6 months for minor releases). No evidence of stagnation; maintenance appears routine and aligned with Symfony's LTS and release cycles.

Honest verdict

ADOPT IF: you are building within Symfony and need to traverse nested object/array structures, or you need a standardized abstraction for dynamic property access in PHP. PropertyAccess is stable, well-integrated, and solves a real problem. AVOID IF: you need property access outside the Symfony ecosystem context—native PHP reflection or simpler in-application helpers may suffice, and a Symfony dependency adds overhead. MONITOR IF: you are evaluating PropertyAccess for standalone use outside Symfony; verify that the added dependency weight justifies the abstraction benefit for your specific use case.

Independent dimensions

Mainstream potential

2/10

Technical importance

6/10

Adoption evidence

7/10

Risks
  • Dependency coupling: adopting PropertyAccess ties you to Symfony's versioning and release schedule, even if you use only this component.
  • Narrow scope: the component solves one problem well and cannot be extended easily for complex, domain-specific property access logic.
  • Performance: string-based path parsing and reflection-driven access may introduce measurable overhead in tight loops; benchmarks not documented in README.
  • PHP version evolution: as native PHP features improve (e.g., typed properties, named arguments), the relative value of this abstraction may shift.
  • Sponsorship note: README indicates the package 'is looking for a backer,' suggesting possible resource constraints, though this does not currently impede maintenance.
Prediction

PropertyAccess will remain a stable, actively maintained component within Symfony's ecosystem. Standalone adoption outside Symfony is unlikely to grow significantly. The component may evolve to support newer PHP language features (enums, typed properties, readonly) but is unlikely to see major API changes or feature expansion.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

PHP
100%

Information

Language
PHP
License
MIT
Last updated
1mo ago
Created
164mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Open issues

No open issues — clean slate.

Open pull requests

Similar repos

symfony

symfony/property-info

The PropertyInfo component extracts metadata about PHP class properties from...

2.2k PHP Dev Tools
symfony

symfony/string

The Symfony String component provides an object-oriented API for unified string...

1.8k PHP Dev Tools
symfony

symfony/filesystem

The Symfony Filesystem component provides basic utilities for filesystem...

4.6k PHP Dev Tools
symfony

symfony/security-core

Symfony Security Component - Core is a PHP library providing infrastructure for...

1.9k PHP Security
symfony

symfony/serializer

The Serializer component is a core Symfony library that converts data...

2.5k PHP Web Dev
vs. alternatives
symfony/property-info

Property-info inspects and extracts metadata about object properties; PropertyAccess reads/writes them. They are complementary, not competing. Property-info (2,229 stars) is slightly less adopted but serves a different layer.

Manual property access (native PHP)

PropertyAccess eliminates boilerplate for nested access patterns. Without it, developers would write explicit getter chains or reflection code. The component's value is convenience and consistency within Symfony.

Laravel's data retrieval helpers (Arr, data_get)

Laravel offers similar array/object traversal utilities as part of its collection/helper ecosystem. PropertyAccess is Symfony's equivalent but more tightly integrated with the framework's validation and serialization systems.

JMSSerializer (standalone PHP serialization)

JMSSerializer includes property access logic but is a full serialization framework, not a property accessor. PropertyAccess is narrower and more reusable outside serialization contexts.

Reflection API (native PHP)

Raw reflection is more powerful but verbose. PropertyAccess trades flexibility for developer experience in the common case of nested property access.