2017 © Pedro Peláez
 

library simplelock

A simple locking/semaphore library for PHP 5.3+ with different adapters. Prevents flooding and multiple execution of code parts.

image

pteich/simplelock

A simple locking/semaphore library for PHP 5.3+ with different adapters. Prevents flooding and multiple execution of code parts.

  • Friday, December 5, 2014
  • by pteich
  • Repository
  • 1 Watchers
  • 0 Stars
  • 8 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Simplelock

Overview

A simple locking/semaphore library for PHP 5.3+ with different adapters. Helps to keep code thread safe and prevent flooding or multiple execution of time consumptive code that could otherwise break your application., (*1)

You can set locks for a specific time duration. Locks can also be autoreleased on script termination. This assures that a task can only executed once at a time., (*2)

Installation

With Composer

Just add pteich/simplelock to your composer.json require:, (*3)

"pteich/simplelock":  "dev-master"

Without Composer

Download archive from Github and expand it to a directory. There is no autoloader provided so you'll have to deal with it for your own. You can register Simplelock directory with your PSR-4 compatible autoloader., (*4)

Usage

// create apc adapter
$adapter = new \Simplelock\Adapter\Apc();

// create simplelock object using $adapter and use autounlock feature
$lock = new \Simplelock(
    $adapter,
    true
);

$ttl = 60; // seconds to lock
$mykey = 'my key'; // key for this lock

if (!$lock->locked($mykey)) {
    // lock now     
    $lock->lock($mykey,$ttl);
    // do hard work here
}

Adapters

First argumente if the Simplelock constructor is an adapter object. Supported adapters are:, (*5)

  • mock - unlock always, for testing purposes
  • file - file backend, keeps semaphore files in configurable directory
  • apc - apc backend, keeps values in memory

APC Adapter

No config must be provided. APC extension is required. Values are delete from memory on unlock., (*6)

File Adapter

Provide an array with path key pointing to a valid directory to store semaphore files. This adapter deletes files on unlock., (*7)

Example:, (*8)


$adapter = new \Simplelock\Adapter\File(array( 'path' => __DIR__ . '/lock' ));

Mock Adapter

This adapter keeps everything always unlocked. Useful for testing or to disable locking at all without removing calls to Simplelock., (*9)

Autounlock

If true is provided as second parameter to the Simplelock constructor all locks are automatically released on script termination., (*10)

The Versions

05/12 2014

dev-master

9999999-dev http://github.com/pteich/simplelock

A simple locking/semaphore library for PHP 5.3+ with different adapters. Prevents flooding and multiple execution of code parts.

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

lock utils locking semaphore debounce