tractorcow/silverstripe-proxy-db

Installs: 403 727

Dependents: 9

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 4

Open Issues: 1

Type:silverstripe-vendormodule

2.0.0 2023-07-31 21:08 UTC

This package is auto-updated.

Last update: 2024-10-19 02:31:58 UTC


README

Ok, so you want to proxy the database.

Install this module, and decorate the factory with code you want to extend

---
Name: myproxydb
After: '#proxydb'
---
TractorCow\SilverStripeProxyDB\ProxyDBFactory:
  extensions:
    - ProxyDBExtension

Then in your code you can do this

<?php

use SilverStripe\Core\Extension;
use TractorCow\ClassProxy\Generators\ProxyGenerator;

class ProxyDBExtension extends Extension
{
    public function updateProxy(ProxyGenerator &$proxy)
    {
        $proxy = $proxy->addMethod('manipulate', function ($args, $next) {
            SearchManipulator::manipulate($args[0]);
            return $next(...$args);
        });
    }
}

You can chain methods; All addMethod() calls on the same method name will form a set of middleware. First methods registered are executed first.