Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

AbstractStorage.php

Namespace

WebDriver\Storage

File

vendor/lullabot/php-webdriver/lib/WebDriver/Storage/AbstractStorage.php

View source
<?php


/**
 * @copyright 2011 Anthon Pang
 * @license Apache-2.0
 *
 * @package WebDriver
 *
 * @author Anthon Pang <apang@softwaredevelopment.ca>
 */
namespace WebDriver\Storage;

use WebDriver\AbstractWebDriver;
use WebDriver\Exception as WebDriverException;

/**
 * WebDriver\AbstractStorage class
 *
 * @package WebDriver
 *
 * @method mixed getKey($key) Get key/value pair.
 * @method void deleteKey($key) Delete a specific key.
 * @method integer size() Get the number of items in the storage.
 */
abstract class AbstractStorage extends AbstractWebDriver {
    
    /**
     * {@inheritdoc}
     */
    protected function methods() {
        return array(
            'key' => array(
                'GET',
                'DELETE',
            ),
            'size' => array(
                'GET',
            ),
        );
    }
    
    /**
     * Get all keys from storage or a specific key/value pair
     *
     * @return mixed
     */
    public function get() {
        // get all keys
        if (func_num_args() === 0) {
            $result = $this->curl('GET', '');
            return $result['value'];
        }
        // get key/value pair
        if (func_num_args() === 1) {
            return $this->getKey(func_get_arg(0));
        }
        throw WebDriverException::factory(WebDriverException::UNEXPECTED_PARAMETERS);
    }
    
    /**
     * Set specific key/value pair
     *
     * @return \WebDriver\Storage\AbstractStorage
     *
     * @throw \WebDriver\Exception\UnexpectedParameters if unexpected parameters
     */
    public function set() {
        if (func_num_args() === 1 && is_array($arg = func_get_arg(0))) {
            $this->curl('POST', '', $arg);
            return $this;
        }
        if (func_num_args() === 2) {
            $arg = array(
                'key' => func_get_arg(0),
                'value' => func_get_arg(1),
            );
            $this->curl('POST', '', $arg);
            return $this;
        }
        throw WebDriverException::factory(WebDriverException::UNEXPECTED_PARAMETERS);
    }
    
    /**
     * Delete storage or a specific key
     *
     * @return \WebDriver\Storage\AbstractStorage
     *
     * @throw \WebDriver\Exception\UnexpectedParameters if unexpected parameters
     */
    public function delete() {
        // delete storage
        if (func_num_args() === 0) {
            $this->curl('DELETE', '');
            return $this;
        }
        // delete key from storage
        if (func_num_args() === 1) {
            $this->deleteKey(func_get_arg(0));
            return $this;
        }
        throw WebDriverException::factory(WebDriverException::UNEXPECTED_PARAMETERS);
    }

}

Classes

Title Deprecated Summary
AbstractStorage WebDriver\AbstractStorage class

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal