本文整理汇总了C++中phalcon_fetch_params函数的典型用法代码示例。如果您正苦于以下问题:C++ phalcon_fetch_params函数的具体用法?C++ phalcon_fetch_params怎么用?C++ phalcon_fetch_params使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了phalcon_fetch_params函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: PHP_METHOD
/**
* Executes the validation
*
* @param Phalcon\Validation $validator
* @param string $attribute
* @return boolean
*/
PHP_METHOD(Phalcon_Validation_Validator_File, validate)
{
zval *validator, *attribute, value = {}, allow_empty = {}, mimes = {}, minsize = {}, maxsize = {}, minwidth = {}, maxwidth = {}, minheight = {}, maxheight = {};
zval valid = {}, type = {}, code = {}, message_str = {}, message = {}, join_mimes = {}, label = {}, pairs = {}, prepared = {};
zend_class_entry *ce = Z_OBJCE_P(getThis());
phalcon_fetch_params(0, 2, 0, &validator, &attribute);
PHALCON_VERIFY_CLASS_EX(validator, phalcon_validation_ce, phalcon_validation_exception_ce, 0);
PHALCON_CALL_METHODW(&value, validator, "getvalue", attribute);
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&allow_empty, ce, getThis(), ISV(allowEmpty)));
if (zend_is_true(&allow_empty) && phalcon_validation_validator_isempty_helper(&value)) {
RETURN_TRUE;
}
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&mimes, ce, getThis(), "mimes"));
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&minsize, ce, getThis(), "minsize"));
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&maxsize, ce, getThis(), "maxsize"));
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&minwidth, ce, getThis(), "minwidth"));
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&maxwidth, ce, getThis(), "maxwidth"));
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&minheight, ce, getThis(), "minheight"));
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&maxheight, ce, getThis(), "maxheight"));
PHALCON_CALL_SELFW(&valid, "valid", &value, &minsize, &maxsize, &mimes, &minwidth, &maxwidth, &minheight, &maxheight);
if (PHALCON_IS_FALSE(&valid)) {
phalcon_return_property(&type, getThis(), SL("_type"));
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&label, ce, getThis(), ISV(label)));
if (!zend_is_true(&label)) {
PHALCON_CALL_METHODW(&label, validator, "getlabel", attribute);
if (!zend_is_true(&label)) {
PHALCON_CPY_WRT_CTOR(&label, attribute);
}
}
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&code, ce, getThis(), ISV(code)));
if (Z_TYPE(code) == IS_NULL) {
ZVAL_LONG(&code, 0);
}
array_init(&pairs);
phalcon_array_update_str(&pairs, SL(":field"), &label, PH_COPY);
if (phalcon_compare_strict_string(&type, SL("TooLarge"))) {
phalcon_array_update_str(&pairs, SL(":max"), &maxsize, PH_COPY);
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&message_str, ce, getThis(), ISV(message)));
if (!zend_is_true(&message_str)) {
RETURN_ON_FAILURE(phalcon_validation_getdefaultmessage_helper(&message_str, Z_OBJCE_P(validator), validator, "FileMaxSize"));
}
PHALCON_CALL_FUNCTIONW(&prepared, "strtr", &message_str, &pairs);
phalcon_validation_message_construct_helper(&message, &prepared, attribute, "TooLarge", &code);
} else if (phalcon_compare_strict_string(&type, SL("TooSmall"))) {
phalcon_array_update_str(&pairs, SL(":min"), &minsize, PH_COPY);
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&message_str, ce, getThis(), ISV(message)));
if (!zend_is_true(&message_str)) {
RETURN_ON_FAILURE(phalcon_validation_getdefaultmessage_helper(&message_str, Z_OBJCE_P(validator), validator, "FileMinSize"));
}
PHALCON_CALL_FUNCTIONW(&prepared, "strtr", &message_str, &pairs);
phalcon_validation_message_construct_helper(&message, &prepared, attribute, "TooSmall", &code);
} else if (phalcon_compare_strict_string(&type, SL("MimeValid"))) {
phalcon_fast_join_str(&join_mimes, SL(", "), &mimes);
phalcon_array_update_str(&pairs, SL(":mimes"), &join_mimes, PH_COPY);
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&message_str, ce, getThis(), ISV(message)));
if (!zend_is_true(&message_str)) {
RETURN_ON_FAILURE(phalcon_validation_getdefaultmessage_helper(&message_str, Z_OBJCE_P(validator), validator, "FileType"));
}
PHALCON_CALL_FUNCTIONW(&prepared, "strtr", &message_str, &pairs);
phalcon_validation_message_construct_helper(&message, &prepared, attribute, "FileType", &code);
} else if (phalcon_compare_strict_string(&type, SL("TooLarge"))) {
phalcon_array_update_str(&pairs, SL(":max"), &maxsize, PH_COPY);
RETURN_ON_FAILURE(phalcon_validation_validator_getoption_helper(&message_str, ce, getThis(), ISV(message)));
if (!zend_is_true(&message_str)) {
RETURN_ON_FAILURE(phalcon_validation_getdefaultmessage_helper(&message_str, Z_OBJCE_P(validator), validator, "FileMaxSize"));
}
PHALCON_CALL_FUNCTIONW(&prepared, "strtr", &message_str, &pairs);
phalcon_validation_message_construct_helper(&message, &prepared, attribute, "TooLarge", &code);
} else if (phalcon_compare_strict_string(&type, SL("TooNarrow"))) {
phalcon_array_update_str(&pairs, SL(":min"), &minwidth, PH_COPY);
//.........这里部分代码省略.........
开发者ID:dreamsxin,项目名称:cphalcon7,代码行数:101,代码来源:file.c
示例2: PHP_METHOD
/**
* Gets the a value to validate in the array/object data source
*
* @param string $attribute
* @return mixed
*/
PHP_METHOD(Phalcon_Validation, getValue){
zval *attribute, *entity, *method, *value = NULL, *data, *values;
zval *filters, *field_filters, *service_name;
zval *dependency_injector = NULL, *filter_service;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 1, 0, &attribute);
PHALCON_OBS_VAR(entity);
phalcon_read_property_this(&entity, this_ptr, SL("_entity"), PH_NOISY_CC);
/**
* If the entity is an object use it to retrieve the values
*/
if (Z_TYPE_P(entity) == IS_OBJECT) {
PHALCON_INIT_VAR(method);
PHALCON_CONCAT_SV(method, "get", attribute);
if (phalcon_method_exists(entity, method TSRMLS_CC) == SUCCESS) {
PHALCON_INIT_VAR(value);
phalcon_call_method_zval(value, entity, method);
} else if (phalcon_method_exists_ex(entity, SS("readattribute") TSRMLS_CC) == SUCCESS) {
PHALCON_INIT_VAR(value);
phalcon_call_method_p1(value, entity, "readattribute", attribute);
} else if (phalcon_isset_property_zval(entity, attribute TSRMLS_CC)) {
PHALCON_OBS_VAR(value);
phalcon_read_property_zval(&value, entity, attribute, PH_NOISY_CC);
} else {
PHALCON_INIT_VAR(value);
}
RETURN_CCTOR(value);
}
PHALCON_OBS_VAR(data);
phalcon_read_property_this(&data, this_ptr, SL("_data"), PH_NOISY_CC);
if (Z_TYPE_P(data) != IS_ARRAY) {
if (Z_TYPE_P(data) != IS_OBJECT) {
PHALCON_THROW_EXCEPTION_STR(phalcon_validation_exception_ce, "There is no data to validate");
return;
}
}
/**
* Check if there is a calculated value
*/
PHALCON_OBS_VAR(values);
phalcon_read_property_this(&values, this_ptr, SL("_values"), PH_NOISY_CC);
if (phalcon_array_isset(values, attribute)) {
PHALCON_OBS_NVAR(value);
phalcon_array_fetch(&value, values, attribute, PH_NOISY);
RETURN_CCTOR(value);
}
PHALCON_INIT_NVAR(value);
if (Z_TYPE_P(data) == IS_ARRAY) {
if (phalcon_array_isset(data, attribute)) {
PHALCON_OBS_NVAR(value);
phalcon_array_fetch(&value, data, attribute, PH_NOISY);
}
} else {
if (Z_TYPE_P(data) == IS_OBJECT) {
if (phalcon_isset_property_zval(data, attribute TSRMLS_CC)) {
PHALCON_OBS_NVAR(value);
phalcon_read_property_zval(&value, data, attribute, PH_NOISY_CC);
}
}
}
if (Z_TYPE_P(value) != IS_NULL) {
PHALCON_OBS_VAR(filters);
phalcon_read_property_this(&filters, this_ptr, SL("_filters"), PH_NOISY_CC);
if (Z_TYPE_P(filters) == IS_ARRAY) {
if (phalcon_array_isset(filters, attribute)) {
PHALCON_OBS_VAR(field_filters);
phalcon_array_fetch(&field_filters, filters, attribute, PH_NOISY);
if (zend_is_true(field_filters)) {
PHALCON_INIT_VAR(service_name);
ZVAL_STRING(service_name, "filter", 1);
PHALCON_INIT_VAR(dependency_injector);
phalcon_call_method(dependency_injector, this_ptr, "getdi");
if (Z_TYPE_P(dependency_injector) != IS_OBJECT) {
PHALCON_INIT_NVAR(dependency_injector);
PHALCON_CALL_STATIC(dependency_injector, "phalcon\\di", "getdefault");
if (Z_TYPE_P(dependency_injector) != IS_OBJECT) {
//.........这里部分代码省略.........
开发者ID:CreativeOutbreak,项目名称:cphalcon,代码行数:101,代码来源:validation.c
示例3: PHP_METHOD
/**
* Checks if a role has access to a resource
*
* @param string $roleName
* @param string $resourceName
* @param string $access
* @param string $action
*/
PHP_METHOD(Phalcon_Acl_Adapter_Memory, _allowOrDeny){
zval *role_name, *resource_name, *access, *action;
zval *roles_names, *exception_message = NULL, *resources_names;
zval *default_access, *access_list, *internal_access;
zval *access_name = NULL, *access_key = NULL, *access_key_all = NULL;
HashTable *ah0, *ah1;
HashPosition hp0, hp1;
zval **hd;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 4, 0, &role_name, &resource_name, &access, &action);
PHALCON_OBS_VAR(roles_names);
phalcon_read_property_this(&roles_names, this_ptr, SL("_rolesNames"), PH_NOISY_CC);
if (!phalcon_array_isset(roles_names, role_name)) {
PHALCON_INIT_VAR(exception_message);
PHALCON_CONCAT_SVS(exception_message, "Role \"", role_name, "\" does not exist in ACL");
PHALCON_THROW_EXCEPTION_ZVAL(phalcon_acl_exception_ce, exception_message);
return;
}
PHALCON_OBS_VAR(resources_names);
phalcon_read_property_this(&resources_names, this_ptr, SL("_resourcesNames"), PH_NOISY_CC);
if (!phalcon_array_isset(resources_names, resource_name)) {
PHALCON_INIT_NVAR(exception_message);
PHALCON_CONCAT_SVS(exception_message, "Resource \"", resource_name, "\" does not exist in ACL");
PHALCON_THROW_EXCEPTION_ZVAL(phalcon_acl_exception_ce, exception_message);
return;
}
PHALCON_OBS_VAR(default_access);
phalcon_read_property_this(&default_access, this_ptr, SL("_defaultAccess"), PH_NOISY_CC);
PHALCON_OBS_VAR(access_list);
phalcon_read_property_this(&access_list, this_ptr, SL("_accessList"), PH_NOISY_CC);
PHALCON_OBS_VAR(internal_access);
phalcon_read_property_this(&internal_access, this_ptr, SL("_access"), PH_NOISY_CC);
if (Z_TYPE_P(access) == IS_ARRAY) {
phalcon_is_iterable(access, &ah0, &hp0, 0, 0);
while (zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) == SUCCESS) {
PHALCON_GET_HVALUE(access_name);
PHALCON_INIT_NVAR(access_key);
PHALCON_CONCAT_VSV(access_key, resource_name, "!", access_name);
if (!phalcon_array_isset(access_list, access_key)) {
PHALCON_INIT_NVAR(exception_message);
PHALCON_CONCAT_SVSVS(exception_message, "Acccess '", access_name, "' does not exist in resource '", resource_name, "'");
PHALCON_THROW_EXCEPTION_ZVAL(phalcon_acl_exception_ce, exception_message);
return;
}
zend_hash_move_forward_ex(ah0, &hp0);
}
phalcon_is_iterable(access, &ah1, &hp1, 0, 0);
while (zend_hash_get_current_data_ex(ah1, (void**) &hd, &hp1) == SUCCESS) {
PHALCON_GET_HVALUE(access_name);
PHALCON_INIT_NVAR(access_key);
PHALCON_CONCAT_VSVSV(access_key, role_name, "!", resource_name, "!", access_name);
phalcon_update_property_array(this_ptr, SL("_access"), access_key, action TSRMLS_CC);
if (!PHALCON_IS_STRING(access_name, "*")) {
PHALCON_INIT_NVAR(access_key_all);
PHALCON_CONCAT_VSVS(access_key_all, role_name, "!", resource_name, "!*");
if (!phalcon_array_isset(internal_access, access_key_all)) {
phalcon_update_property_array(this_ptr, SL("_access"), access_key_all, default_access TSRMLS_CC);
}
}
zend_hash_move_forward_ex(ah1, &hp1);
}
} else {
if (!PHALCON_IS_STRING(access, "*")) {
PHALCON_INIT_NVAR(access_key);
PHALCON_CONCAT_VSV(access_key, resource_name, "!", access);
if (!phalcon_array_isset(access_list, access_key)) {
PHALCON_INIT_NVAR(exception_message);
PHALCON_CONCAT_SVSVS(exception_message, "Acccess '", access, "' does not exist in resource '", resource_name, "'");
PHALCON_THROW_EXCEPTION_ZVAL(phalcon_acl_exception_ce, exception_message);
return;
}
//.........这里部分代码省略.........
开发者ID:RSivakov,项目名称:cphalcon,代码行数:101,代码来源:memory.c
示例4: PHP_METHOD
/**
* Create/Returns a new transaction or an existing one
*
* @param boolean $autoBegin
* @return Phalcon\Mvc\Model\TransactionInterface
*/
PHP_METHOD(Phalcon_Mvc_Model_Transaction_Manager, getOrCreateTransaction){
zval *auto_begin = NULL, *dependency_injector, *number;
zval *transactions, *transaction = NULL, *false_value = NULL;
zval *service;
HashTable *ah0;
HashPosition hp0;
zval **hd;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 0, 1, &auto_begin);
if (!auto_begin) {
PHALCON_INIT_VAR(auto_begin);
ZVAL_BOOL(auto_begin, 1);
}
PHALCON_OBS_VAR(dependency_injector);
phalcon_read_property_this(&dependency_injector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC);
if (Z_TYPE_P(dependency_injector) != IS_OBJECT) {
PHALCON_THROW_EXCEPTION_STR(phalcon_mvc_model_transaction_exception_ce, "A dependency injector container is required to obtain the services related to the ORM");
return;
}
PHALCON_OBS_VAR(number);
phalcon_read_property_this(&number, this_ptr, SL("_number"), PH_NOISY_CC);
if (zend_is_true(number)) {
PHALCON_OBS_VAR(transactions);
phalcon_read_property_this(&transactions, this_ptr, SL("_transactions"), PH_NOISY_CC);
if (Z_TYPE_P(transactions) == IS_ARRAY) {
phalcon_is_iterable(transactions, &ah0, &hp0, 0, 1);
while (zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) == SUCCESS) {
PHALCON_GET_HVALUE(transaction);
if (Z_TYPE_P(transaction) == IS_OBJECT) {
PHALCON_INIT_NVAR(false_value);
ZVAL_BOOL(false_value, 0);
phalcon_call_method_p1_noret(transaction, "setisnewtransaction", false_value);
RETURN_CCTOR(transaction);
}
zend_hash_move_backwards_ex(ah0, &hp0);
}
}
}
PHALCON_OBS_VAR(service);
phalcon_read_property_this(&service, this_ptr, SL("_service"), PH_NOISY_CC);
PHALCON_INIT_VAR(transaction);
object_init_ex(transaction, phalcon_mvc_model_transaction_ce);
phalcon_call_method_p3_noret(transaction, "__construct", dependency_injector, auto_begin, service);
phalcon_call_method_p1_noret(transaction, "settransactionmanager", this_ptr);
phalcon_update_property_array_append(this_ptr, SL("_transactions"), transaction TSRMLS_CC);
phalcon_property_incr(this_ptr, SL("_number") TSRMLS_CC);
RETURN_CTOR(transaction);
}
开发者ID:CreativeOutbreak,项目名称:cphalcon,代码行数:71,代码来源:manager.c
示例5: PHP_METHOD
/**
* Gets the type of PHQL queries
*
*
* @return int
*/
PHP_METHOD(Phalcon_Mvc_Model_Query_Builder_Where, setConditions){
zval *conditions, *bind_params = NULL, *bind_types = NULL, *type = NULL, merge = {}, merged_conditions = {}, merged_bind_params = {}, merged_bind_types;
zval joind_condition = {}, *single_condition_array = NULL, current_conditions = {}, new_conditions = {};
zend_string *str_key;
ulong idx;
phalcon_fetch_params(0, 1, 3, &conditions, &bind_params, &bind_types, &type);
if (!bind_params) {
bind_params = &PHALCON_GLOBAL(z_null);
}
if (!bind_types) {
bind_types = &PHALCON_GLOBAL(z_null);
}
if (!type) {
type = &PHALCON_GLOBAL(z_null);
}
ZVAL_BOOL(&merge, Z_TYPE_P(type) != IS_NULL ? 1 : 0);
if (Z_TYPE_P(conditions) == IS_ARRAY) {
/* ----------- INITIALIZING LOOP VARIABLES ----------- */
/*
* array containing single condition for example:
* array(
* array(
* 'status = :status:',
* array('status' => 5),
* array('status' => PDO::PARAM_INT),
* ),
* 'name' => 'Dreamsxin',
* )
*/
array_init(&merged_conditions);
array_init(&merged_bind_params);
array_init(&merged_bind_types);
ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(conditions), idx, str_key, single_condition_array) {
zval single_condition_key = {}, condition_string = {}, tmp_bind_params = {}, tmp_bind_types = {};
if (str_key) {
ZVAL_STR(&single_condition_key, str_key);
} else {
ZVAL_LONG(&single_condition_key, idx);
}
if (Z_TYPE_P(single_condition_array) == IS_ARRAY
&& phalcon_array_isset_fetch_long(&condition_string, single_condition_array, 0)
&& phalcon_array_isset_fetch_long(&tmp_bind_params, single_condition_array, 1)
&& Z_TYPE(condition_string) == IS_STRING
&& Z_TYPE(tmp_bind_params) == IS_ARRAY
) {
phalcon_array_update_zval(&merged_conditions, &condition_string, &condition_string, PH_COPY);
phalcon_array_merge_recursive_n(&merged_bind_params, &tmp_bind_params);
if (phalcon_array_isset_fetch_long(&tmp_bind_types, single_condition_array, 2) && Z_TYPE(tmp_bind_types) == IS_ARRAY) {
phalcon_array_merge_recursive_n(&merged_bind_types, &tmp_bind_types);
}
} else if (Z_TYPE(single_condition_key) == IS_STRING) {
PHALCON_CONCAT_VSVS(&condition_string, &single_condition_key, " = :", &single_condition_key, ":");
phalcon_array_update_zval(&merged_conditions, &single_condition_key, &condition_string, PH_COPY);
if (Z_TYPE_P(single_condition_array) == IS_ARRAY) {
phalcon_array_merge_recursive_n(&merged_bind_params, single_condition_array);
} else {
phalcon_array_update_zval(&merged_bind_params, &single_condition_key, single_condition_array, PH_COPY);
}
}
} ZEND_HASH_FOREACH_END();
开发者ID:dreamsxin,项目名称:cphalcon7,代码行数:78,代码来源:where.c
示例6: PHP_METHOD
/**
* Magic method to get or set services using setters/getters
*
* @param string $method
* @param array $arguments
* @return mixed
*/
PHP_METHOD(Phalcon_DI, __call){
zval *method, *arguments = NULL, *services, *service_name = NULL;
zval *possible_service = NULL, *instance = NULL, *handler;
zval *exception_message;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 1, 1, &method, &arguments);
if (!arguments) {
PHALCON_INIT_VAR(arguments);
}
/**
* If the magic method starts with 'get' we try to get a service with that name
*/
if (phalcon_start_with_str(method, SL("get"))) {
PHALCON_OBS_VAR(services);
phalcon_read_property_this(&services, this_ptr, SL("_services"), PH_NOISY_CC);
PHALCON_INIT_VAR(service_name);
phalcon_substr(service_name, method, 3, 0 TSRMLS_CC);
PHALCON_INIT_VAR(possible_service);
PHALCON_CALL_FUNC_PARAMS_1(possible_service, "lcfirst", service_name);
if (phalcon_array_isset(services, possible_service)) {
if (phalcon_fast_count_ev(arguments TSRMLS_CC)) {
PHALCON_INIT_VAR(instance);
PHALCON_CALL_METHOD_PARAMS_2(instance, this_ptr, "get", possible_service, arguments);
} else {
PHALCON_INIT_NVAR(instance);
PHALCON_CALL_METHOD_PARAMS_1(instance, this_ptr, "get", possible_service);
}
RETURN_CCTOR(instance);
}
}
/**
* If the magic method starts with 'set' we try to set a service using that name
*/
if (phalcon_start_with_str(method, SL("set"))) {
if (phalcon_array_isset_long(arguments, 0)) {
PHALCON_INIT_NVAR(service_name);
phalcon_substr(service_name, method, 3, 0 TSRMLS_CC);
PHALCON_INIT_NVAR(possible_service);
PHALCON_CALL_FUNC_PARAMS_1(possible_service, "lcfirst", service_name);
PHALCON_OBS_VAR(handler);
phalcon_array_fetch_long(&handler, arguments, 0, PH_NOISY_CC);
PHALCON_CALL_METHOD_PARAMS_2_NORETURN(this_ptr, "set", possible_service, handler);
RETURN_MM_NULL();
}
}
/**
* The method doesn't start with set/get throw an exception
*/
PHALCON_INIT_VAR(exception_message);
PHALCON_CONCAT_SVS(exception_message, "Call to undefined method or service '", method, "'");
PHALCON_THROW_EXCEPTION_ZVAL(phalcon_di_exception_ce, exception_message);
return;
}
开发者ID:101010111100,项目名称:cphalcon,代码行数:73,代码来源:di.c
示例7: PHP_METHOD
/**
* Executes the validation
*
* @param Phalcon\Validation $validator
* @param string $attribute
* @return boolean
*/
PHP_METHOD(Phalcon_Validation_Validator_StringLength, validate){
zval *validator, *attribute, *value = NULL, *allow_empty;
zval *valid = NULL, *type, *maximum, *minimum, *label;
zval *code, *pairs, *message_str = NULL, *prepared = NULL, *message;
zend_class_entry *ce = Z_OBJCE_P(getThis());
PHALCON_MM_GROW();
phalcon_fetch_params(1, 2, 0, &validator, &attribute);
PHALCON_VERIFY_CLASS_EX(validator, phalcon_validation_ce, phalcon_validation_exception_ce, 1);
PHALCON_CALL_METHOD(&value, validator, "getvalue", attribute);
PHALCON_OBS_VAR(allow_empty);
RETURN_MM_ON_FAILURE(phalcon_validation_validator_getoption_helper(ce, &allow_empty, getThis(), ISV(allowEmpty)));
if (zend_is_true(allow_empty) && phalcon_validation_validator_isempty_helper(value)) {
RETURN_MM_TRUE;
}
PHALCON_OBS_VAR(maximum);
RETURN_MM_ON_FAILURE(phalcon_validation_validator_getoption_helper(ce, &maximum, getThis(), "max"));
PHALCON_OBS_VAR(minimum);
RETURN_MM_ON_FAILURE(phalcon_validation_validator_getoption_helper(ce, &minimum, getThis(), "min"));
PHALCON_CALL_SELF(&valid, "valid", value, minimum, maximum);
if (PHALCON_IS_FALSE(valid)) {
type = phalcon_read_property(getThis(), SL("_type"), PH_NOISY);
PHALCON_OBS_VAR(label);
RETURN_MM_ON_FAILURE(phalcon_validation_validator_getoption_helper(ce, &label, getThis(), ISV(label)));
if (!zend_is_true(label)) {
PHALCON_CALL_METHOD(&label, validator, "getlabel", attribute);
if (!zend_is_true(label)) {
PHALCON_CPY_WRT(label, attribute);
}
}
PHALCON_OBS_VAR(code);
RETURN_MM_ON_FAILURE(phalcon_validation_validator_getoption_helper(ce, &code, getThis(), ISV(code)));
if (Z_TYPE_P(code) == IS_NULL) {
ZVAL_LONG(code, 0);
}
if (phalcon_compare_strict_string(type, SL("TooLong"))) {
PHALCON_ALLOC_INIT_ZVAL(pairs);
array_init_size(pairs, 2);
Z_TRY_ADDREF_P(label); add_assoc_zval_ex(pairs, SL(":field"), label);
Z_TRY_ADDREF_P(maximum); add_assoc_zval_ex(pairs, SL(":max"), maximum);
PHALCON_OBS_VAR(message_str);
RETURN_MM_ON_FAILURE(phalcon_validation_validator_getoption_helper(ce, &message_str, getThis(), "messageMaximum"));
if (!zend_is_true(message_str)) {
PHALCON_OBSERVE_OR_NULLIFY_VAR(message_str);
RETURN_MM_ON_FAILURE(phalcon_validation_getdefaultmessage_helper(Z_OBJCE_P(validator), message_str, validator, "TooLong"));
}
PHALCON_CALL_FUNCTION(&prepared, "strtr", message_str, pairs);
message = phalcon_validation_message_construct_helper(prepared, attribute, "TooLong", code);
} else {
PHALCON_ALLOC_INIT_ZVAL(pairs);
array_init_size(pairs, 2);
Z_TRY_ADDREF_P(label); add_assoc_zval_ex(pairs, SL(":field"), label);
Z_TRY_ADDREF_P(minimum); add_assoc_zval_ex(pairs, SL(":min"), minimum);
PHALCON_OBS_VAR(message_str);
RETURN_MM_ON_FAILURE(phalcon_validation_validator_getoption_helper(ce, &message_str, getThis(), "messageMinimum"));
if (!zend_is_true(message_str)) {
PHALCON_OBSERVE_OR_NULLIFY_VAR(message_str);
RETURN_MM_ON_FAILURE(phalcon_validation_getdefaultmessage_helper(Z_OBJCE_P(validator), message_str, validator, "TooShort"));
}
PHALCON_CALL_FUNCTION(&prepared, "strtr", message_str, pairs);
message = phalcon_validation_message_construct_helper(prepared, attribute, "TooShort", code);
}
Z_TRY_DELREF_P(message);
PHALCON_CALL_METHOD(NULL, validator, "appendmessage", message);
RETURN_MM_FALSE;
}
RETURN_MM_TRUE;
}
开发者ID:Myleft,项目名称:cphalcon7,代码行数:96,代码来源:stringlength.c
示例8: PHP_METHOD
/**
* Prepare an HTML string of information about a single variable.
*/
PHP_METHOD(Phalcon_Debug_Dump, output){
zval *variable, *name = NULL, *tab = NULL, *space, *tmp = NULL, *new_tab = NULL;
zval *output = NULL, *str = NULL, *type = NULL, *style = NULL, *count = NULL, *key = NULL, *value = NULL, *replace_pairs = NULL;
zval *class_name = NULL, *objects, *detailed = NULL, *properties = NULL, *methods = NULL, *method = NULL;
HashTable *ah0;
HashPosition hp0;
zval **hd;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 1, 2, &variable, &name, &tab);
if (!name) {
name = PHALCON_GLOBAL(z_null);
} else if (!PHALCON_IS_EMPTY(name)) {
PHALCON_CONCAT_SVS(return_value, "var ", name, " ");
}
if (!tab) {
tab = PHALCON_GLOBAL(z_one);
}
PHALCON_INIT_VAR(space);
ZVAL_STRING(space, " ", 1);
if (Z_TYPE_P(variable) == IS_ARRAY) {
PHALCON_INIT_NVAR(str);
ZVAL_STRING(str, "<b style =':style'>Array</b> (<span style =':style'>:count</span>) (\n", 1);
PHALCON_INIT_NVAR(type);
ZVAL_STRING(type, "arr", 1);
PHALCON_CALL_SELF(&style, "getstyle", type);
PHALCON_INIT_NVAR(count);
ZVAL_LONG(count, phalcon_fast_count_int(variable TSRMLS_CC));
PHALCON_INIT_NVAR(replace_pairs);
array_init(replace_pairs);
phalcon_array_update_string(&replace_pairs, SL(":style"), style, PH_COPY);
phalcon_array_update_string(&replace_pairs, SL(":count"), count, PH_COPY);
PHALCON_INIT_NVAR(output);
phalcon_strtr_array(output, str, replace_pairs TSRMLS_CC);
phalcon_concat_self(&return_value, output TSRMLS_CC);
phalcon_is_iterable(variable, &ah0, &hp0, 0, 0);
while (zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) == SUCCESS) {
PHALCON_GET_HKEY(key, ah0, hp0);
PHALCON_GET_HVALUE(value);
PHALCON_CALL_FUNCTION(&tmp, "str_repeat", space, tab);
phalcon_concat_self(&return_value, tmp TSRMLS_CC);
PHALCON_INIT_NVAR(str);
ZVAL_STRING(str, "[<span style=':style'>:key</span>] => ", 1);
PHALCON_INIT_NVAR(type);
ZVAL_STRING(type, "arr", 1);
PHALCON_CALL_SELF(&style, "getstyle", type);
PHALCON_INIT_NVAR(replace_pairs);
array_init(replace_pairs);
phalcon_array_update_string(&replace_pairs, SL(":style"), style, PH_COPY);
phalcon_array_update_string(&replace_pairs, SL(":key"), key, PH_COPY);
PHALCON_INIT_NVAR(output);
phalcon_strtr_array(output, str, replace_pairs TSRMLS_CC);
phalcon_concat_self(&return_value, output TSRMLS_CC);
if (PHALCON_IS_LONG(tab, 1) && !PHALCON_IS_EMPTY(name) && !phalcon_is_numeric(key) && PHALCON_IS_IDENTICAL(name, key)) {
zend_hash_move_forward_ex(ah0, &hp0);
continue;
} else {
PHALCON_INIT_NVAR(new_tab);
ZVAL_LONG(new_tab, Z_LVAL_P(tab) + 1);
PHALCON_CALL_SELF(&tmp, "output", value, PHALCON_GLOBAL(z_null), new_tab);
PHALCON_SCONCAT_VS(return_value, tmp, "\n");
}
zend_hash_move_forward_ex(ah0, &hp0);
}
PHALCON_INIT_NVAR(new_tab);
ZVAL_LONG(new_tab, Z_LVAL_P(tab) - 1);
PHALCON_CALL_FUNCTION(&tmp, "str_repeat", space, tab);
//.........这里部分代码省略.........
开发者ID:Myleft,项目名称:cphalcon,代码行数:101,代码来源:dump.c
示例9: PHP_METHOD
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();
}
开发者ID:Myleft,项目名称:cphalcon,代码行数:65,代码来源:curl.c
示例10: PHP_METHOD
/**
* Phalcon\Config\Adapter\Ini constructor
*
* @param string $filePath
*/
PHP_METHOD(Phalcon_Config_Adapter_Ini, __construct){
zval *file_path, *process_sections, *ini_config;
zval *exception_message, *config, *directives = NULL;
zval *section = NULL, *value = NULL, *key = NULL, *directive_parts = NULL;
HashTable *ah0, *ah1;
HashPosition hp0, hp1;
zval **hd;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 1, 0, &file_path);
PHALCON_INIT_VAR(process_sections);
ZVAL_BOOL(process_sections, 1);
/**
* Use the standard parse_ini_file
*/
PHALCON_INIT_VAR(ini_config);
phalcon_call_func_p2(ini_config, "parse_ini_file", file_path, process_sections);
/**
* Check if the file had errors
*/
if (PHALCON_IS_FALSE(ini_config)) {
PHALCON_INIT_VAR(exception_message);
PHALCON_CONCAT_SVS(exception_message, "Configuration file ", file_path, " can't be loaded");
PHALCON_THROW_EXCEPTION_ZVAL(phalcon_config_exception_ce, exception_message);
return;
}
PHALCON_INIT_VAR(config);
array_init(config);
phalcon_is_iterable(ini_config, &ah0, &hp0, 0, 0);
while (zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) == SUCCESS) {
PHALCON_GET_HKEY(section, ah0, hp0);
PHALCON_GET_HVALUE(directives);
if (unlikely(Z_TYPE_P(directives) != IS_ARRAY)) {
Z_ADDREF_P(directives);
if (phalcon_array_update_zval(&config, section, &directives, 0) != SUCCESS) {
Z_DELREF_P(directives);
}
zend_hash_move_forward_ex(ah0, &hp0);
continue;
}
phalcon_is_iterable(directives, &ah1, &hp1, 0, 0);
if (zend_hash_num_elements(ah1) == 0) {
Z_ADDREF_P(directives);
phalcon_array_update_zval(&config, section, &directives, 0);
zend_hash_move_forward_ex(ah0, &hp0);
continue;
}
while (zend_hash_get_current_data_ex(ah1, (void**) &hd, &hp1) == SUCCESS) {
PHALCON_GET_HKEY(key, ah1, hp1);
PHALCON_GET_HVALUE(value);
if (phalcon_memnstr_str(key, SL("."))) {
PHALCON_INIT_NVAR(directive_parts);
phalcon_fast_explode_str(directive_parts, SL("."), key);
phalcon_config_adapter_ini_update_zval_directive(&config, section, directive_parts, &value, 0 TSRMLS_CC);
} else {
phalcon_array_update_multi_2(&config, section, key, &value, 0);
}
zend_hash_move_forward_ex(ah1, &hp1);
}
zend_hash_move_forward_ex(ah0, &hp0);
}
/**
* Calls the Phalcon\Config constructor
*/
PHALCON_CALL_PARENT_PARAMS_1_NORETURN(this_ptr, "Phalcon\\Config\\Adapter\\Ini", "__construct", config);
PHALCON_MM_RESTORE();
}
开发者ID:CreativeOutbreak,项目名称:cphalcon,代码行数:91,代码来源:ini.c
示例11: PHP_METHOD
/**
* Executes the validator
*
* @param Phalcon\Mvc\ModelInterface $record
* @return boolean
*/
PHP_METHOD(Phalcon_Mvc_Model_Validator_Exclusionin, validate){
zval *record, *option = NULL, *field_name, *is_set, *domain;
zval *value, *message = NULL, *joined_domain, *type;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 1, 0, &record);
PHALCON_INIT_VAR(option);
ZVAL_STRING(option, "field", 1);
PHALCON_INIT_VAR(field_name);
phalcon_call_method_p1(field_name, this_ptr, "getoption", option);
if (Z_TYPE_P(field_name) != IS_STRING) {
PHALCON_THROW_EXCEPTION_STR(phalcon_mvc_model_exception_ce, "Field name must be a string");
return;
}
/**
* The 'domain' option must be a valid array of not allowed values
*/
PHALCON_INIT_NVAR(option);
ZVAL_STRING(option, "domain", 1);
PHALCON_INIT_VAR(is_set);
phalcon_call_method_p1(is_set, this_ptr, "issetoption", option);
if (PHALCON_IS_FALSE(is_set)) {
PHALCON_THROW_EXCEPTION_STR(phalcon_mvc_model_exception_ce, "The option 'domain' is required for this validator");
return;
}
PHALCON_INIT_NVAR(option);
ZVAL_STRING(option, "domain", 1);
PHALCON_INIT_VAR(domain);
phalcon_call_method_p1(domain, this_ptr, "getoption", option);
if (Z_TYPE_P(domain) != IS_ARRAY) {
PHALCON_THROW_EXCEPTION_STR(phalcon_mvc_model_exception_ce, "Option 'domain' must be an array");
return;
}
PHALCON_INIT_VAR(value);
phalcon_call_method_p1(value, record, "readattribute", field_name);
/**
* We check if the value contained in the array using "in_array" from the PHP
* userland
*/
if (phalcon_fast_in_array(value, domain TSRMLS_CC)) {
/**
* Check if the developer has defined a custom message
*/
PHALCON_INIT_NVAR(option);
ZVAL_STRING(option, "message", 1);
PHALCON_INIT_VAR(message);
phalcon_call_method_p1(message, this_ptr, "getoption", option);
if (!zend_is_true(message)) {
PHALCON_INIT_VAR(joined_domain);
phalcon_fast_join_str(joined_domain, SL(", "), domain TSRMLS_CC);
PHALCON_INIT_NVAR(message);
PHALCON_CONCAT_SVSV(message, "Value of field '", field_name, "' must not be part of list: ", joined_domain);
}
PHALCON_INIT_VAR(type);
ZVAL_STRING(type, "Exclusion", 1);
phalcon_call_method_p3_noret(this_ptr, "appendmessage", message, field_name, type);
RETURN_MM_FALSE;
}
RETURN_MM_TRUE;
}
开发者ID:11mariom,项目名称:cphalcon,代码行数:81,代码来源:exclusionin.c
示例12: PHP_METHOD
/**
* Magic method __get
*
* @param string $propertyName
*/
PHP_METHOD(Phalcon_DI_Injectable, __get){
zval *property_name, *dependency_injector = NULL;
zval *has_service, *service = NULL, *class_name, *arguments;
zval *persistent;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 1, 0, &property_name);
PHALCON_OBS_VAR(dependency_injector);
phalcon_read_property_this(&dependency_injector, this_ptr, SL("_dependencyInjector"), PH_NOISY_CC);
if (Z_TYPE_P(dependency_injector) != IS_OBJECT) {
PHALCON_INIT_NVAR(dependency_injector);
PHALCON_CALL_STATIC(dependency_injector, "phalcon\\di", "getdefault");
if (Z_TYPE_P(dependency_injector) != IS_OBJECT) {
PHALCON_THROW_EXCEPTION_STR(phalcon_di_exception_ce, "A dependency injection object is required to access the application services");
return;
}
}
/**
* Fallback to the PHP userland if the cache is not available
*/
PHALCON_INIT_VAR(has_service);
phalcon_call_method_p1(has_service, dependency_injector, "has", property_name);
if (zend_is_true(has_service)) {
PHALCON_INIT_VAR(service);
phalcon_call_method_p1(service, dependency_injector, "getshared", property_name);
phalcon_update_property_zval_zval(this_ptr, property_name, service TSRMLS_CC);
RETURN_CCTOR(service);
}
if (PHALCON_IS_STRING(property_name, "di")) {
phalcon_update_property_this(this_ptr, SL("di"), dependency_injector TSRMLS_CC);
RETURN_CCTOR(dependency_injector);
}
/**
* Accessing the persistent property will create a session bag in any class
*/
if (PHALCON_IS_STRING(property_name, "persistent")) {
PHALCON_INIT_VAR(class_name);
phalcon_get_class(class_name, this_ptr, 0 TSRMLS_CC);
PHALCON_INIT_VAR(arguments);
array_init_size(arguments, 1);
phalcon_array_append(&arguments, class_name, PH_SEPARATE TSRMLS_CC);
PHALCON_INIT_NVAR(service);
ZVAL_STRING(service, "sessionBag", 1);
PHALCON_INIT_VAR(persistent);
phalcon_call_method_p2(persistent, dependency_injector, "get", service, arguments);
phalcon_update_property_this(this_ptr, SL("persistent"), persistent TSRMLS_CC);
RETURN_CCTOR(persistent);
}
/**
* A notice is shown if the property is not defined and isn't a valid service
*/
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Access to undefined property %s", Z_STRVAL_P(property_name));
RETURN_MM_NULL();
}
开发者ID:RSivakov,项目名称:cphalcon,代码行数:72,代码来源:injectable.c
示例13: PHP_METHOD
/**
* Executes the validator
*
* @param Phalcon\Mvc\ModelInterface $record
* @return boolean
*/
PHP_METHOD(Phalcon_Mvc_Model_Validator_Url, validate){
zval *record, *option = NULL, *field = NULL, *value = NULL, *flag, *is_valid = NULL;
zval *message = NULL, *type, *is_set_code = NULL, *code;
zval *allow_empty = NULL;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 1, 0, &record);
PHALCON_INIT_VAR(option);
ZVAL_STRING(option, "field", 1);
PHALCON_CALL_METHOD(&field, this_ptr, "getoption", option);
if (Z_TYPE_P(field) != IS_STRING) {
PHALCON_THROW_EXCEPTION_STR(phalcon_mvc_model_exception_ce, "Field name must be a string");
return;
}
PHALCON_CALL_METHOD(&value, record, "readattribute", field);
/*
* Allow empty
*/
PHALCON_INIT_NVAR(option);
ZVAL_STRING(option, "allowEmpty", 1);
PHALCON_CALL_METHOD(&allow_empty, this_ptr, "getoption", option);
if (allow_empty && zend_is_true(allow_empty) && PHALCON_IS_EMPTY(value)) {
RETURN_MM_TRUE;
}
PHALCON_INIT_VAR(flag);
ZVAL_LONG(flag, 273);
/**
* Filters the format using FILTER_VALIDATE_URL
*/
PHALCON_CALL_FUNCTION(&is_valid, "filter_var", value, flag);
if (!zend_is_true(is_valid)) {
/**
* Check if the developer has defined a custom message
*/
PHALCON_INIT_NVAR(option);
PHALCON_ZVAL_MAYBE_INTERNED_STRING(option, phalcon_interned_message);
PHALCON_CALL_METHOD(&message, this_ptr, "getoption", option);
if (!zend_is_true(message)) {
PHALCON_INIT_NVAR(message);
PHALCON_CONCAT_SVS(message, "'", field, "' does not have a valid url format");
}
PHALCON_INIT_VAR(type);
ZVAL_STRING(type, "Url", 1);
/*
* Is code set
*/
PHALCON_INIT_NVAR(option);
PHALCON_ZVAL_MAYBE_INTERNED_STRING(option, phalcon_interned_code);
PHALCON_CALL_METHOD(&is_set_code, this_ptr, "issetoption", option);
if (zend_is_true(is_set_code)) {
PHALCON_CALL_METHOD(&code, this_ptr, "getoption", option);
} else {
PHALCON_INIT_VAR(code);
ZVAL_LONG(code, 0);
}
PHALCON_CALL_METHOD(NULL, this_ptr, "appendmessage", message, field, type, code);
RETURN_MM_FALSE;
}
RETURN_MM_TRUE;
}
开发者ID:9466,项目名称:cphalcon,代码行数:82,代码来源:url.c
示例14: PHP_METHOD
/**
* Listens for notifications from the models manager
*
* @param string $type
* @param Phalcon\Mvc\ModelInterface $model
*/
PHP_METHOD(Phalcon_Mvc_Model_Behavior_Timestampable, notify){
zval *type, *model, *take_action, *options, *timestamp = NULL;
zval *format, *generator, *field, *single_field = NULL;
HashTable *ah0;
HashPosition hp0;
zval **hd;
PHALCON_MM_GROW();
phalcon_fetch_params(1, 2, 0, &type, &model);
/**
* Check if the developer decided to take action here
*/
PHALCON_INIT_VAR(take_action);
phalcon_call_method_p1(take_action, this_ptr, "musttakeaction", type);
if (PHALCON_IS_NOT_TRUE(take_action)) {
RETURN_MM_NULL();
}
PHALCON_INIT_VAR(options);
phalcon_call_method_p1(options, this_ptr, "getoptions", type);
if (Z_TYPE_P(options) == IS_ARRAY) {
/**
* The field name is required in this behavior
*/
if (!phalcon_array_isset_string(options, SS("field"))) {
PHALCON_THROW_EXCEPTION_STR(phalcon_mvc_model_exception_ce, "The option 'field' is required");
return;
}
PHALCON_INIT_VAR(timestamp);
if (phalcon_array_isset_string(options, SS("format"))) {
/**
* Format is a format for date()
*/
PHALCON_OBS_VAR(format);
phalcon_array_fetch_string(&format, options, SL("format"), PH_NOISY_CC);
phalcon_call_func_p1(timestamp, "date", format);
} else {
if (phalcon_array_isset_string(options, SS("generator"))) {
/**
* A generator is a closure that produce the correct timestamp value
*/
PHALCON_OBS_VAR(generator);
phalcon_array_fetch_string(&generator, options, SL("generator"), PH_NOISY_CC);
if (Z_TYPE_P(generator) == IS_OBJECT) {
if (phalcon_is_instance_of(generator, SL("Closure") TSRMLS_CC)) {
PHALCON_INIT_NVAR(timestamp);
PHALCON_CALL_USER_FUNC(timestamp, generator);
}
}
}
}
/**
* Last resort call time()
*/
if (Z_TYPE_P(timestamp) == IS_NULL) {
PHALCON_INIT_NVAR(timestamp);
ZVAL_LONG(timestamp, (long) time(NULL));
}
PHALCON_OBS_VAR(field);
phalcon_array_fetch_string(&field, options, SL("field"), PH_NOISY_CC);
/**
* Assign the value to the field, use writeattribute if the property is protected
*/
if (unlikely(Z_TYPE_P(field) == IS_ARRAY)) {
phalcon_is_iterable(field, &ah0, &hp0, 0, 0);
while (zend_hash_get_current_data_ex(ah0, (void**) &hd, &hp0) == SUCCESS) {
PHALCON_GET_HVALUE(single_field);
phalcon_call_method_p2_noret(model, "writeattribute", single_field, timestamp);
zend_hash_move_forward_ex(ah0, &hp0);
}
} else {
phalcon_call_method_p2_noret(model, "writeattribute", field, timestamp);
}
}
PHALCON_MM_RESTORE();
}
开发者ID:RSivakov,项目名称:cphalcon,代码行数:99,代码来源:timestampable.c
示例15: PHP_METHOD
/**
* Executes the validation
*
* @param Phalcon\Validation $validator
* @param string $attribute
* @return boolean
*/
PHP_METHOD(Phalcon_Validation_Validator_StringLength, validate){
zval *validator, *attribute, *option = NULL, *is_set_min;
zval *is_set_max, *value, *length = NULL, *invalid_maximum = NULL;
zval *invalid_minimum = NULL, *maximum, *message_str = NULL;
zval *type = NULL, *message = NUL
|
请发表评论