PHP code example of ansas / php-component

1. Go to this page and download the library: Download ansas/php-component library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

ansas / php-component example snippets


public function __construct($price = null, $format = self::EURO)
public function __toString()
public function clearPrice()
public function getPrice($format = self::EURO)
public function setPrice($price, $format = self::EURO)
public function sanitize($price, $format = self::EURO)
final public static function getInstance()

use Ansas\Component\Collection\Collection;

// Create e. g. context
$context = new Collection([
    'key1' => 'value1',
]);

// Setter
$context->key2 = 'value2';
$context['key3'] = 'value3';
$context->set('key4', 'value4');
$context->append([
    'key4', 'value4',
    'key5', 'value5',
]);

// Getter
$key1 = $context->get('key1');
$key2 = $context['key2'];
$key3 = $context->key3;
$key4 = $context->need('key6'); // throws Exception if key does not exist

// Getter (array)
$array = $context->all();
$partArray1 = $context->only('key1,key3');
$partArray2 = $context->only(['key2', 'key4']);

// Count
$elemets = $context->count();
$elemets = count($context);

// Delete
$context->remove('key1');
unset($context->key1);
unset($context['key1']);

// Delete (extended)
$context->replace([
    'key4', 'value4',
    'key5', 'value5',
]); // replaces all existing elements with specified elements
$context->clear(); // deletes all elements

// Check
if ($context->has('key1')) {}
if (isset($context->key1)) {}
if (isset($context['key1'])) {}

// Iterate
foreach ($context as $key => $value) {}
foreach ($context->getIterator() as $key => $value) {}

// Special
$context->add('key6', 'value1'); // element key6 is string
$context->add('key6', 'value2'); // key6 is converted to array automatically
$keyArray = $context->keys(); // new numeric array containing keys only
$valueArray = $context->values(); // new numeric array containing values only

protected function convertEmptyToNull($value, array $considerNull = [''])
protected function convertToNull($value, array $considerNull, $trim = false)
protected function trimAndConvertEmptyToNull($value, array $considerNull = [''])
protected function trimAndConvertToNull($value, array $considerNull)

public static function getInstance()
public static function init()
public static function force(boolean $force)
public static function ttl(int $ttl)
public static function cleanup(callable $cleanup)
public static function kill()

// object handling methods
public function __construct(Logger $logger, $level = Logger::DEBUG, callable $formatter = null)
public function __destruct()
public function __get($profile)
public function __toString()

// profile methods
public function add($profile)
public function context(Collection $context = null)
public function get($profile)
public function has($profile)
public function remove($profile)
public function removeAll()
public function set($profile)

// stopwatch methods
public function start($message = 'Start', $context = [])
public function start($context = [])
public function startAll($message = 'Start', $context = [])
public function lap($message = 'Lap', $context = [])
public function lap($context = [])
public function stop($message = 'Stop', $context = [])
public function stop($context = [])
public function stopAll($message = 'Stop', $context = [])
public function note($message = 'Note', $context = [])
public function note($context = [])
public function clear()
public function clearAll()
public function restart($message = 'Restart', $context = [])
public function restart($context = [])

// setter methods
public function setLogger(Logger $logger)
public function setLevel($level)
public function setFormatter(callable $formatter = null)

// time methods
public function timeCurrent()
public function timeStart()
public function timeStop()
public function timeTotal()
public function timeLap($lap = -1)

// default methods
public function defaultFormatter()

// helper methods
public function countLaps()
public function getFormatter()
public function getLaps()
public function getName()
public function getProfiles()
public function isRunning()
public function isStarted()
public function isStopped()

use Ansas\Monolog\Profiler;

$profiler = new Profiler($logger);

// Starts default profile (must be started before any other profiles)
$profiler->start();

sleep(1);

// Adds profile "testA" and logs default message "Start"
$profiler->add("testA")->start(); 

sleep(1);

// Gets profile "testA" and adds a lap incl. logging it with default message 
// "Lap"
$profiler->get("testA")->lap();

// Adds profile "anotherB" (add always returns new new profile)
$anotherB = $profiler->add("anotherB");

// Starts profile "anotherB" with individual message "B is rolling"
$anotherB->start("B is rolling");

sleep(1);

// Add lap for default profile with individual message
$profiler->lap("Lap for main / default profile");

// Stop profile "anotherB" and log with default message "Stop"
$anotherB->stop();

// Add subprofile "moreC" to profile "anotherB" and start with individual 
// message and context array (default Monolog / PSR3 signature)
$moreC = $anotherB->add("moreC")->start("Message", ['key' => 1]);

// Add profile "lastD"  to "anotherB" as well
$lastD = $profiler->get("anotherB")->add("lastD");

// Just log a note to profile "lastD"
$lastD->note("Starting soon");
sleep(1);

// Clear only profile "anotherB" and start it again
$anotherB->clear()->start("Restarting after clear");

// Stopping "testA" (will not be restarted with upcomming "startAll")
$testA = $profiler->get("testA");
$testA->stop();

// Just add a profile without doing anything (will be started with startAll)
$profiler->add("test123");

// Start all profiles incl. default that are not startet
$profiler->startAll("Starting all profiles not started yet");

// Add "veryLastE" to "lastD" but do not log it (as message is null)
$veryLastE = $lastD->add("veryLastE")->start(null);

sleep(1);

// Some more profiling
$profiler->get("anotherB")->get("moreC")->lap("Lapdance ;P");
$veryLastE->stop("Stopping E");

// Make things easier, just create profiles via set() or magic method __get()
$profiler->set("profilX")->start();
$profiler->set("profilX")->lap();
$profiler->profilX->lap();
$profiler->profilX->stop();

sleep(1);

// Clear "lastD" all subprofiles (no logging will be done now or on exit)
$lastD->clearAll("Clearing D and all subprofiles");

// Stops all counters (done automatically on script end)
$anotherB->stopAll();

// Display current profiling status / report
echo $profiler;

// All running profiles are lapped (if needed), stopped and logged if profiler
// is destroyed or program ends
$profiler = null;
gc_collect_cycles();
sleep(3);

exit;

use Ansas\Monolog\Processor\ConsoleColorProcessor;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;

$loggerFormat   = "[%datetime%] %level_name% %message% %context%\n";
$loggerLevel    = getenv('DEBUG') ? Logger::DEBUG : Logger::NOTICE;
$loggerTimeZone = new DateTimeZone('Europe/Berlin');

$formatter = new LineFormatter($loggerFormat, $loggerTimeFormat);
$formatter->ignoreEmptyContextAndExtra(true);

$defaultHandler = new StreamHandler('php://stdout', $loggerLevel, $bubble = false);
$defaultHandler->setFormatter($formatter);

$errorHandler = new StreamHandler('php://stderr', Logger::ERROR, $bubble = false);
$errorHandler->setFormatter($formatter);

$logger = new Logger('console');
$logger->pushHandler($defaultHandler);
$logger->pushHandler($errorHandler);
$logger->pushProcessor(new ConsoleColorProcessor());
$logger->useMicrosecondTimestamps(true);

$logger->debug(str_repeat("Xx ", rand(5, 40)));
$logger->info(str_repeat("Xx ", rand(5, 40)));
$logger->notice(str_repeat("Xx ", rand(5, 40)));
$logger->warning(str_repeat("Xx ", rand(5, 40)));
$logger->error(str_repeat("Xx ", rand(5, 40)));
$logger->critical(str_repeat("Xx ", rand(5, 40)));
$logger->alert(str_repeat("Xx ", rand(5, 40)));
$logger->emergency(str_repeat("Xx ", rand(5, 40)));
shell
$ composer