Files
luos/workflow/engine/src/ProcessMaker/Util/Common.php
2016-06-22 16:43:23 -04:00

159 lines
3.8 KiB
PHP

<?php
namespace ProcessMaker\Util;
class Common extends \Maveriks\Util\Common
{
private $frontEnd = false;
/**
* Set front-end flag (Terminal's front-end)
*
* @param bool $flag Flag
*
* return void
*/
public function setFrontEnd($flag)
{
try {
$this->frontEnd = $flag;
} catch (\Exception $e) {
throw $e;
}
}
/**
* Show front-end (Terminal's front-end)
*
* @param string $option Option
* @param string $data Data string
*
* return void
*/
public function frontEndShow($option, $data = "")
{
try {
if (!$this->frontEnd) {
return;
}
$numc = 50;
switch ($option) {
case "BAR":
echo "\r" . "| " . $data . str_repeat(" ", $numc - 2 - strlen($data));
break;
case "TEXT":
echo "\r" . '| ' . $data . "\n";
break;
default:
//START, END
echo "\r" . "+" . str_repeat("-", $numc - 2) . "+" . "\n";
break;
}
} catch (\Exception $e) {
throw $e;
}
}
/**
* Progress bar (Progress bar for terminal)
*
* @param int $total Total
* @param int $count Count
*
* return string Return a string that represent progress bar
*/
public function progressBar($total, $count)
{
try {
$p = (int)(($count * 100) / $total);
$n = (int)($p / 2);
return "[" . str_repeat("|", $n) . str_repeat(" ", 50 - $n) . "] $p%";
} catch (\Exception $e) {
throw $e;
}
}
/**
* Generate random number
*
* @author Fernando Ontiveros Lira <fernando@colosa.com>
* @access public
* @return string
*/
public static function generateUID()
{
do {
$sUID = str_replace('.', '0', uniqid(rand(0, 999999999), true));
} while (strlen( $sUID ) != 32);
return $sUID;
}
/**
* Generate a numeric or alphanumeric code
*
* @author Julio Cesar Laura Avendaño <juliocesar@colosa.com>
* @access public
* @param int $iDigits
* @param string $sType
* @return string
*/
public function generateCode($iDigits = 4, $sType = 'NUMERIC')
{
if (($iDigits < 4) || ($iDigits > 50)) {
$iDigits = 4;
}
if (($sType != 'NUMERIC') && ($sType != 'ALPHA') && ($sType != 'ALPHANUMERIC')) {
$sType = 'NUMERIC';
}
$aValidCharacters = array(
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H',
'I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
);
switch ($sType) {
case 'NUMERIC':
$iMin = 0;
$iMax = 9;
break;
case 'ALPHA':
$iMin = 10;
$iMax = 35;
break;
case 'ALPHANUMERIC':
$iMin = 0;
$iMax = 35;
break;
}
$sCode = '';
for ($i = 0; $i < $iDigits; $i ++) {
$sCode .= $aValidCharacters[rand($iMin, $iMax)];
}
return $sCode;
}
/**
* Convert string to JSON
*
* @param string $string
*
* @return object Returns an object, FALSE otherwise
*/
public static function stringToJson($string)
{
try {
$object = json_decode($string);
return (json_last_error() == JSON_ERROR_NONE)? $object : false;
} catch (\Exception $e) {
throw $e;
}
}
}