2017 © Pedro Peláez
 

library prototype

image

gabrieljmj/prototype

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Gabrieljmj\Prototype

Total Downloads Latest Unstable Version License Scrutinizer Code Quality, (*1)

This library allows you to create prototypes almost like in JavaScript., (*2)

Tests

Sorry, I know that it is wrong, but I left the tests to do after the library. Why? Because I am having problems to write them., (*3)

1. Creating an object

Objects are created with functions. These functions will return an object. All objects are registred on a class called \Gabrieljmj\Prototype\Prototype., (*4)

require_once 'autoload.php';

use Gabrieljmj\Prototype\Prototype;

function Person() {
    return Prototype::getInstance()->prot('Person');
}

To set methods, you need set as global the variable $self and use like you use $this on OOP:, (*5)

Person()->on = 1;

Person()->setName = function ($name) {
    global $self;
    $self->name = $name;
};

Person()->getName = function() {
    global $self;
    return $self->name;
};

So you can instance this and execute the methods and get the propeties:, (*6)

$user1 = new Person();
$user1->setName('Hansel');

$user2 = new Person();
$user2->setName('Gretel');

echo $user1->getName() . ' and ' . $user2->getName(); //Hansel and Gretel

2. Extending

The extending is almost the same of JavaScript. Just set the property $prototype:, (*7)

function Employee() {
    return Prototype::getInstance()->prot('Employee');
}

Employee()->prototype = new Person();

Employee()->setJobTitle = function ($jobtitle) {
    global $self;
    $self->jobTitle = $jobtitle;
};

Employee()->getJobTitle = function () {
    global $self;
    return $self->jobTitle;
};

$employee = new Employee();
$employee->setName('Jhon');
$employee->setJobTitle('Developer');

echo 'Hi! My name is ' . $employee->getName() . ' and I work as ' . $employee->getJobTitle() . '.';
//Hi! My name is Jhon and I work as Developer.

2.1. Instanceof

var_dump($person instanceof Employee); //bool(false)
var_dump($employee instanceof Person); //bool(true)

The Versions

01/11 2014

dev-master

9999999-dev

  Sources   Download

MIT

The Development Requires