uzulla/guardphp

(Perl) Guard for PHP

Installs: 12

Dependents: 0

Suggesters: 0

Security: 0

Stars: 3

Watchers: 3

Forks: 0

Open Issues: 0

pkg:composer/uzulla/guardphp

v1.0 2014-05-17 05:25 UTC

This package is auto-updated.

Last update: 2025-09-07 16:42:29 UTC


README

Like a Perl Scope::Guard

SYNOPSIS

<?php
require "vendor/autoload.php";

use \Uzulla\Guard as Guard;

chdir('/usr'); # カレントディレクトリを/tmpに変更
echo getcwd().PHP_EOL; # カレントディレクトリを表示

call_user_func(function(){
    $g = new Guard(function(){ # Guardにコードを登録
        chdir('/usr');
    });
    chdir('/'); # カレントディレクトリを/に変更
    echo getcwd().PHP_EOL; # カレントディレクトリを表示
    # ここでscopeがおわるので、上で登録したコードが実行される
});

echo getcwd().PHP_EOL; # カレントディレクトリを表示

DESCRIPTION

Guardは特定のスコープを抜けたときに実行する関数を登録する事ができます。

スコープを抜けたときに変数が開放されることを利用しているので、関数スコープのPHPでは無名関数などを使うとよいでしょう。

変数名を変えれば、いくつでも作る事が可能ですが、実行順序は保証去れません。

LICENSE

MIT