<?php
							 | 
						|
								use Monolog\Logger;
							 | 
						|
								use Monolog\Handler\StreamHandler;
							 | 
						|
								
							 | 
						|
								date_default_timezone_set('UTC');
							 | 
						|
								
							 | 
						|
								if(getenv('ENV')) {
							 | 
						|
								  require(dirname(__FILE__).'/../config.'.getenv('ENV').'.php');
							 | 
						|
								} else {
							 | 
						|
								  require(dirname(__FILE__).'/../config.php');
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function initdb() {
							 | 
						|
								  ORM::configure('mysql:host=' . Config::$db['host'] . ';dbname=' . Config::$db['database']);
							 | 
						|
								  ORM::configure('username', Config::$db['username']);
							 | 
						|
								  ORM::configure('password', Config::$db['password']);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function logger() {
							 | 
						|
								  static $log;
							 | 
						|
								  if(!isset($log)) {
							 | 
						|
								    $log = new Logger('name');
							 | 
						|
								    $log->pushHandler(new StreamHandler(dirname(__FILE__).'/../logs/telegraph.log', Logger::DEBUG));
							 | 
						|
								  }
							 | 
						|
								  return $log;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function log_info($msg) {
							 | 
						|
								  logger()->addInfo($msg);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function log_warning($msg) {
							 | 
						|
								  logger()->addWarning($msg);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function view($template, $data=[]) {
							 | 
						|
								  global $templates;
							 | 
						|
								  return $templates->render($template, $data);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function q() {
							 | 
						|
								  static $caterpillar = false;
							 | 
						|
								  if(!$caterpillar) {
							 | 
						|
								    $logdir = __DIR__.'/../scripts/logs/';
							 | 
						|
								    $caterpillar = new Caterpillar('telegraph', '127.0.0.1', 11300, $logdir);
							 | 
						|
								  }
							 | 
						|
								  return $caterpillar;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function redis() {
							 | 
						|
								  static $client = false;
							 | 
						|
								  if(!$client)
							 | 
						|
								    $client = new Predis\Client('tcp://127.0.0.1:6379');
							 | 
						|
								  return $client;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function random_string($len) {
							 | 
						|
								  $charset='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
							 | 
						|
								  $str = '';
							 | 
						|
								  $c = strlen($charset)-1;
							 | 
						|
								  for($i=0; $i<$len; $i++) {
							 | 
						|
								    $str .= $charset[mt_rand(0, $c)];
							 | 
						|
								  }
							 | 
						|
								  return $str;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								// Returns true if $needle is the end of the $haystack
							 | 
						|
								function str_ends_with($haystack, $needle) {
							 | 
						|
								  if($needle == '' || $haystack == '') return false;
							 | 
						|
								  return strpos(strrev($haystack), strrev($needle)) === 0;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function display_url($url) {
							 | 
						|
								  return preg_replace(['/^https?:\/\//','/\/$/'], '', $url);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								function session($k, $default=null) {
							 | 
						|
								  if(!isset($_SESSION)) return $default;
							 | 
						|
								  return array_key_exists($k, $_SESSION) ? $_SESSION[$k] : $default;
							 | 
						|
								}
							 |