/** * Sets a session variable in an application context * *<code> * $session->set('auth', 'yes'); *</code> */ PHP_METHOD(Phalcon_Session_Adapter, set) { int _2, _1$$3; zval *index_param = NULL, *value, *_SESSION, *uniqueId = NULL, *_0$$3; zval *index = NULL; ZEPHIR_MM_GROW(); zephir_get_global(&_SESSION, SS("_SESSION") TSRMLS_CC); zephir_fetch_params(1, 2, 0, &index_param, &value); zephir_get_strval(index, index_param); uniqueId = zephir_fetch_nproperty_this(this_ptr, SL("_uniqueId"), PH_NOISY_CC); if (!(ZEPHIR_IS_EMPTY(uniqueId))) { ZEPHIR_INIT_VAR(_0$$3); ZEPHIR_CONCAT_VSV(_0$$3, uniqueId, "#", index); _1$$3 = zephir_maybe_separate_zval(&_SESSION); zephir_array_update_zval(&_SESSION, _0$$3, &value, PH_COPY | PH_SEPARATE); if (_1$$3) { ZEND_SET_SYMBOL(&EG(symbol_table), "_SESSION", _SESSION); } RETURN_MM_NULL(); } _2 = zephir_maybe_separate_zval(&_SESSION); zephir_array_update_zval(&_SESSION, index, &value, PH_COPY | PH_SEPARATE); if (_2) { ZEND_SET_SYMBOL(&EG(symbol_table), "_SESSION", _SESSION); } ZEPHIR_MM_RESTORE(); }
/** * Allow setting of a session variable. * Throw an exception if the name is not string. * * @param string $name * @param mixed $value * @throws Yaf_Exception * @return void */ PHP_METHOD(Yaf_Session, __set) { int _0; zval *name_param = NULL, *value, *_SESSION; zval *name = NULL; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &name_param, &value); zephir_get_strval(name, name_param); if (Z_TYPE_P(name) == IS_STRING) { zephir_update_property_array(this_ptr, SL("session"), name, value TSRMLS_CC); zephir_get_global(&_SESSION, SS("_SESSION") TSRMLS_CC); _0 = zephir_maybe_separate_zval(&_SESSION); zephir_array_update_zval(&_SESSION, name, &value, PH_COPY | PH_SEPARATE); if (_0) { ZEND_SET_SYMBOL(&EG(symbol_table), "_SESSION", _SESSION); } } else { ZEPHIR_THROW_EXCEPTION_DEBUG_STR(yaf_exception_ce, "Expect a string key name", "yaf/session.zep", 219); return; } ZEPHIR_MM_RESTORE(); }
/** * @link https://github.com/phalcon/zephir/issues/159 */ PHP_METHOD(Test_Assign, testGlobalVarAssign) { int _0; zval *index, *value, *_POST; zephir_fetch_params(0, 2, 0, &index, &value); zephir_get_global(&_POST, SS("_POST") TSRMLS_CC); _0 = zephir_maybe_separate_zval(&_POST); zephir_array_update_zval(&_POST, index, &value, PH_COPY | PH_SEPARATE); if (_0) { ZEND_SET_SYMBOL(&EG(symbol_table), "_POST", _POST); } }
PHP_METHOD(Test_Assign, testArrayVarAssign2) { int _0; zval *index, *value, *_POST; ZEPHIR_MM_GROW(); zephir_fetch_params(1, 2, 0, &index, &value); ZEPHIR_INIT_VAR(_POST); array_init(_POST); _0 = zephir_maybe_separate_zval(&_POST); zephir_array_update_zval(&_POST, index, &value, PH_COPY | PH_SEPARATE); if (_0) { ZEND_SET_SYMBOL(&EG(symbol_table), "_POST", _POST); } RETURN_CCTOR(_POST); }