Skip to content
This repository has been archived by the owner on Nov 23, 2024. It is now read-only.
/ GetSet Public archive

Trait for adding magic setters / getters to objects

License

Notifications You must be signed in to change notification settings

mikebarlow/GetSet

Repository files navigation

GetSet

Author Latest Version Software License Build Status

Introduction

GetSet is a PSR-2 compliant trait to be used for adding magic getters / setters to objects.

Requirements

Composer

GetSet requires the following:

  • "php": ">=5.6.0"

And the following if you wish to run in dev mode and run tests.

  • "phpunit/phpunit": "~5.7"
  • "squizlabs/php_codesniffer": "~2.0"

Installation

Composer

Simplest installation is via composer.

composer require snscripts/getset 1.*

or adding to your projects composer.json file.

{
    "require": {
        "snscripts/getset": "1.*"
    }
}

Setup

To initiate GetSet simply use the trait within your class

class MyClass
{
    use \Snscripts\GetSet\GetSet;

    ...
}

Usage

Once setup, simply set or get any variables on the object you need.

$MyClass->foo_bar = 'barfoo';

echo $MyClass->foo_bar; // barfoo

This will set the variable into a $data array added to your object via the GetSet trait.

Variable Transformers

You can create custom get / set transformers to change a variables data as it gets added to or retrieved from the $data variable. These should be in the format setXAttr and getXAttr where X is a CamelCased version of the variable you are setting or getting from the object.

In the example above, basic getter / setter methods for foo_bar could look like:

public function setFooBarAttr($value)
{
    $this->data['foo_bar'] = strtoupper($value);
}

public function getFooBarAttr()
{
    return strtolower($this->data['foo_bar']);
}

Mass data assignment

If you need to assign a full array of data to your object and wish for the variables to be passed through any custom setters there is the setAllData method.

$MyClass->setAllData([
    'foo_bar' => 'barfoo'
]);

Data Export

If you need to export all the data set within your object you can use 1 of 2 methods.

toArray

$MyClass->toArray();

This will simply return all data set onto the object as an array.

toJson

$MyClass->toJson();

This will return all the data set onto the object as a Json object. This first uses the toArray method to retrieve an array before returning the data through json_encode.

Changelog

You can view the changelog HERE

Contributing

Please see CONTRIBUTING for details.

License

The MIT License (MIT). Please see License File for more information.

About

Trait for adding magic setters / getters to objects

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages