silverstripe/silverstripe-proxy-db

Installs: 17 734

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 4

Type:silverstripe-vendormodule

2.0.0 2023-04-03 22:12 UTC

This package is auto-updated.

Last update: 2024-03-19 23:09:58 UTC


README

This was a fork of tractorcow/silverstripe-proxy-db used while waiting for a stable CMS 5 released to be tagged on that repository. That repository now has a stable tag so you should use that instead of this one.

Database proxy

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.