#ifdef HAVE_CONFIG_H
#include "../../ext_config.h"
#endif
#include <php.h>
#include "../../php_ext.h"
#include "../../ext.h"
#include <Zend/zend_operators.h>
#include <Zend/zend_exceptions.h>
#include <Zend/zend_interfaces.h>
#include "kernel/main.h"
#include "kernel/memory.h"
#include "kernel/fcall.h"
#include "kernel/operators.h"
#include "kernel/object.h"
/**
  * @class Phady\Core\Parameter -  Parameter for app
  *
  * @author  Alien Fernández Fuentes < [email protected]>
  * @package Core
  * @copyright (c) 2015
  * @version 1.0.0
  */
ZEPHIR_INIT_CLASS(Phady_Core_Parameter) {
	ZEPHIR_REGISTER_CLASS(Phady\\Core, Parameter, phady, core_parameter, phady_core_parameter_method_entry, 0);
	/**
	 * @var string Directorio raiz del proyecto /app
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("root_dir"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var string Direcccion completa del proyecto
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("http_host"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var string Direcccion completa del proyecto con el protocolo
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("url"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var string Protocolo usado en el sistema http|https
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("request_protocol"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var string Entorno del proyecto
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("environment"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var boolean Si esa en modo debug
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("debug"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var string Directorio de cache
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("cache_dir"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var string Directorio de log
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("log_dir"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var array Array de modulos
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("modules"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var string Juego de caracteres
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("charset"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var array Array de config de catalogos
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("catalog"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var array Array de config de fecha
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("datetime"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var array Array de config de correos
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("mail"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var array Array de config de pdf
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("pdf"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var array Array de config de archivos
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("files"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var array Array de config de seguridad
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("security"), ZEND_ACC_PUBLIC TSRMLS_CC);
	/**
	 * @var DI Contenedor de dependencias
	 */
	zend_declare_property_null(phady_core_parameter_ce, SL("container"), ZEND_ACC_PUBLIC TSRMLS_CC);
	return SUCCESS;
}
/**
 * @param string param Parametro a modificar
 * @param mixed value Valor del parametro
 */
PHP_METHOD(Phady_Core_Parameter, setParameter) {
	int ZEPHIR_LAST_CALL_STATUS;
	zval *param_param = NULL, *value, *_0 = NULL;
	zval *param = NULL;
	ZEPHIR_MM_GROW();
	zephir_fetch_params(1, 2, 0, ¶m_param, &value);
	zephir_get_strval(param, param_param);
	ZEPHIR_CALL_FUNCTION(&_0, "property_exists", NULL, 34, this_ptr, param);
	zephir_check_call_status();
	if (zephir_is_true(_0)) {
		zephir_update_property_zval_zval(this_ptr, param, value TSRMLS_CC);
	}
	ZEPHIR_MM_RESTORE();
}
 
  |