2017 © Pedro Peláez
 

library exposure

Exposure acts as a proxy to protected and private properties and methods on an object.

image

stevenwadejr/exposure

Exposure acts as a proxy to protected and private properties and methods on an object.

  • Monday, August 31, 2015
  • by stevenwadejr
  • Repository
  • 1 Watchers
  • 0 Stars
  • 148 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Exposure

"Make your privates public"., (*1)

Have you ever needed access to private/protected object properties or methods? Of course they're private/protected for a reason... but, sometimes you just need them., (*2)

Exposure exposes private and protected properties and methods as well as allowing for new methods to be added to an object after instantiation., (*3)

Installation

Via Composer, (*4)

composer require stevenwadejr/exposure

What's new in 0.3.0?

You can now expose your objects and benefit from type hinting. Exposure now comes with a factory to create a new instance of Exposure that extends your closed class., (*5)

Example:, (*6)

use StevenWadeJr\Exposure\Factory;

class CantTouchThis
{
    private $privateParty = 'This is private';
}

$exposed = Factory::expose(new CantTouchThis);
echo $exposed->privateParty; // outputs 'This is private'
var_dump($exposed instanceof CantTouchThis); // outputs 'true'

Example

<?php
use StevenWadeJr\Exposure\Exposure;

class CantTouchThis
{
    public $publicProperty = 'This is public';

    protected $protectedProperty = 'This is protected';

    private $privateProperty = 'This is private';

    public function publicMethod()
    {
        return 'This is a public method';
    }

    protected function protectedMethod()
    {
        return 'This is a protected method';
    }

    private function privateMethod()
    {
        return 'This is a private method';
    }
}

$exposure = new Exposure(new CantTouchThis);

Access public properties and methods

echo $exposure->publicProperty; // outputs 'This is public'
echo $exposure->publicMethod(); // outputs 'This is a public method'

Inaccessible properties and methods

echo $exposure->privateProperty; // outputs 'This is private'
echo $exposure->protectedMethod(); // outputs 'This is a protected method'

Overwrite protected properties

$exposure->protectedProperty = 'New protected property';
echo $exposure->protectedProperty; // outputs 'New protected property'

Add a new method to the object

$exposure->__methods('setProtectedProperty', function()
{
    $this->protectedProperty = 'Whoops, I touched this!';
});
$exposure->setProtectedProperty();
echo $exposure->protectedProperty; // outputs 'Whoops, I touched this!'

Why?

Obviously, try to follow the Open/Closed Principle whenever possible, and there are rarely ever any circumstances when you should actually use this class, but sometimes there are., (*7)

Uses

Production? Please don't. Testing? Sure!, (*8)

The Versions

31/08 2015

dev-develop

dev-develop

Exposure acts as a proxy to protected and private properties and methods on an object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

by Matt Cuyar
by Steven Wade

31/08 2015

dev-master

9999999-dev

Exposure acts as a proxy to protected and private properties and methods on an object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

by Matt Cuyar
by Steven Wade

31/08 2015

0.3.0

0.3.0.0

Exposure acts as a proxy to protected and private properties and methods on an object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

by Matt Cuyar
by Steven Wade

06/07 2015

0.2.2

0.2.2.0

Exposure acts as a proxy to protected and private properties and methods on an object.

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

by Matt Cuyar
by Steven Wade