PHP_METHOD(Phalcon_Http_Client_Adapter_Stream, __construct){ zval *uri = NULL, *method = NULL, *upper_method, *header, *stream = NULL, *http, *option, *value; PHALCON_MM_GROW(); phalcon_fetch_params(1, 1, 1, &uri, &method); PHALCON_CALL_SELF(NULL, "setbaseuri", uri); if (method) { PHALCON_INIT_VAR(upper_method); phalcon_fast_strtoupper(upper_method, method); phalcon_update_property_this(this_ptr, SL("_method"), upper_method TSRMLS_CC); } PHALCON_INIT_VAR(header); object_init_ex(header, phalcon_http_client_header_ce); PHALCON_CALL_METHOD(NULL, header, "__construct"); PHALCON_CALL_FUNCTION(&stream, "stream_context_create"); PHALCON_INIT_VAR(http); ZVAL_STRING(http, "http", 1); PHALCON_INIT_VAR(option); ZVAL_STRING(option, "user_agent", 1); PHALCON_INIT_VAR(value); ZVAL_STRING(value, "Phalcon HTTP Client(Stream)", 1); PHALCON_CALL_METHOD(NULL, header, "set", option, value); phalcon_update_property_this(this_ptr, SL("_header"), header TSRMLS_CC); PHALCON_INIT_NVAR(option); ZVAL_STRING(option, "follow_location", 1); PHALCON_INIT_NVAR(value); ZVAL_LONG(value, 1); PHALCON_CALL_FUNCTION(NULL, "stream_context_set_option", stream, http, option, value); PHALCON_INIT_NVAR(option); ZVAL_STRING(option, "max_redirects", 1); PHALCON_INIT_NVAR(value); ZVAL_LONG(value, 20); PHALCON_CALL_FUNCTION(NULL, "stream_context_set_option", stream, http, option, value); phalcon_update_property_this(this_ptr, SL("_stream"), stream TSRMLS_CC); PHALCON_MM_RESTORE(); }
/** * Uppercases a string, this function makes use of the mbstring extension if available * * @param string $str * @return string */ PHP_METHOD(Phalcon_Text, upper){ zval *str; phalcon_fetch_params(0, 1, 0, &str); /** * 'upper' checks for the mbstring extension to make a correct lowercase * transformation */ if (phalcon_function_exists_ex(SS("mb_strtoupper") TSRMLS_CC) == SUCCESS) { PHALCON_MM_GROW(); PHALCON_RETURN_CALL_FUNCTION("mb_strtoupper", str); RETURN_MM(); } phalcon_fast_strtoupper(return_value, str); }
PHP_METHOD(Phalcon_Http_Client_Adapter_Curl, __construct){ zval *uri = NULL, *method = NULL, *upper_method, *header, *curl = NULL, *options, *constant; PHALCON_MM_GROW(); phalcon_fetch_params(1, 0, 2, &uri, &method); if (uri) { PHALCON_CALL_SELF(NULL, "setbaseuri", uri); } if (method) { PHALCON_INIT_VAR(upper_method); phalcon_fast_strtoupper(upper_method, method); phalcon_update_property_this(this_ptr, SL("_method"), upper_method TSRMLS_CC); } PHALCON_INIT_VAR(header); object_init_ex(header, phalcon_http_client_header_ce); PHALCON_CALL_METHOD(NULL, header, "__construct"); phalcon_update_property_this(this_ptr, SL("_header"), header TSRMLS_CC); PHALCON_CALL_FUNCTION(&curl, "curl_init"); PHALCON_INIT_VAR(options); array_init(options); PHALCON_INIT_VAR(constant); if (zend_get_constant(SL("CURLOPT_RETURNTRANSFER"), constant TSRMLS_CC)) { phalcon_array_update_zval_bool(&options, constant, 1, PH_COPY); } PHALCON_INIT_NVAR(constant); if (zend_get_constant(SL("CURLOPT_AUTOREFERER"), constant TSRMLS_CC)) { phalcon_array_update_zval_bool(&options, constant, 1, PH_COPY); } PHALCON_INIT_NVAR(constant); if (zend_get_constant(SL("CURLOPT_FOLLOWLOCATION"), constant TSRMLS_CC)) { phalcon_array_update_zval_bool(&options, constant, 1, PH_COPY); } PHALCON_INIT_NVAR(constant); if (zend_get_constant(SL("CURLOPT_MAXREDIRS"), constant TSRMLS_CC)) { phalcon_array_update_zval_long(&options, constant, 20, PH_COPY); } PHALCON_INIT_NVAR(constant); if (zend_get_constant(SL("CURLOPT_HEADER"), constant TSRMLS_CC)) { phalcon_array_update_zval_bool(&options, constant, 1, PH_COPY); } PHALCON_INIT_NVAR(constant); if (zend_get_constant(SL("CURLOPT_USERAGENT"), constant TSRMLS_CC)) { phalcon_array_update_zval_string(&options, constant, SL("Phalcon HTTP Client(Curl)"), PH_COPY); } PHALCON_CALL_FUNCTION(NULL, "curl_setopt_array", curl, options); phalcon_update_property_this(this_ptr, SL("_curl"), curl TSRMLS_CC); PHALCON_MM_RESTORE(); }