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
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.