zeeshanu/yell

This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.

A php package that yells when you try to access a property that doesn't exist in a class!

1.0.0 2016-06-22 12:40 UTC

This package is not auto-updated.

Last update: 2021-11-27 03:52:20 UTC


README

Scrutinizer Code Quality Code Climate Latest Stable Version License

PHP package to make your objects strict and throw exception when you try to access or set some undefined property in your objects.

Requirement

PHP >= 5.4.0.

Installation

You can install the library using the following ways:

Using Composer

You can install this through Composer, a dependency manager for PHP. Just run the below command:

composer require zeeshanu/yell

For further details you can find the package at Packagist.

Manual way

  • Copy src to your codebase, perhaps to the vendor directory.
  • Add the Zeeshanu\Yell\Scream class to your autoloader or require the file directly.

Getting Started

I'm going to create take an example to demonstrate the usage.

For example, you have a Person class like below:

class Person
{
    public $name;
    public $age;
}

$person = new Person();

$person->name = 'John Doe';
$person->age = 23;

// Will silently set the property `profession` on `Person` without any issue 
$person->profession = 'Teacher';

Here is how you can make your object strict i.e. not allow any other properties except $name and $age and throw exceptions for any other properties. Just use Zeeshanu\Yell\Scream trait in your class as follows

use Zeeshanu\Yell\Scream;

class Person
{
    use Scream;

    public $name;
    public $age;
}

$person = new Person();

$person->name = 'John Doe';
$person->age = 23;

// An exception will be thrown when showing message "Trying to set undefined property $profession in class Person"  
$person->profession = 'Teacher';

Feedback

If you notice that there might be some improvements in code you can create a pull request or report an issue. You can also contact me at ziishaned@gmail.com.

License

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