Popularity
2.9
Growing
Activity
5.0
Growing
182
4
10

Description

A defer statement originally comes from Golang. This library allows you to use defer functionality in PHP code.

Programming language: PHP
Tags: Event     Miscellaneous     Async    
Latest version: v5.0.0

PHP Defer alternatives and similar libraries

Based on the "Event" category

Do you think we are missing an alternative of PHP Defer or a related project?

Add another 'Event' Library

README

PHP Defer

Coverage Status Build Status

A defer statement originally comes from Golang. This library allows you to use defer functionality in PHP code.

Usage

<?php

defer($context, $callback);

defer requires two parameters: $context and $callback.

  1. $context - unused in your app, required to achieve "defer" effect. I recommend to use $_ always.
  2. $callback - a callback which is executed after the surrounding function returns.

Examples

Defer the execution of a code

<?php

function helloGoodbye()
{
    defer($_, function () {
        echo "goodbye\n";
    });

    defer($_, function () {
        echo "...\n";
    });

    echo "hello\n";
}

echo "before hello\n";
helloGoodbye();
echo "after goodbye\n";

// Output:
//
// before hello
// hello
// ...
// goodbye
// after goodbye

Defer and exceptions

<?php

function throwException()
{
    defer($_, function () {
        echo "after exception\n";
    });

    echo "before exception\n";

    throw new \Exception('My exception');
}

try {
    throwException();
} catch (\Exception $e) {
}

// Output:
//
// before exception
// after exception

Installation

PHP Defer supports all PHP versions from ^5.3 to ^7.4. The following command will install the latest possible version of PHP Defer for your PHP interpreter.

composer require "php-defer/php-defer:^3.0|^4.0|^5.0"

Credits

This library is inspired by mostka/defer.