1. Go to this page and download the library: Download make/accessible library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
make / accessible example snippets
use Person;
/**
* Class PeopleGreeter.
*
* Greats a list of persons, nothing more.
*/
class PeopleGreeter
{
/** @var Person[] */
protected $peopleToGreet = [];
/**
* Adds a person to `$peopleToGreat`.
*/
public function addPersonToGreet(Person $person)
{
$this->peopleToGreet[] = $person;
}
/**
* Greats a `$person`.
*
* @param Person $person Person to great.
*/
protected function greet(Person $person)
{
if ($person->isWoman()) {
return 'Hi Mrs. ' . $person->name();
} else {
return 'Hello Mr. ' . $person->name();
}
}
/**
* Greats everyone on `$peopleToGreat`.
*/
public function greetEveryone()
{
foreach ($this->peopleToGreet as $person) {
echo $this->greet($person);
}
}
}
$person = new Person('John Doe');
$peopleGreeter = new PeopleGreeter();
$peopleGreeter->addPersonToGreet($person);
$this->assertTrue(in_array($person, $peopleGreeter->peopleToGreet));
$person = new Person('John Doe');
$this->assertEquals("Hello Mr. John Doe", (new PeopleGreeter())->greet($person));
class ExtendedPeopleGreeter extends PeopleGreeter
{
public function greet($person)
{
return parent::greet($person);
}
public function getPeopleToGreet()
{
return parent::$peopleToGreet;
}
}
$person = new Person('John Doe');
$this->assertEquals("Hello Mr. John Doe", (new ExtendedPeopleGreeter())->greet($person));
$person = new Person('John Doe');
$peopleGreeter = new ExtendedPeopleGreeter();
$peopleGreeter->addPersonToGreet($person);
$this->assertTrue(in_array($person, $peopleGreeter->getPeopleToGreet()));
$person = new Person('John Doe');
$peopleGreeter = new PeopleGreeter();
$peopleGreeter->addPersonToGreet($person);
$reflectedClass = new \ReflectionClass($peopleGreeter);
$propertyName = 'peopleToGreet';
if ($reflectedClass->hasProperty($propertyName)) {
$property = $reflectedClass->getProperty($propertyName);
$property->setAccessible(true);
$this->assertTrue(in_array($person, $property->getValue($peopleGreeter)));
}
$person = new Person('John Doe');
$reflectedClass = new \ReflectionClass($peopleGreeter);
$propertyName = 'peopleToGreet';
$peopleGreeter = new PeopleGreeter();
$reflectedClass = new \ReflectionClass($peopleGreeter);
$methodName = 'greet';
if ($reflectedClass->hasMethod($methodName)) {
$method = $reflectedClass->getMethod($methodName);
$method->setAccessible(true);
$returnedValue = $method->invokeArgs($peopleGreeter, ['person' => $person]);
$this->assertEquals("Hello Mr. John Doe", $returnedValue);
}
$person = new Person('John Doe');
$peopleGreeter = new PeopleGreeter();
$peopleGreeter->addPersonToGreet($person);
$accessiblePeopleGreeter = Make::accessible($peopleGreeter);
$this->assertTrue(in_array($person, $accessiblePeopleGreeter->peopleToGreet));
$person = new Person('John Doe');
$peopleGreeter = new PeopleGreeter();
$accessiblePeopleGreeter = Make::accessible($peopleGreeter);
$this->assertEquals("Hello Mr. John Doe", $accessiblePeopleGreeter->greet($person));
class PeopleGreeterTest extends TestCase
{
public function testGreet()
{
$person = new Person('John Doe');
$peopleGreeter = $this->getAccessibleInstance();
$this->assertEquals("Hello Mr. John Doe", $peopleGreeter->greet($person));
}
Others test functions...
public function getAccessibleInstance()
{
$instance = new PeopleGreeter();
return Make::accessible($instance);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.