2017 © Pedro Peláez
 

library proxy-generator

Use your own interfaces by generating wrapper classes.

image

delboy1978uk/proxy-generator

Use your own interfaces by generating wrapper classes.

  • Monday, November 28, 2016
  • by delboy1978uk
  • Repository
  • 1 Watchers
  • 0 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

proxy-generator

Build Status Code Coverage Scrutinizer Code Quality
A Proxy generator for getting third party libraries to implement your interface. Just tell it what Interface you wish to replace, and it will search through, and generate your own class extending it but implementing your own interface., (*1)

Example

Replacing Some\Symfony\Lib\SomeInterface with My\Awesome\Lib\SomeInterface will result in this before and after:, (*2)

Before

<?php

namespace Some\Symfony\Lib;

class UsefulClass implements SomeInterface 
{
    // etc
}

After

<?php

namespace My\Awesome\Lib;

use Some\Symfony\Lib\UsefulClass as ThirdPartyUsefulClass;

class UsefulClass extends ThirdPartyUsefulClass implements SomeInterface 
{
}

For each class implementing the interface, we recursively iterate over the vendor classes and generate any classes extending them. These classes will also implement our interface., (*3)

<?php

namespace My\Awesome\Lib\Number;

use Some\Symfony\Lib\Number\UsefulNuberClass as ThirdPartyUsefulNumberClass;
use My\Awesome\Lib\SomeInterface;

class UsefulClass extends ThirdPartyUsefulNumberClass implements SomeInterface 
{
}

Installation

Install using composer, (*4)

$ composer require delboy1978uk/proxy-generator

Usage

You can use Del\ProxyGenerator\Service\ProxyGeneratorService if doing it programatically, or you can use the CLI command bin/proxy-generator., (*5)

$ cd bin
$ ./proxy-generator 'VendorInterface' 'YourInterface' look/in/this/folder 'BaseVendorNamespace', 'YourBaseNamespace', 'relative/path/to/genarate', '/absolute/project/root/basedir'

The Versions

28/11 2016

dev-master

9999999-dev

Use your own interfaces by generating wrapper classes.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Derek McLean