* Copyright (c) 2005, CakePHP Authors/Developers * * Author(s): Michal Tatarynowicz aka Pies * Larry E. Masters aka PhpNut * Kamil Dzielinski aka Brego * * Licensed under The MIT License * Redistributions of files must retain the above copyright notice. * * @filesource * @author CakePHP Authors/Developers * @copyright Copyright (c) 2005, CakePHP Authors/Developers * @link https://trac.cakephp.org/wiki/Authors Authors/Developers * @package cake * @subpackage cake.libs * @since CakePHP v 0.2.9 * @version $Revision$ * @modifiedby $LastChangedBy$ * @lastmodified $Date$ * @license http://www.opensource.org/licenses/mit-license.php The MIT License */ /** * Basic defines for timing functions. */ define('SECOND', 1); define('MINUTE', 60 * SECOND); define('HOUR', 60 * MINUTE); define('DAY', 24 * HOUR); define('WEEK', 7 * DAY); define('MONTH', 30 * DAY); define('YEAR', 365 * DAY); /** * Loads all models. * * @uses listModules() * @uses APP * @uses MODELS */ function loadModels() { require APP.'app_model.php'; foreach (listClasses(MODELS) as $model_fn) { require_once MODELS.$model_fn; } } /** * Loads all controllers. * * @uses APP * @uses listModules() * @uses HELPERS * @uses CONTROLLERS */ function loadControllers() { require APP.'app_controller.php'; foreach (listClasses(HELPERS) as $helper) { require_once HELPERS.$helper.'.php'; } foreach (listClasses(CONTROLLERS) as $controller) { require_once CONTROLLERS.$controller.'.php'; } } /** * Loads a controller and its helper libraries. * * @param string $name Name of controller * @return boolean Success */ function loadController($name) { $controllerFn = CONTROLLERS.Inflector::underscore($name).'_controller.php'; $helperFn = HELPERS.Inflector::underscore($name).'_helper.php'; require_once(APP.'app_controller.php'); if (file_exists($helperFn)) { require_once $helperFn; } if (file_exists($controllerFn)) { return require_once $controllerFn; } else { return false; } } /** * Lists PHP files in given directory. * * @param string $path Path to scan for files * @return array List of files in directory */ function listClasses($path) { $modules = new Folder($path); return $modules->find('(.+)\.php'); } /** * Loads configuration files * * @return boolean Success */ function config() { $args = func_get_args(); foreach ($args as $arg) { if (('database' == $arg) && file_exists(CONFIGS.$arg.'.php')) { require_once CONFIGS.$arg.'.php'; } elseif (file_exists(CONFIGS.$arg.'.php')) { require_once CONFIGS.$arg.'.php'; if (count($args) == 1) { return true; } } elseif (count($args) == 1) { return false; } } return true; } /** * Loads component/components from LIBS. * * Example: * * uses('flay', 'time'); * * * @uses LIBS */ function uses() { $args = func_get_args(); foreach ($args as $arg) { require_once LIBS.strtolower($arg).'.php'; } } /** * Require given files in the VENDORS directory. Takes optional number of parameters. */ function vendor() { $args = func_get_args(); foreach ($args as $arg) { require_once VENDORS.$arg.'.php'; } } /** * Print out debug information about given variable. * * Only runs if DEBUG level is non-zero. * * @param boolean $var Variable to show debug information for. * @param boolean $show_html If set to true, the method prints the debug data in a screen-friendly way. */ function debug($var = false, $show_html = false) { if (DEBUG) { print "\n
\n";
        if ($show_html)
        {
            $var = str_replace('<', '<', str_replace('>', '>', $var));
        }
        print_r($var);
        print "\n
\n"; } } if (!function_exists('getMicrotime')) { /** * Returns microtime for execution time checking. * * @return integer */ function getMicrotime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } } if (!function_exists('sortByKey')) { /** * Sorts given $array by key $sortby. * * @param array $array * @param string $sortby * @param string $order Sort order asc/desc (ascending or descending). * @param integer $type * @return mixed */ function sortByKey(&$array, $sortby, $order = 'asc', $type = SORT_NUMERIC) { if (!is_array($array)) { return null; } foreach ($array as $key => $val) { $sa[$key] = $val[$sortby]; } if ($order == 'asc') { asort($sa, $type); } else { arsort($sa, $type); } foreach ($sa as $key=>$val) { $out[] = $array[$key]; } return $out; } } if (!function_exists('array_combine')) { /** * Combines given identical arrays by using the first array's values as keys, * and the second one's values as values. (Implemented for back-compatibility with PHP4.) * * @param array $a1 * @param array $a2 * @return mixed Outputs either combined array or false. */ function array_combine($a1, $a2) { $a1 = array_values($a1); $a2 = array_values($a2); $c1 = count($a1); $c2 = count($a2); if ($c1 != $c2) { // different lenghts return false; } if ($c1 <= 0) { // arrays are the same and both are empty return false; } $output = array(); for ($i = 0; $i < $c1; $i++) { $output[$a1[$i]] = $a2[$i]; } return $output; } } function h($text) { return htmlspecialchars($text); } function a() { $args = func_get_args(); return $args; } function ha() { $args = func_get_args(); for ($l=0 ; $l 0) { echo "
";
        print_r($var);
        echo "
"; } } function params($p) { if (!is_array($p) || count($p) == 0) { return null; } else { if (is_array($p[0]) && count($p) == 1) { return $p[0]; } else { return $p; } } } ?>