PHP Classes

PHP Optional Chaining: Chain class function calls preventing errors

Recommend this page to a friend!
     
  Info   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not yet rated by the usersTotal: 91 All time: 9,943 This week: 660Up
Version License PHP version Categories
php-optionals 1.0MIT/X Consortium ...7Language, PHP 7
Description 

Author

This class can chain class function calls preventing errors.

It provides a wrapper to a given object so all calls to that object will go through this class in such way can in can queue chained calls to the wrapped object.

The class can all functions of the boxed object that were queued all at once by calling the unbox function of the box object of this class.

Innovation Award
PHP Programming Innovation award nominee
September 2019
Number 3


Prize: One subscription to the PDF edition of the PHP Architect magazine
Chaining is an approach used by many developers to make a sequence of calls to the functions of the same object by returning the object again to the next function call, so the developer has to write less code to call all the functions in a sequence.

The problem of this approach is that if one of the function calls fails, it may not return the object, thus breaking the sequence.

This package provides a workaround this problem by wrapping the function calls in a "box" class that can queue the function calls and call one function after another, unless one function fails.

Manuel Lemos
Picture of Axel Pardemann
  Performance   Level  
Innovation award
Innovation award
Nominee: 3x

 

Details

<div align="center">

<h1>PHP Optionals</h1>
<p align="center">
    <a href="https://packagist.org/packages/norse-blue/optionals"><img alt="Stable Release" src="https://img.shields.io/packagist/v/norse-blue/optionals.svg?style=flat-square&label=release&logo=packagist&logoColor=eceff4&colorA=4c566a&colorB=5e81ac"></a>
    <a href="https://travis-ci.com/norse-blue/php-optionals"><img alt="Build Status" src="https://img.shields.io/travis/com/norse-blue/php-optionals.svg?style=flat-square&label=build&logo=travis-ci&logoColor=eceff4&colorA=4c566a&colorB=88c0d0"></a>
    <a href="https://php.net/releases"><img alt="PHP Version" src="https://img.shields.io/packagist/php-v/norse-blue/optionals.svg?style=flat-square&label=php&logo=php&logoColor=eceff4&colorA=4c566a&colorB=b48ead"></a>
    <a href="https://codeclimate.com/github/norse-blue/php-optionals"><img alt="Maintainability" src="https://img.shields.io/codeclimate/maintainability/norse-blue/php-optionals.svg?style=flat-square&label=maintainability&logo=code-climate&logoColor=eceff4&colorA=4c566a&colorB=88c0d0"></a>
    <a href="https://codeclimate.com/github/norse-blue/php-optionals"><img alt="Test Coverage" src="https://img.shields.io/codeclimate/coverage/norse-blue/php-optionals.svg?style=flat-square&label=coverage&logo=code-climate&logoColor=eceff4&colorA=4c566a&colorB=88c0d0"></a>
    <a href="https://packagist.org/packages/norse-blue/optionals"><img alt="Total Downloads" src="https://img.shields.io/packagist/dt/norse-blue/optionals.svg?style=flat-square&label=downloads&logoColor=eceff4&colorA=4c566a&colorB=88c0d0"></a>
    <a href="https://github.com/norse-blue/php-optionals/blob/master/LICENSE.md"><img alt="License" src="https://img.shields.io/github/license/norse-blue/php-optionals.svg?style=flat-square&label=license&logoColor=eceff4&colorA=4c566a&colorB=a3be8c"></a>
</p>

</div> <hr>

PHP Optionals is a PHP library that allows you to chain method calls or access properties of an object while preventing errors from occurring.

Installation

>Requirements: >- PHP 7.3+

Install this package using Composer:

composer require norse-blue/optionals

Usage

To get more in-depth knowledge about this package, please refer to the Official Documentation.

Changelog

Please refer to the CHANGELOG.md file for more information about what has changed recently.

Contributing

Contributions to this project are accepted and encouraged. Please read the CONTRIBUTING.md file for details on contributions.

Credits

Security

Please review our security policy to know how to report security vulnerabilities within this package.

Support the development

Do you like this project? Support it by donating

<a href="https://www.buymeacoffee.com/axelitus"><img src="docs/assets/images/buy-me-a-coffee.svg" width="180" alt="Buy me a coffee"></img></a>

License

This package is open-sourced software licensed under the MIT license.


  Files folder image Files (37)  
File Role Description
Files folder image.changelog (3 files)
Files folder image.github (4 files, 1 directory)
Files folder imagedocs (2 files, 3 directories)
Files folder imagesrc (1 file, 1 directory)
Files folder imagetests (2 files, 1 directory)
Accessible without login Plain text file .codeclimate.yml Data Auxiliary data
Accessible without login Plain text file .editorconfig Data Auxiliary data
Accessible without login Plain text file .phpcs.xml.dist Data Auxiliary data
Accessible without login Plain text file .styleci.yml Data Auxiliary data
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file CHANGELOG.md Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE.md Lic. License text
Accessible without login Plain text file php-optionals.sublime-project Data Auxiliary data
Plain text file phpinsights.php Class Class source
Accessible without login Plain text file phpstan.neon.dist Data Auxiliary data
Accessible without login Plain text file phpunit.xml.dist Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation
Accessible without login Plain text file SECURITY.md Data Auxiliary data

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:91
This week:0
All time:9,943
This week:660Up