| <?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; | |
| }
 |