Initial commit

This commit is contained in:
R. Eric Wheeler 2016-08-05 15:01:21 -07:00
commit 881cc3a551
6 changed files with 1607 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
.idea/
vendor/
storage/*
!storage/.gitkeep

48
bootstrap.php Normal file
View File

@ -0,0 +1,48 @@
<?php
/**
* This file is part of mocks-drupal-variables.
*
* @file bootstrap.php
*
* R. Eric Wheeler <reric@ee.stanford.edu>
*
* 8/5/16 / 10:19 AM
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
use Sikofitt\Mocks\Drupal\Variables;
define('CONFIG_PATH', __DIR__ . '/storage');
$config = new Variables([]);
if(!function_exists('variable_get'))
{
function variable_get($variableName, $default = null)
{
$config = new Variables([]);
return $config->variable_get($variableName, $default);
}
}
if(!function_exists('variable_set'))
{
function variable_set($variableName, $variableValue)
{
$config = new Variables([]);
return $config->variable_set($variableName, $variableValue);
};
}
if(!function_exists('variable_del'))
{
function variable_del($variableName)
{
$config = new Variables([]);
return $config->variable_del($variableName);
}
}

26
composer.json Normal file
View File

@ -0,0 +1,26 @@
{
"name": "sikofitt/mocks-drupal-variables",
"description": "Mock for drupal variable functions variable_(set,get,del)",
"type": "library",
"require": {
"werx/config": "1.3",
"symfony/yaml": "^3.1",
"hassankhan/config": "^0.10.0"
},
"require-dev": {
"phpunit/phpunit": "^5.5"
},
"license": "GPL-3.0",
"authors": [
{
"name": "sikofitt",
"email": "sikofitt@gmail.com"
}
],
"autoload": {
"psr-4": {
"Sikofitt\\Mocks\\Drupal\\":"src/Sikofitt/Mocks/Drupal/"
},
"files": ["bootstrap.php"]
}
}

1414
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,114 @@
<?php
/**
* This file is part of mocks-drupal-variables.
*
* @file Variables.php
*
* R. Eric Wheeler <reric@ee.stanford.edu>
*
* 8/5/16 / 10:15 AM
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Sikofitt\Mocks\Drupal;
use Noodlehaus\AbstractConfig;
use Noodlehaus\Config;
use Noodlehaus\ConfigInterface;
use Symfony\Component\Yaml\Yaml;
use werx\Config\Container;
use werx\Config\Providers\JsonProvider;
/**
* Class Variables
*
* @package Sikofitt\Mocks\Drupal
*/
class Variables extends AbstractConfig {
/**
* @param $data
*
* @return $this
*/
public function setData($data) {
$this->data = $data;
return $this;
}
/**
* @return array|null
*/
public function getData() {
return $this->data;
}
private function writeConfig($values)
{
file_put_contents(CONFIG_PATH . '/config.json', $values);
}
private function getConfig()
{
$config = new Config(CONFIG_PATH . '/config.json');
$this->setData($config->all());
}
public function variable_set($variableName, $variableValue)
{
$this->getConfig();
$this->set($variableName, serialize($variableValue));
$this->writeConfig(json_encode($this->all(), JSON_PRETTY_PRINT));
}
public function variable_get($variableName, $default = null)
{
$this->getConfig();
$variableValue = $this->get($variableName, $default);
return unserialize($variableValue);
}
public function variable_del($variableName)
{
$this->getConfig();
if($this->offsetExists($variableName))
{
unset($this->data[$variableName]);
}
$this->writeConfig(json_encode($this->all(), JSON_PRETTY_PRINT));
}
private function is_serialized( $data ) {
// if it isn't a string, it isn't serialized
if ( !is_string( $data ) )
return false;
$data = trim( $data );
if ( 'N;' == $data )
return true;
if ( !preg_match( '/^([adObis]):/', $data, $badions ) )
return false;
switch ( $badions[1] ) {
case 'a' :
case 'O' :
case 's' :
if ( preg_match( "/^{$badions[1]}:[0-9]+:.*[;}]\$/s", $data ) )
return true;
break;
case 'b' :
case 'i' :
case 'd' :
if ( preg_match( "/^{$badions[1]}:[0-9.E-]+;\$/", $data ) )
return true;
break;
}
return false;
}
}

0
storage/.gitkeep Normal file
View File