/** * Writes the log to the file itself */ PHP_METHOD(Phalcon_Logger_Adapter_File, logInternal) { zval *context = NULL; int type, time, ZEPHIR_LAST_CALL_STATUS; zval *message_param = NULL, *type_param = NULL, *time_param = NULL, *context_param = NULL, *fileHandler, *_0 = NULL, *_1 = NULL, *_2, *_3; zval *message = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 4, 0, &message_param, &type_param, &time_param, &context_param); zephir_get_strval(message, message_param); type = zephir_get_intval(type_param); time = zephir_get_intval(time_param); zephir_get_arrval(context, context_param); ZEPHIR_OBS_VAR(fileHandler); zephir_read_property_this(&fileHandler, this_ptr, SL("_fileHandler"), PH_NOISY_CC); if (Z_TYPE_P(fileHandler) != IS_RESOURCE) { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_logger_exception_ce, "Cannot send message to the log because it is invalid", "phalcon/logger/adapter/file.zep", 117); return; } ZEPHIR_CALL_METHOD(&_0, this_ptr, "getformatter", NULL, 0); zephir_check_call_status(); ZEPHIR_INIT_VAR(_2); ZVAL_LONG(_2, type); ZEPHIR_INIT_VAR(_3); ZVAL_LONG(_3, time); ZEPHIR_CALL_METHOD(&_1, _0, "format", NULL, 0, message, _2, _3, context); zephir_check_call_status(); zephir_fwrite(NULL, fileHandler, _1 TSRMLS_CC); ZEPHIR_MM_RESTORE(); }
PHP_METHOD(Test_Fcall, testCall3) { int ZEPHIR_LAST_CALL_STATUS; zephir_nts_static zephir_fcall_cache_entry *_2 = NULL, *_3 = NULL; zval *handle = NULL, *handle2 = NULL, *buffer = NULL, _0 = zval_used_for_init, _1 = zval_used_for_init; ZEPHIR_MM_GROW(); ZEPHIR_SINIT_VAR(_0); ZVAL_STRING(&_0, "inputfile.txt", 0); ZEPHIR_SINIT_VAR(_1); ZVAL_STRING(&_1, "r", 0); ZEPHIR_CALL_FUNCTION(&handle, "fopen", &_2, &_0, &_1); zephir_check_call_status(); ZEPHIR_SINIT_NVAR(_0); ZVAL_STRING(&_0, "outputfile.txt", 0); ZEPHIR_SINIT_NVAR(_1); ZVAL_STRING(&_1, "w", 0); ZEPHIR_CALL_FUNCTION(&handle2, "fopen", &_2, &_0, &_1); zephir_check_call_status(); if (zephir_is_true(handle)) { while (1) { ZEPHIR_SINIT_NVAR(_0); ZVAL_LONG(&_0, 4096); ZEPHIR_CALL_FUNCTION(&buffer, "fgets", &_3, handle, &_0); zephir_check_call_status(); if (ZEPHIR_IS_FALSE_IDENTICAL(buffer)) { break; } zephir_fwrite(NULL, handle2, buffer TSRMLS_CC); } zephir_fclose(handle TSRMLS_CC); zephir_fclose(handle2 TSRMLS_CC); } ZEPHIR_MM_RESTORE(); }
PHP_METHOD(Test_Fcall, testCall3) { zend_function *_2 = NULL; zval *handle, *handle2, *buffer = NULL, _0 = zval_used_for_init, _1 = zval_used_for_init; ZEPHIR_MM_GROW(); ZEPHIR_SINIT_VAR(_0); ZVAL_STRING(&_0, "inputfile.txt", 0); ZEPHIR_SINIT_VAR(_1); ZVAL_STRING(&_1, "r", 0); ZEPHIR_INIT_VAR(handle); zephir_call_func_p2(handle, "fopen", &_0, &_1); ZEPHIR_SINIT_NVAR(_0); ZVAL_STRING(&_0, "outputfile.txt", 0); ZEPHIR_SINIT_NVAR(_1); ZVAL_STRING(&_1, "w", 0); ZEPHIR_INIT_VAR(handle2); zephir_call_func_p2(handle2, "fopen", &_0, &_1); if (zephir_is_true(handle)) { while (1) { ZEPHIR_SINIT_NVAR(_0); ZVAL_LONG(&_0, 4096); ZEPHIR_INIT_NVAR(buffer); ZEPHIR_CALL_INTERNAL_FUNCTION(buffer, &buffer, "fgets", &_2, 2, handle, &_0); if (ZEPHIR_IS_FALSE(buffer)) { break; } zephir_fwrite(NULL, handle2, buffer TSRMLS_CC); } zephir_fclose(handle TSRMLS_CC); zephir_fclose(handle2 TSRMLS_CC); } ZEPHIR_MM_RESTORE(); }