<?php
/**
* プロファイルのスキーマ情報を扱うクラス
*
* PHP version 5
*
* @package    core
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

class ProfileSchema
{

	/*
	 * プロファイルスキーマ情報
	 */
	public static function getSchema()
	{
		return array(
				'PROFILE_NAME'         => 'S',
				'DEFAULT_PROCKEY'      => 'S',
				'USE_EXTLIB'           => 'B',
				'EXTLIB_DIR'           => 'S',
				'DEFAULT_TIMEZONE'     => 'S',
				'USE_SESSION'          => 'B',
				'SESSION_HANDLER_NAME' => 'S',
				'CLASS_LOADERS'        => 'S',
				'USE_DB'               => 'B',
				'DB_DATA_SOURCE'       => 'S',
				'LOG_ENABLED'          => 'B',
				'LOG_LEVEL'            => 'S',
				'LOG_LOGGERS'          => 'A',
				'HTML_CODE'            => 'S',
				'PHP_CODE'             => 'S',
				'DB_CODE'              => 'S',
				'LOG_CODE'             => 'S',
				'TM_MAX_EVENT_LOOP'    => 'I',
				'TM_MAX_EVENT_TIME'    => 'I',
				'URL_MAPPER'           => 'S',
				'USE_URL_MAPPING'      => 'B',
			);
	}

	/*
	 * プロファイルの内容をダンプ
	 */
	public static function dumpProfileData()
	{
		$schema = self::getSchema();

		// プロファイルログ出力
		foreach( Profile::getKeys() as $key ){

			$type = $schema[$key];
			switch( $type ){
			case 'S':	$method = 'getString';	break;
			case 'I':	$method = 'getInteger';	break;
			case 'B':	$method = 'getBoolean';	break;
			case 'A':	$method = 'getArray';	break;
			}
			$value = Profile::$method(s($key));

			log_info( 'profile', "$key=$value", __FILE__, __LINE__ );
		}
	}
}

return __FILE__;