tractorcow/classproxy

Package info

github.com/tractorcow/classproxy

pkg:composer/tractorcow/classproxy

Statistics

Installs: 522 587

Dependents: 2

Suggesters: 0

Stars: 2

Open Issues: 1

1.0.1 2026-02-03 22:58 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

BSD-3-Clause 59894c3fa5a2a6e150e28884a29708be87e46647

  • Damian Mooyman <damian.woop@silverstripe.com>

This package is auto-updated.

Last update: 2026-05-31 00:23:28 UTC


README

👁 Build Status
👁 SilverStripe supported module

Dynamically scaffold proxy classes that actually extend the class being proxied, allowing them to be used in type-strict applications.

No it's not prophecy because this is designed for partial proxies, not testing.

Installation

composer require tractorcow/classproxy

Examples

// Create a proxy creator
$proxy = ProxyFactory::create(DataBase::class)
 ->addMethod('connect', function ($args, $next) use ($logger) {
 $logger->log("Connecting to server " . $args[0]['server'];
 return $next(...$args);
 });
 
// Generate instance of our proxy
$instance = $proxy->instance();
assert($instance instanceof Database); // Yep!

// Connects to underlying database, logging the call
$instance->connect([
 'server' => 'localhost',
 'user' => 'root'
]);