Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. PHP
  3. ProxyManager

ProxyManager

MITPHP2.14.1

A PHP library that generates and manages various types of object-oriented proxy classes for lazy loading, access control, and remote objects.

GitHubGitHub
5.0k stars190 forks0 contributors

What is ProxyManager?

ProxyManager is a PHP library that provides abstractions for generating and managing proxy classes, implementing the proxy design pattern. It enables developers to add behaviors like lazy loading, access control, and remote object handling to existing classes without modifying their source code.

Target Audience

PHP developers working on applications that require non-invasive cross-cutting concerns, such as performance optimization, access control, or remote object interaction, without altering core business logic.

Value Proposition

Developers choose ProxyManager for its clean separation of concerns, allowing proxy generation as a non-invasive layer to add features like lazy loading and method interception without polluting business logic, and its support for multiple proxy types including virtual, access interceptor, and remote object proxies.

Overview

🎩✨🌈 OOP Proxy wrappers/utilities - generates and manages proxies of your objects

Use Cases

Best For

  • Implementing lazy loading for expensive object instantiation to improve application performance.
  • Adding access control or logging logic before and after method execution via access interceptors.
  • Facilitating interaction with remote objects located in different execution contexts or servers.
  • Providing default behavior for missing objects to prevent null reference errors with null object proxies.
  • Generating proxy classes for cross-cutting concerns in enterprise PHP applications without modifying source code.
  • Managing proxy generation in frameworks or libraries that require dynamic behavior injection.

Not Ideal For

  • Applications with minimal object instantiation costs where proxy overhead outweighs benefits
  • Projects using PHP frameworks with built-in proxy or AOP support, such as Laravel's service container or Symfony's proxies
  • Teams seeking a zero-configuration solution for simple method interception without additional dependencies

Pros & Cons

Pros

Versatile Proxy Types

Supports multiple proxy patterns including virtual, access interceptor, and remote object proxies, allowing for diverse use cases like lazy loading and method monitoring as highlighted in the Key Features.

Non-Invasive Design

Enables adding cross-cutting concerns without modifying source code, maintaining clean separation of concerns as emphasized in the library's philosophy.

Comprehensive Documentation

Includes detailed docs and examples, such as the lazy loading proxy code snippet in the README, facilitating easy adoption and reducing learning curve.

Enterprise-Grade Support

Offered through Tidelift subscription, providing commercial support and maintenance for critical enterprise applications, as mentioned in the README.

Cons

Runtime Performance Cost

Proxy generation and method interception add overhead due to reflection usage, which can impact performance in latency-sensitive applications, a trade-off not explicitly addressed in the README.

Complex Setup for Advanced Features

Configuring custom interceptors or remote proxies requires a good understanding of PHP reflection and the proxy pattern, increasing initial development time beyond basic use cases.

Dependency on Reflection API

Heavy reliance on PHP's reflection can be slow and may conflict with opcode caches or strict runtime environments, limiting compatibility in some deployment scenarios.

Frequently Asked Questions

Quick Stats

Stars4,950
Forks190
Contributors0
Open Issues37
Last commit3 days ago
CreatedSince 2013

Tags

#proxy#oop#performance-optimization#design-patterns#enterprise#object-oriented#access-control#php#aop#lazy-loading

Built With

P
PHP

Included in

PHP32.5k
Auto-fetched 7 hours ago

Related Projects

Doctrine ExtensionsDoctrine Extensions

Doctrine2 behavioral extensions, Translatable, Sluggable, Tree-NestedSet, Timestampable, Loggable, Sortable

Stars4,142
Forks1,253
Last commit3 months ago
Laravel EloquentLaravel Eloquent

[READ ONLY] Subtree split of the Illuminate Database component (see laravel/framework)

Stars2,771
Forks606
Last commit1 day ago
BaumBaum

Baum is an implementation of the Nested Set pattern for Laravel's Eloquent ORM.

Stars2,224
Forks451
Last commit2 years ago
Cycle ORMCycle ORM

PHP DataMapper, ORM

Stars1,329
Forks81
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub