Hello community,

here is the log from the commit of package php5-ice for openSUSE:Factory 
checked in at 2017-02-19 01:04:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/php5-ice (Old)
 and      /work/SRC/openSUSE:Factory/.php5-ice.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "php5-ice"

Changes:
--------
--- /work/SRC/openSUSE:Factory/php5-ice/php5-ice.changes        2017-02-13 
07:51:11.684466000 +0100
+++ /work/SRC/openSUSE:Factory/.php5-ice.new/php5-ice.changes   2017-02-19 
01:04:36.977370161 +0100
@@ -1,0 +2,12 @@
+Sat Feb 18 18:50:05 UTC 2017 - m...@poczta.onet.pl
+
+- Ice 1.2.8
+ * Facebook, add fields to API call
+
+-------------------------------------------------------------------
+Sat Feb 18 15:05:57 UTC 2017 - m...@poczta.onet.pl
+
+- Ice 1.2.7
+ * Social auth, get scope from options, use static url
+
+-------------------------------------------------------------------

Old:
----
  php5-ice-1.2.6.tar.gz

New:
----
  php5-ice-1.2.8.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ php5-ice.spec ++++++
--- /var/tmp/diff_new_pack.afxAbh/_old  2017-02-19 01:04:37.369315087 +0100
+++ /var/tmp/diff_new_pack.afxAbh/_new  2017-02-19 01:04:37.377313963 +0100
@@ -22,7 +22,7 @@
 %define _name   ice
 
 Name:           %{_php}-%{_name}
-Version:        1.2.6
+Version:        1.2.8
 Release:        0
 Summary:        Simple and fast PHP framework delivered as C-extension
 License:        BSD-3-Clause

++++++ php5-ice-1.2.6.tar.gz -> php5-ice-1.2.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/CHANGELOG.md 
new/framework-1.2.8/CHANGELOG.md
--- old/framework-1.2.6/CHANGELOG.md    2017-02-10 22:28:47.000000000 +0100
+++ new/framework-1.2.8/CHANGELOG.md    2017-02-18 19:55:14.000000000 +0100
@@ -1,4 +1,16 @@
 -------------------------------------------------------------------
+Sat Feb 18 18:50:05 UTC 2017
+
+- Ice 1.2.8
+ * Facebook, add fields to API call
+
+-------------------------------------------------------------------
+Sat Feb 18 15:05:57 UTC 2017
+
+- Ice 1.2.7
+ * Social auth, get scope from options, use static url
+
+-------------------------------------------------------------------
 Fri Feb 10 21:20:56 UTC 2017
 
 - Ice 1.2.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/framework-1.2.6/build/php5/ice/auth/social/adapter.zep.c 
new/framework-1.2.8/build/php5/ice/auth/social/adapter.zep.c
--- old/framework-1.2.6/build/php5/ice/auth/social/adapter.zep.c        
2017-02-10 22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php5/ice/auth/social/adapter.zep.c        
2017-02-18 19:55:14.000000000 +0100
@@ -36,6 +36,8 @@
 
        ZEPHIR_REGISTER_CLASS(Ice\\Auth\\Social, Adapter, ice, 
auth_social_adapter, ice_auth_social_adapter_method_entry, 
ZEND_ACC_EXPLICIT_ABSTRACT_CLASS);
 
+       zend_declare_property_null(ice_auth_social_adapter_ce, SL("options"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
+
        zend_declare_property_null(ice_auth_social_adapter_ce, 
SL("accessToken"), ZEND_ACC_PROTECTED TSRMLS_CC);
 
        zend_declare_property_null(ice_auth_social_adapter_ce, SL("clientId"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
@@ -106,11 +108,11 @@
  */
 PHP_METHOD(Ice_Auth_Social_Adapter, __construct) {
 
-       zval *_15$$8;
-       zend_bool _10, _12, _4$$3;
+       zval *_18$$8;
+       zend_bool _13, _15, _3$$3;
        int ZEPHIR_LAST_CALL_STATUS;
-       zephir_fcall_cache_entry *_1 = NULL;
-       zval *config = NULL, *clientId = NULL, *clientSecret = NULL, 
*redirectUri = NULL, *tmp = NULL, *_9, *_11, *_13, *_0$$3 = NULL, *_2$$3 = 
NULL, *_3$$3 = NULL, *_5$$3 = NULL, *_6$$3, *_7$$4 = NULL, *_8$$4, *_14$$8, 
*_16$$8 = NULL;
+       zephir_fcall_cache_entry *_0 = NULL;
+       zval *config = NULL, *clientId = NULL, *clientSecret = NULL, 
*redirectUri = NULL, *di = NULL, *auth = NULL, *_12, *_14, *_16, *_1$$3 = NULL, 
*_2$$3 = NULL, *_4$$3 = NULL, *_5$$3, *_6$$4 = NULL, *_7$$4, *_8$$7 = NULL, 
*_9$$7 = NULL, *_10$$7 = NULL, *_11$$7 = NULL, *_17$$8, *_19$$8 = NULL;
 
        ZEPHIR_MM_GROW();
        zephir_fetch_params(1, 0, 1, &config);
@@ -123,31 +125,31 @@
        }
 
 
+       ZEPHIR_CALL_CE_STATIC(&di, ice_di_ce, "fetch", &_0, 1);
+       zephir_check_call_status();
        if (!(zephir_fast_count_int(config TSRMLS_CC))) {
-               ZEPHIR_CALL_CE_STATIC(&_0$$3, ice_di_ce, "fetch", &_1, 1);
-               zephir_check_call_status();
-               ZEPHIR_INIT_VAR(_3$$3);
-               ZVAL_STRING(_3$$3, "config", ZEPHIR_TEMP_PARAM_COPY);
-               ZEPHIR_CALL_METHOD(&_2$$3, _0$$3, "get", NULL, 0, _3$$3);
-               zephir_check_temp_parameter(_3$$3);
+               ZEPHIR_INIT_VAR(_2$$3);
+               ZVAL_STRING(_2$$3, "config", ZEPHIR_TEMP_PARAM_COPY);
+               ZEPHIR_CALL_METHOD(&_1$$3, di, "get", NULL, 0, _2$$3);
+               zephir_check_temp_parameter(_2$$3);
                zephir_check_call_status();
-               ZEPHIR_INIT_NVAR(_3$$3);
-               ZVAL_STRING(_3$$3, "auth", ZEPHIR_TEMP_PARAM_COPY);
-               ZEPHIR_CALL_METHOD(&tmp, _2$$3, "get", NULL, 0, _3$$3);
-               zephir_check_temp_parameter(_3$$3);
+               ZEPHIR_INIT_NVAR(_2$$3);
+               ZVAL_STRING(_2$$3, "auth", ZEPHIR_TEMP_PARAM_COPY);
+               ZEPHIR_CALL_METHOD(&auth, _1$$3, "get", NULL, 0, _2$$3);
+               zephir_check_temp_parameter(_2$$3);
                zephir_check_call_status();
-               _4$$3 = zephir_is_true(tmp);
-               if (_4$$3) {
-                       _6$$3 = zephir_fetch_nproperty_this(this_ptr, 
SL("provider"), PH_NOISY_CC);
-                       ZEPHIR_CALL_METHOD(&_5$$3, tmp, "has", NULL, 0, _6$$3);
+               _3$$3 = zephir_is_true(auth);
+               if (_3$$3) {
+                       _5$$3 = zephir_fetch_nproperty_this(this_ptr, 
SL("provider"), PH_NOISY_CC);
+                       ZEPHIR_CALL_METHOD(&_4$$3, auth, "has", NULL, 0, _5$$3);
                        zephir_check_call_status();
-                       _4$$3 = zephir_is_true(_5$$3);
+                       _3$$3 = zephir_is_true(_4$$3);
                }
-               if (_4$$3) {
-                       _8$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("provider"), PH_NOISY_CC);
-                       ZEPHIR_CALL_METHOD(&_7$$4, tmp, "get", NULL, 0, _8$$4);
+               if (_3$$3) {
+                       _7$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("provider"), PH_NOISY_CC);
+                       ZEPHIR_CALL_METHOD(&_6$$4, auth, "get", NULL, 0, _7$$4);
                        zephir_check_call_status();
-                       ZEPHIR_CALL_METHOD(&config, _7$$4, "toarray", NULL, 0);
+                       ZEPHIR_CALL_METHOD(&config, _6$$4, "toarray", NULL, 0);
                        zephir_check_call_status();
                }
        }
@@ -161,42 +163,60 @@
        }
        ZEPHIR_OBS_VAR(redirectUri);
        if (zephir_array_isset_string_fetch(&redirectUri, config, 
SS("redirect_uri"), 0 TSRMLS_CC)) {
-               zephir_update_property_this(this_ptr, SL("redirectUri"), 
redirectUri TSRMLS_CC);
+               ZEPHIR_INIT_VAR(_8$$7);
+               ZEPHIR_INIT_VAR(_10$$7);
+               ZVAL_STRING(_10$$7, "url", ZEPHIR_TEMP_PARAM_COPY);
+               ZEPHIR_CALL_METHOD(&_9$$7, di, "has", NULL, 0, _10$$7);
+               zephir_check_temp_parameter(_10$$7);
+               zephir_check_call_status();
+               if (zephir_is_true(_9$$7)) {
+                       ZEPHIR_INIT_NVAR(_10$$7);
+                       ZVAL_STRING(_10$$7, "url", ZEPHIR_TEMP_PARAM_COPY);
+                       ZEPHIR_CALL_METHOD(&_11$$7, di, "get", NULL, 0, _10$$7);
+                       zephir_check_temp_parameter(_10$$7);
+                       zephir_check_call_status();
+                       ZEPHIR_CALL_METHOD(&_8$$7, _11$$7, "getstatic", NULL, 
0, redirectUri);
+                       zephir_check_call_status();
+               } else {
+                       ZEPHIR_CPY_WRT(_8$$7, redirectUri);
+               }
+               zephir_update_property_this(this_ptr, SL("redirectUri"), _8$$7 
TSRMLS_CC);
        }
-       _9 = zephir_fetch_nproperty_this(this_ptr, SL("clientId"), PH_NOISY_CC);
-       _10 = !zephir_is_true(_9);
-       if (!(_10)) {
-               _11 = zephir_fetch_nproperty_this(this_ptr, SL("clientSecret"), 
PH_NOISY_CC);
-               _10 = !zephir_is_true(_11);
-       }
-       _12 = _10;
-       if (!(_12)) {
-               _13 = zephir_fetch_nproperty_this(this_ptr, SL("redirectUri"), 
PH_NOISY_CC);
-               _12 = !zephir_is_true(_13);
-       }
-       if (_12) {
-               ZEPHIR_INIT_VAR(_14$$8);
-               object_init_ex(_14$$8, ice_exception_ce);
-               ZEPHIR_INIT_VAR(_15$$8);
-               zephir_create_array(_15$$8, 4, 0 TSRMLS_CC);
-               ZEPHIR_INIT_VAR(_16$$8);
-               ZVAL_STRING(_16$$8, "Option `%s`, `%s`, `%s` are required", 1);
-               zephir_array_fast_append(_15$$8, _16$$8);
-               ZEPHIR_INIT_NVAR(_16$$8);
-               ZVAL_STRING(_16$$8, "client_id", 1);
-               zephir_array_fast_append(_15$$8, _16$$8);
-               ZEPHIR_INIT_NVAR(_16$$8);
-               ZVAL_STRING(_16$$8, "client_secret", 1);
-               zephir_array_fast_append(_15$$8, _16$$8);
-               ZEPHIR_INIT_NVAR(_16$$8);
-               ZVAL_STRING(_16$$8, "redirect_uri", 1);
-               zephir_array_fast_append(_15$$8, _16$$8);
-               ZEPHIR_CALL_METHOD(NULL, _14$$8, "__construct", NULL, 13, 
_15$$8);
+       _12 = zephir_fetch_nproperty_this(this_ptr, SL("clientId"), 
PH_NOISY_CC);
+       _13 = !zephir_is_true(_12);
+       if (!(_13)) {
+               _14 = zephir_fetch_nproperty_this(this_ptr, SL("clientSecret"), 
PH_NOISY_CC);
+               _13 = !zephir_is_true(_14);
+       }
+       _15 = _13;
+       if (!(_15)) {
+               _16 = zephir_fetch_nproperty_this(this_ptr, SL("redirectUri"), 
PH_NOISY_CC);
+               _15 = !zephir_is_true(_16);
+       }
+       if (_15) {
+               ZEPHIR_INIT_VAR(_17$$8);
+               object_init_ex(_17$$8, ice_exception_ce);
+               ZEPHIR_INIT_VAR(_18$$8);
+               zephir_create_array(_18$$8, 4, 0 TSRMLS_CC);
+               ZEPHIR_INIT_VAR(_19$$8);
+               ZVAL_STRING(_19$$8, "Option `%s`, `%s`, `%s` are required", 1);
+               zephir_array_fast_append(_18$$8, _19$$8);
+               ZEPHIR_INIT_NVAR(_19$$8);
+               ZVAL_STRING(_19$$8, "client_id", 1);
+               zephir_array_fast_append(_18$$8, _19$$8);
+               ZEPHIR_INIT_NVAR(_19$$8);
+               ZVAL_STRING(_19$$8, "client_secret", 1);
+               zephir_array_fast_append(_18$$8, _19$$8);
+               ZEPHIR_INIT_NVAR(_19$$8);
+               ZVAL_STRING(_19$$8, "redirect_uri", 1);
+               zephir_array_fast_append(_18$$8, _19$$8);
+               ZEPHIR_CALL_METHOD(NULL, _17$$8, "__construct", NULL, 13, 
_18$$8);
                zephir_check_call_status();
-               zephir_throw_exception_debug(_14$$8, 
"ice/auth/social/adapter.zep", 60 TSRMLS_CC);
+               zephir_throw_exception_debug(_17$$8, 
"ice/auth/social/adapter.zep", 63 TSRMLS_CC);
                ZEPHIR_MM_RESTORE();
                return;
        }
+       zephir_update_property_this(this_ptr, SL("options"), config TSRMLS_CC);
        ZEPHIR_MM_RESTORE();
 
 }
@@ -275,7 +295,7 @@
        _0 = zephir_fetch_nproperty_this(this_ptr, SL("socialFieldsMap"), 
PH_NOISY_CC);
        if (zephir_array_isset(_0, key)) {
                _1$$3 = zephir_fetch_nproperty_this(this_ptr, 
SL("socialFieldsMap"), PH_NOISY_CC);
-               zephir_array_fetch(&_2$$3, _1$$3, key, PH_NOISY | PH_READONLY, 
"ice/auth/social/adapter.zep", 97 TSRMLS_CC);
+               zephir_array_fetch(&_2$$3, _1$$3, key, PH_NOISY | PH_READONLY, 
"ice/auth/social/adapter.zep", 102 TSRMLS_CC);
                zephir_get_strval(key, _2$$3);
        }
        _3 = zephir_fetch_nproperty_this(this_ptr, SL("userInfo"), PH_NOISY_CC);
@@ -308,7 +328,7 @@
        _0 = zephir_fetch_nproperty_this(this_ptr, SL("socialFieldsMap"), 
PH_NOISY_CC);
        if (zephir_array_isset(_0, key)) {
                _1$$3 = zephir_fetch_nproperty_this(this_ptr, 
SL("socialFieldsMap"), PH_NOISY_CC);
-               zephir_array_fetch(&_2$$3, _1$$3, key, PH_NOISY | PH_READONLY, 
"ice/auth/social/adapter.zep", 117 TSRMLS_CC);
+               zephir_array_fetch(&_2$$3, _1$$3, key, PH_NOISY | PH_READONLY, 
"ice/auth/social/adapter.zep", 122 TSRMLS_CC);
                zephir_get_strval(key, _2$$3);
        }
        _3 = zephir_fetch_nproperty_this(this_ptr, SL("userInfo"), PH_NOISY_CC);
@@ -334,8 +354,8 @@
 
        ZEPHIR_CALL_METHOD(&config, this_ptr, "prepareauthparams", NULL, 0);
        zephir_check_call_status();
-       zephir_array_fetch_string(&_0, config, SL("auth_url"), PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 138 TSRMLS_CC);
-       zephir_array_fetch_string(&_1, config, SL("auth_params"), PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 138 TSRMLS_CC);
+       zephir_array_fetch_string(&_0, config, SL("auth_url"), PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 143 TSRMLS_CC);
+       zephir_array_fetch_string(&_1, config, SL("auth_params"), PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 143 TSRMLS_CC);
        ZEPHIR_CALL_FUNCTION(&_2, "http_build_query", NULL, 19, _1);
        zephir_check_call_status();
        ZEPHIR_CALL_FUNCTION(&_3, "urldecode", NULL, 20, _2);
@@ -344,6 +364,45 @@
        RETURN_MM();
 
 }
+
+/**
+ * Get option value with key.
+ *
+ * @param string key The option key
+ * @param mixed defaultValue The value to return if option key does not exist
+ * @return mixed
+ */
+PHP_METHOD(Ice_Auth_Social_Adapter, getOption) {
+
+       zval *key_param = NULL, *defaultValue = NULL, *value = NULL, *_0;
+       zval *key = NULL;
+
+       ZEPHIR_MM_GROW();
+       zephir_fetch_params(1, 1, 1, &key_param, &defaultValue);
+
+       if (unlikely(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != 
IS_NULL)) {
+               zephir_throw_exception_string(spl_ce_InvalidArgumentException, 
SL("Parameter 'key' must be a string") TSRMLS_CC);
+               RETURN_MM_NULL();
+       }
+       if (likely(Z_TYPE_P(key_param) == IS_STRING)) {
+               zephir_get_strval(key, key_param);
+       } else {
+               ZEPHIR_INIT_VAR(key);
+               ZVAL_EMPTY_STRING(key);
+       }
+       if (!defaultValue) {
+               defaultValue = ZEPHIR_GLOBAL(global_null);
+       }
+
+
+       _0 = zephir_fetch_nproperty_this(this_ptr, SL("options"), PH_NOISY_CC);
+       if (zephir_array_isset_fetch(&value, _0, key, 1 TSRMLS_CC)) {
+               RETURN_CTOR(value);
+       }
+       RETVAL_ZVAL(defaultValue, 1, 0);
+       RETURN_MM();
+
+}
 
 /**
  * Make curl get/post request and return result.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/framework-1.2.6/build/php5/ice/auth/social/adapter.zep.h 
new/framework-1.2.8/build/php5/ice/auth/social/adapter.zep.h
--- old/framework-1.2.6/build/php5/ice/auth/social/adapter.zep.h        
2017-02-10 22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php5/ice/auth/social/adapter.zep.h        
2017-02-18 19:55:14.000000000 +0100
@@ -12,6 +12,7 @@
 PHP_METHOD(Ice_Auth_Social_Adapter, has);
 PHP_METHOD(Ice_Auth_Social_Adapter, get);
 PHP_METHOD(Ice_Auth_Social_Adapter, getAuthUrl);
+PHP_METHOD(Ice_Auth_Social_Adapter, getOption);
 PHP_METHOD(Ice_Auth_Social_Adapter, call);
 zend_object_value 
zephir_init_properties_Ice_Auth_Social_Adapter(zend_class_entry *class_type 
TSRMLS_DC);
 
@@ -37,6 +38,11 @@
        ZEND_ARG_INFO(0, defaultValue)
 ZEND_END_ARG_INFO()
 
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ice_auth_social_adapter_getoption, 0, 0, 1)
+       ZEND_ARG_INFO(0, key)
+       ZEND_ARG_INFO(0, defaultValue)
+ZEND_END_ARG_INFO()
+
 ZEND_BEGIN_ARG_INFO_EX(arginfo_ice_auth_social_adapter_call, 0, 0, 2)
        ZEND_ARG_INFO(0, method)
        ZEND_ARG_INFO(0, url)
@@ -54,6 +60,7 @@
        PHP_ME(Ice_Auth_Social_Adapter, has, 
arginfo_ice_auth_social_adapter_has, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Auth_Social_Adapter, get, 
arginfo_ice_auth_social_adapter_get, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Auth_Social_Adapter, getAuthUrl, NULL, ZEND_ACC_PUBLIC)
+       PHP_ME(Ice_Auth_Social_Adapter, getOption, 
arginfo_ice_auth_social_adapter_getoption, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Auth_Social_Adapter, call, 
arginfo_ice_auth_social_adapter_call, ZEND_ACC_PROTECTED)
        PHP_FE_END
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/framework-1.2.6/build/php5/ice/auth/social/facebook.zep.c 
new/framework-1.2.8/build/php5/ice/auth/social/facebook.zep.c
--- old/framework-1.2.6/build/php5/ice/auth/social/facebook.zep.c       
2017-02-10 22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php5/ice/auth/social/facebook.zep.c       
2017-02-18 19:55:14.000000000 +0100
@@ -115,7 +115,7 @@
 
        zend_bool result = 0, _6$$4;
        int ZEPHIR_LAST_CALL_STATUS;
-       zval *_GET, *params = NULL, *tokenInfo = NULL, *userInfo = NULL, *_0$$3 
= NULL, *_1$$3, *_8$$3, *_2$$4 = NULL, *_3$$4, *_4$$4, *_5$$4, *_7$$5, *_9$$6, 
*_10$$6, *_11$$6;
+       zval *_GET, *params = NULL, *tokenInfo = NULL, *userInfo = NULL, *_0$$3 
= NULL, *_1$$3, *_8$$3, *_2$$4 = NULL, *_3$$4, *_4$$4, *_5$$4, *_7$$5, *_9$$6, 
*_10$$6 = NULL, *_11$$6 = NULL, *_12$$6 = NULL;
 
        ZEPHIR_MM_GROW();
        zephir_get_global(&_GET, SS("_GET") TSRMLS_CC);
@@ -165,16 +165,25 @@
                _8$$3 = zephir_fetch_nproperty_this(this_ptr, 
SL("accessToken"), PH_NOISY_CC);
                if (zephir_is_true(_8$$3)) {
                        ZEPHIR_INIT_NVAR(params);
-                       zephir_create_array(params, 1, 0 TSRMLS_CC);
+                       zephir_create_array(params, 2, 0 TSRMLS_CC);
                        ZEPHIR_OBS_VAR(_9$$6);
                        zephir_read_property_this(&_9$$6, this_ptr, 
SL("accessToken"), PH_NOISY_CC);
                        zephir_array_update_string(&params, SL("access_token"), 
&_9$$6, PH_COPY | PH_SEPARATE);
-                       ZEPHIR_INIT_VAR(_10$$6);
-                       ZVAL_LONG(_10$$6, 0);
                        ZEPHIR_INIT_VAR(_11$$6);
-                       ZVAL_STRING(_11$$6, "https://graph.facebook.com/me";, 
ZEPHIR_TEMP_PARAM_COPY);
-                       ZEPHIR_CALL_METHOD(&userInfo, this_ptr, "call", NULL, 
0, _10$$6, _11$$6, params);
+                       ZVAL_STRING(_11$$6, "fields", ZEPHIR_TEMP_PARAM_COPY);
+                       ZEPHIR_INIT_VAR(_12$$6);
+                       ZVAL_STRING(_12$$6, 
"id,name,email,gender,link,verified,first_name,last_name,birthday,locale,timezone",
 ZEPHIR_TEMP_PARAM_COPY);
+                       ZEPHIR_CALL_METHOD(&_10$$6, this_ptr, "getoption", 
NULL, 0, _11$$6, _12$$6);
                        zephir_check_temp_parameter(_11$$6);
+                       zephir_check_temp_parameter(_12$$6);
+                       zephir_check_call_status();
+                       zephir_array_update_string(&params, SL("fields"), 
&_10$$6, PH_COPY | PH_SEPARATE);
+                       ZEPHIR_INIT_NVAR(_11$$6);
+                       ZVAL_LONG(_11$$6, 0);
+                       ZEPHIR_INIT_NVAR(_12$$6);
+                       ZVAL_STRING(_12$$6, "https://graph.facebook.com/me";, 
ZEPHIR_TEMP_PARAM_COPY);
+                       ZEPHIR_CALL_METHOD(&userInfo, this_ptr, "call", NULL, 
0, _11$$6, _12$$6, params);
+                       zephir_check_temp_parameter(_12$$6);
                        zephir_check_call_status();
                        if (zephir_array_isset_string(userInfo, SS("id"))) {
                                zephir_update_property_this(this_ptr, 
SL("userInfo"), userInfo TSRMLS_CC);
@@ -193,8 +202,9 @@
  */
 PHP_METHOD(Ice_Auth_Social_Facebook, prepareAuthParams) {
 
-       zval *_1 = NULL;
+       zval *_1 = NULL, *_2 = NULL, *_3, *_4;
        zval *_0;
+       int ZEPHIR_LAST_CALL_STATUS;
 
        ZEPHIR_MM_GROW();
 
@@ -209,7 +219,15 @@
        zephir_read_property_this(&_1, this_ptr, SL("redirectUri"), 
PH_NOISY_CC);
        zephir_array_update_string(&_0, SL("redirect_uri"), &_1, PH_COPY | 
PH_SEPARATE);
        add_assoc_stringl_ex(_0, SS("response_type"), SL("code"), 1);
-       add_assoc_stringl_ex(_0, SS("scope"), SL("email,user_birthday"), 1);
+       ZEPHIR_INIT_VAR(_3);
+       ZVAL_STRING(_3, "scope", ZEPHIR_TEMP_PARAM_COPY);
+       ZEPHIR_INIT_VAR(_4);
+       ZVAL_STRING(_4, "email,public_profile", ZEPHIR_TEMP_PARAM_COPY);
+       ZEPHIR_CALL_METHOD(&_2, this_ptr, "getoption", NULL, 0, _3, _4);
+       zephir_check_temp_parameter(_3);
+       zephir_check_temp_parameter(_4);
+       zephir_check_call_status();
+       zephir_array_update_string(&_0, SL("scope"), &_2, PH_COPY | 
PH_SEPARATE);
        zephir_array_update_string(&return_value, SL("auth_params"), &_0, 
PH_COPY | PH_SEPARATE);
        RETURN_MM();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/framework-1.2.6/build/php5/ice/auth/social/google.zep.c 
new/framework-1.2.8/build/php5/ice/auth/social/google.zep.c
--- old/framework-1.2.6/build/php5/ice/auth/social/google.zep.c 2017-02-10 
22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php5/ice/auth/social/google.zep.c 2017-02-18 
19:55:14.000000000 +0100
@@ -197,8 +197,9 @@
  */
 PHP_METHOD(Ice_Auth_Social_Google, prepareAuthParams) {
 
-       zval *_1 = NULL;
+       zval *_1 = NULL, *_2 = NULL, *_3, *_4;
        zval *_0;
+       int ZEPHIR_LAST_CALL_STATUS;
 
        ZEPHIR_MM_GROW();
 
@@ -213,7 +214,15 @@
        ZEPHIR_OBS_NVAR(_1);
        zephir_read_property_this(&_1, this_ptr, SL("clientId"), PH_NOISY_CC);
        zephir_array_update_string(&_0, SL("client_id"), &_1, PH_COPY | 
PH_SEPARATE);
-       add_assoc_stringl_ex(_0, SS("scope"), 
SL("https://www.googleapis.com/auth/userinfo.email 
https://www.googleapis.com/auth/userinfo.profile";), 1);
+       ZEPHIR_INIT_VAR(_3);
+       ZVAL_STRING(_3, "scope", ZEPHIR_TEMP_PARAM_COPY);
+       ZEPHIR_INIT_VAR(_4);
+       ZVAL_STRING(_4, "https://www.googleapis.com/auth/userinfo.email 
https://www.googleapis.com/auth/userinfo.profile";, ZEPHIR_TEMP_PARAM_COPY);
+       ZEPHIR_CALL_METHOD(&_2, this_ptr, "getoption", NULL, 0, _3, _4);
+       zephir_check_temp_parameter(_3);
+       zephir_check_temp_parameter(_4);
+       zephir_check_call_status();
+       zephir_array_update_string(&_0, SL("scope"), &_2, PH_COPY | 
PH_SEPARATE);
        zephir_array_update_string(&return_value, SL("auth_params"), &_0, 
PH_COPY | PH_SEPARATE);
        RETURN_MM();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/build/php5/ice/version.zep.c 
new/framework-1.2.8/build/php5/ice/version.zep.c
--- old/framework-1.2.6/build/php5/ice/version.zep.c    2017-02-10 
22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php5/ice/version.zep.c    2017-02-18 
19:55:14.000000000 +0100
@@ -47,7 +47,7 @@
 
        zend_declare_class_constant_long(ice_version_ce, SL("MINOR"), 2 
TSRMLS_CC);
 
-       zend_declare_class_constant_long(ice_version_ce, SL("PATCH"), 6 
TSRMLS_CC);
+       zend_declare_class_constant_long(ice_version_ce, SL("PATCH"), 8 
TSRMLS_CC);
 
        zend_declare_class_constant_long(ice_version_ce, SL("STAGE"), 4 
TSRMLS_CC);
 
@@ -69,7 +69,7 @@
        zephir_create_array(return_value, 5, 0 TSRMLS_CC);
        add_assoc_long_ex(return_value, SS("major"), 1);
        add_assoc_long_ex(return_value, SS("minor"), 2);
-       add_assoc_long_ex(return_value, SS("patch"), 6);
+       add_assoc_long_ex(return_value, SS("patch"), 8);
        add_assoc_long_ex(return_value, SS("stage"), 4);
        add_assoc_long_ex(return_value, SS("build"), 0);
        return;
@@ -138,7 +138,7 @@
        ZEPHIR_SINIT_VAR(_8);
        ZVAL_LONG(&_8, 2);
        ZEPHIR_SINIT_VAR(_9);
-       ZVAL_LONG(&_9, 6);
+       ZVAL_LONG(&_9, 8);
        ZEPHIR_CONCAT_VSVSVV(return_value, &_7, ".", &_8, ".", &_9, suffix);
        RETURN_MM();
 
@@ -171,7 +171,7 @@
        ZEPHIR_SINIT_NVAR(_1);
        ZVAL_STRING(&_1, "%02s", 0);
        ZEPHIR_SINIT_NVAR(_2);
-       ZVAL_LONG(&_2, 6);
+       ZVAL_LONG(&_2, 8);
        ZEPHIR_CALL_FUNCTION(&_5, "sprintf", &_4, 12, &_1, &_2);
        zephir_check_call_status();
        ZEPHIR_SINIT_NVAR(_1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/build/php5/php_ice.h 
new/framework-1.2.8/build/php5/php_ice.h
--- old/framework-1.2.6/build/php5/php_ice.h    2017-02-10 22:28:47.000000000 
+0100
+++ new/framework-1.2.8/build/php5/php_ice.h    2017-02-18 19:55:14.000000000 
+0100
@@ -11,10 +11,10 @@
 #include "kernel/globals.h"
 
 #define PHP_ICE_NAME        "ice"
-#define PHP_ICE_VERSION     "1.2.6"
+#define PHP_ICE_VERSION     "1.2.8"
 #define PHP_ICE_EXTNAME     "ice"
 #define PHP_ICE_AUTHOR      "Ice Team"
-#define PHP_ICE_ZEPVERSION  "0.9.6a-dev-72dbb2063e"
+#define PHP_ICE_ZEPVERSION  "0.9.6a-dev-aef205594b"
 #define PHP_ICE_DESCRIPTION "Simple and fast PHP framework delivered as 
C-extension.<br>Copyright (c) 2014-2016 Ice Team."
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/framework-1.2.6/build/php7/ice/auth/social/adapter.zep.c 
new/framework-1.2.8/build/php7/ice/auth/social/adapter.zep.c
--- old/framework-1.2.6/build/php7/ice/auth/social/adapter.zep.c        
2017-02-10 22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php7/ice/auth/social/adapter.zep.c        
2017-02-18 19:55:14.000000000 +0100
@@ -36,6 +36,8 @@
 
        ZEPHIR_REGISTER_CLASS(Ice\\Auth\\Social, Adapter, ice, 
auth_social_adapter, ice_auth_social_adapter_method_entry, 
ZEND_ACC_EXPLICIT_ABSTRACT_CLASS);
 
+       zend_declare_property_null(ice_auth_social_adapter_ce, SL("options"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
+
        zend_declare_property_null(ice_auth_social_adapter_ce, 
SL("accessToken"), ZEND_ACC_PROTECTED TSRMLS_CC);
 
        zend_declare_property_null(ice_auth_social_adapter_ce, SL("clientId"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
@@ -112,31 +114,35 @@
  */
 PHP_METHOD(Ice_Auth_Social_Adapter, __construct) {
 
-       zval _15$$8;
-       zend_bool _10, _12, _4$$3;
+       zval _18$$8;
+       zend_bool _13, _15, _3$$3;
        int ZEPHIR_LAST_CALL_STATUS;
-       zephir_fcall_cache_entry *_1 = NULL;
-       zval *config = NULL, config_sub, clientId, clientSecret, redirectUri, 
tmp, _9, _11, _13, _0$$3, _2$$3, _3$$3, _5$$3, _6$$3, _7$$4, _8$$4, _14$$8, 
_16$$8;
+       zephir_fcall_cache_entry *_0 = NULL;
+       zval *config = NULL, config_sub, clientId, clientSecret, redirectUri, 
di, auth, _12, _14, _16, _1$$3, _2$$3, _4$$3, _5$$3, _6$$4, _7$$4, _8$$7, 
_9$$7, _10$$7, _11$$7, _17$$8, _19$$8;
        ZEPHIR_INIT_THIS();
 
        ZVAL_UNDEF(&config_sub);
        ZVAL_UNDEF(&clientId);
        ZVAL_UNDEF(&clientSecret);
        ZVAL_UNDEF(&redirectUri);
-       ZVAL_UNDEF(&tmp);
-       ZVAL_UNDEF(&_9);
-       ZVAL_UNDEF(&_11);
-       ZVAL_UNDEF(&_13);
-       ZVAL_UNDEF(&_0$$3);
+       ZVAL_UNDEF(&di);
+       ZVAL_UNDEF(&auth);
+       ZVAL_UNDEF(&_12);
+       ZVAL_UNDEF(&_14);
+       ZVAL_UNDEF(&_16);
+       ZVAL_UNDEF(&_1$$3);
        ZVAL_UNDEF(&_2$$3);
-       ZVAL_UNDEF(&_3$$3);
+       ZVAL_UNDEF(&_4$$3);
        ZVAL_UNDEF(&_5$$3);
-       ZVAL_UNDEF(&_6$$3);
+       ZVAL_UNDEF(&_6$$4);
        ZVAL_UNDEF(&_7$$4);
-       ZVAL_UNDEF(&_8$$4);
-       ZVAL_UNDEF(&_14$$8);
-       ZVAL_UNDEF(&_16$$8);
-       ZVAL_UNDEF(&_15$$8);
+       ZVAL_UNDEF(&_8$$7);
+       ZVAL_UNDEF(&_9$$7);
+       ZVAL_UNDEF(&_10$$7);
+       ZVAL_UNDEF(&_11$$7);
+       ZVAL_UNDEF(&_17$$8);
+       ZVAL_UNDEF(&_19$$8);
+       ZVAL_UNDEF(&_18$$8);
 
        ZEPHIR_MM_GROW();
        zephir_fetch_params(1, 0, 1, &config);
@@ -150,29 +156,29 @@
        }
 
 
+       ZEPHIR_CALL_CE_STATIC(&di, ice_di_ce, "fetch", &_0, 1);
+       zephir_check_call_status();
        if (!(zephir_fast_count_int(config TSRMLS_CC))) {
-               ZEPHIR_CALL_CE_STATIC(&_0$$3, ice_di_ce, "fetch", &_1, 1);
-               zephir_check_call_status();
-               ZEPHIR_INIT_VAR(&_3$$3);
-               ZVAL_STRING(&_3$$3, "config");
-               ZEPHIR_CALL_METHOD(&_2$$3, &_0$$3, "get", NULL, 0, &_3$$3);
+               ZEPHIR_INIT_VAR(&_2$$3);
+               ZVAL_STRING(&_2$$3, "config");
+               ZEPHIR_CALL_METHOD(&_1$$3, &di, "get", NULL, 0, &_2$$3);
                zephir_check_call_status();
-               ZEPHIR_INIT_NVAR(&_3$$3);
-               ZVAL_STRING(&_3$$3, "auth");
-               ZEPHIR_CALL_METHOD(&tmp, &_2$$3, "get", NULL, 0, &_3$$3);
+               ZEPHIR_INIT_NVAR(&_2$$3);
+               ZVAL_STRING(&_2$$3, "auth");
+               ZEPHIR_CALL_METHOD(&auth, &_1$$3, "get", NULL, 0, &_2$$3);
                zephir_check_call_status();
-               _4$$3 = zephir_is_true(&tmp);
-               if (_4$$3) {
-                       zephir_read_property(&_6$$3, this_ptr, SL("provider"), 
PH_NOISY_CC | PH_READONLY);
-                       ZEPHIR_CALL_METHOD(&_5$$3, &tmp, "has", NULL, 0, 
&_6$$3);
+               _3$$3 = zephir_is_true(&auth);
+               if (_3$$3) {
+                       zephir_read_property(&_5$$3, this_ptr, SL("provider"), 
PH_NOISY_CC | PH_READONLY);
+                       ZEPHIR_CALL_METHOD(&_4$$3, &auth, "has", NULL, 0, 
&_5$$3);
                        zephir_check_call_status();
-                       _4$$3 = zephir_is_true(&_5$$3);
+                       _3$$3 = zephir_is_true(&_4$$3);
                }
-               if (_4$$3) {
-                       zephir_read_property(&_8$$4, this_ptr, SL("provider"), 
PH_NOISY_CC | PH_READONLY);
-                       ZEPHIR_CALL_METHOD(&_7$$4, &tmp, "get", NULL, 0, 
&_8$$4);
+               if (_3$$3) {
+                       zephir_read_property(&_7$$4, this_ptr, SL("provider"), 
PH_NOISY_CC | PH_READONLY);
+                       ZEPHIR_CALL_METHOD(&_6$$4, &auth, "get", NULL, 0, 
&_7$$4);
                        zephir_check_call_status();
-                       ZEPHIR_CALL_METHOD(config, &_7$$4, "toarray", NULL, 0);
+                       ZEPHIR_CALL_METHOD(config, &_6$$4, "toarray", NULL, 0);
                        zephir_check_call_status();
                }
        }
@@ -186,42 +192,58 @@
        }
        ZEPHIR_OBS_VAR(&redirectUri);
        if (zephir_array_isset_string_fetch(&redirectUri, config, 
SL("redirect_uri"), 0)) {
-               zephir_update_property_zval(this_ptr, SL("redirectUri"), 
&redirectUri);
+               ZEPHIR_INIT_VAR(&_8$$7);
+               ZEPHIR_INIT_VAR(&_10$$7);
+               ZVAL_STRING(&_10$$7, "url");
+               ZEPHIR_CALL_METHOD(&_9$$7, &di, "has", NULL, 0, &_10$$7);
+               zephir_check_call_status();
+               if (zephir_is_true(&_9$$7)) {
+                       ZEPHIR_INIT_NVAR(&_10$$7);
+                       ZVAL_STRING(&_10$$7, "url");
+                       ZEPHIR_CALL_METHOD(&_11$$7, &di, "get", NULL, 0, 
&_10$$7);
+                       zephir_check_call_status();
+                       ZEPHIR_CALL_METHOD(&_8$$7, &_11$$7, "getstatic", NULL, 
0, &redirectUri);
+                       zephir_check_call_status();
+               } else {
+                       ZEPHIR_CPY_WRT(&_8$$7, &redirectUri);
+               }
+               zephir_update_property_zval(this_ptr, SL("redirectUri"), 
&_8$$7);
        }
-       zephir_read_property(&_9, this_ptr, SL("clientId"), PH_NOISY_CC | 
PH_READONLY);
-       _10 = !zephir_is_true(&_9);
-       if (!(_10)) {
-               zephir_read_property(&_11, this_ptr, SL("clientSecret"), 
PH_NOISY_CC | PH_READONLY);
-               _10 = !zephir_is_true(&_11);
-       }
-       _12 = _10;
-       if (!(_12)) {
-               zephir_read_property(&_13, this_ptr, SL("redirectUri"), 
PH_NOISY_CC | PH_READONLY);
-               _12 = !zephir_is_true(&_13);
-       }
-       if (_12) {
-               ZEPHIR_INIT_VAR(&_14$$8);
-               object_init_ex(&_14$$8, ice_exception_ce);
-               ZEPHIR_INIT_VAR(&_15$$8);
-               zephir_create_array(&_15$$8, 4, 0 TSRMLS_CC);
-               ZEPHIR_INIT_VAR(&_16$$8);
-               ZVAL_STRING(&_16$$8, "Option `%s`, `%s`, `%s` are required");
-               zephir_array_fast_append(&_15$$8, &_16$$8);
-               ZEPHIR_INIT_NVAR(&_16$$8);
-               ZVAL_STRING(&_16$$8, "client_id");
-               zephir_array_fast_append(&_15$$8, &_16$$8);
-               ZEPHIR_INIT_NVAR(&_16$$8);
-               ZVAL_STRING(&_16$$8, "client_secret");
-               zephir_array_fast_append(&_15$$8, &_16$$8);
-               ZEPHIR_INIT_NVAR(&_16$$8);
-               ZVAL_STRING(&_16$$8, "redirect_uri");
-               zephir_array_fast_append(&_15$$8, &_16$$8);
-               ZEPHIR_CALL_METHOD(NULL, &_14$$8, "__construct", NULL, 13, 
&_15$$8);
+       zephir_read_property(&_12, this_ptr, SL("clientId"), PH_NOISY_CC | 
PH_READONLY);
+       _13 = !zephir_is_true(&_12);
+       if (!(_13)) {
+               zephir_read_property(&_14, this_ptr, SL("clientSecret"), 
PH_NOISY_CC | PH_READONLY);
+               _13 = !zephir_is_true(&_14);
+       }
+       _15 = _13;
+       if (!(_15)) {
+               zephir_read_property(&_16, this_ptr, SL("redirectUri"), 
PH_NOISY_CC | PH_READONLY);
+               _15 = !zephir_is_true(&_16);
+       }
+       if (_15) {
+               ZEPHIR_INIT_VAR(&_17$$8);
+               object_init_ex(&_17$$8, ice_exception_ce);
+               ZEPHIR_INIT_VAR(&_18$$8);
+               zephir_create_array(&_18$$8, 4, 0 TSRMLS_CC);
+               ZEPHIR_INIT_VAR(&_19$$8);
+               ZVAL_STRING(&_19$$8, "Option `%s`, `%s`, `%s` are required");
+               zephir_array_fast_append(&_18$$8, &_19$$8);
+               ZEPHIR_INIT_NVAR(&_19$$8);
+               ZVAL_STRING(&_19$$8, "client_id");
+               zephir_array_fast_append(&_18$$8, &_19$$8);
+               ZEPHIR_INIT_NVAR(&_19$$8);
+               ZVAL_STRING(&_19$$8, "client_secret");
+               zephir_array_fast_append(&_18$$8, &_19$$8);
+               ZEPHIR_INIT_NVAR(&_19$$8);
+               ZVAL_STRING(&_19$$8, "redirect_uri");
+               zephir_array_fast_append(&_18$$8, &_19$$8);
+               ZEPHIR_CALL_METHOD(NULL, &_17$$8, "__construct", NULL, 13, 
&_18$$8);
                zephir_check_call_status();
-               zephir_throw_exception_debug(&_14$$8, 
"ice/auth/social/adapter.zep", 60 TSRMLS_CC);
+               zephir_throw_exception_debug(&_17$$8, 
"ice/auth/social/adapter.zep", 63 TSRMLS_CC);
                ZEPHIR_MM_RESTORE();
                return;
        }
+       zephir_update_property_zval(this_ptr, SL("options"), config);
        ZEPHIR_MM_RESTORE();
 
 }
@@ -317,7 +339,7 @@
        zephir_read_property(&_0, this_ptr, SL("socialFieldsMap"), PH_NOISY_CC 
| PH_READONLY);
        if (zephir_array_isset(&_0, &key)) {
                zephir_read_property(&_1$$3, this_ptr, SL("socialFieldsMap"), 
PH_NOISY_CC | PH_READONLY);
-               zephir_array_fetch(&_2$$3, &_1$$3, &key, PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 97 TSRMLS_CC);
+               zephir_array_fetch(&_2$$3, &_1$$3, &key, PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 102 TSRMLS_CC);
                zephir_get_strval(&key, &_2$$3);
        }
        zephir_read_property(&_3, this_ptr, SL("userInfo"), PH_NOISY_CC | 
PH_READONLY);
@@ -361,7 +383,7 @@
        zephir_read_property(&_0, this_ptr, SL("socialFieldsMap"), PH_NOISY_CC 
| PH_READONLY);
        if (zephir_array_isset(&_0, &key)) {
                zephir_read_property(&_1$$3, this_ptr, SL("socialFieldsMap"), 
PH_NOISY_CC | PH_READONLY);
-               zephir_array_fetch(&_2$$3, &_1$$3, &key, PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 117 TSRMLS_CC);
+               zephir_array_fetch(&_2$$3, &_1$$3, &key, PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 122 TSRMLS_CC);
                zephir_get_strval(&key, &_2$$3);
        }
        zephir_read_property(&_3, this_ptr, SL("userInfo"), PH_NOISY_CC | 
PH_READONLY);
@@ -394,8 +416,8 @@
 
        ZEPHIR_CALL_METHOD(&config, this_ptr, "prepareauthparams", NULL, 0);
        zephir_check_call_status();
-       zephir_array_fetch_string(&_0, &config, SL("auth_url"), PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 138 TSRMLS_CC);
-       zephir_array_fetch_string(&_1, &config, SL("auth_params"), PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 138 TSRMLS_CC);
+       zephir_array_fetch_string(&_0, &config, SL("auth_url"), PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 143 TSRMLS_CC);
+       zephir_array_fetch_string(&_1, &config, SL("auth_params"), PH_NOISY | 
PH_READONLY, "ice/auth/social/adapter.zep", 143 TSRMLS_CC);
        ZEPHIR_CALL_FUNCTION(&_2, "http_build_query", NULL, 19, &_1);
        zephir_check_call_status();
        ZEPHIR_CALL_FUNCTION(&_3, "urldecode", NULL, 20, &_2);
@@ -404,6 +426,53 @@
        RETURN_MM();
 
 }
+
+/**
+ * Get option value with key.
+ *
+ * @param string key The option key
+ * @param mixed defaultValue The value to return if option key does not exist
+ * @return mixed
+ */
+PHP_METHOD(Ice_Auth_Social_Adapter, getOption) {
+
+       zval *key_param = NULL, *defaultValue = NULL, defaultValue_sub, 
__$null, value, _0;
+       zval key;
+       ZEPHIR_INIT_THIS();
+
+       ZVAL_UNDEF(&key);
+       ZVAL_UNDEF(&defaultValue_sub);
+       ZVAL_NULL(&__$null);
+       ZVAL_UNDEF(&value);
+       ZVAL_UNDEF(&_0);
+
+       ZEPHIR_MM_GROW();
+       zephir_fetch_params(1, 1, 1, &key_param, &defaultValue);
+
+       if (unlikely(Z_TYPE_P(key_param) != IS_STRING && Z_TYPE_P(key_param) != 
IS_NULL)) {
+               zephir_throw_exception_string(spl_ce_InvalidArgumentException, 
SL("Parameter 'key' must be a string") TSRMLS_CC);
+               RETURN_MM_NULL();
+       }
+       if (likely(Z_TYPE_P(key_param) == IS_STRING)) {
+               zephir_get_strval(&key, key_param);
+       } else {
+               ZEPHIR_INIT_VAR(&key);
+               ZVAL_EMPTY_STRING(&key);
+       }
+       if (!defaultValue) {
+               defaultValue = &defaultValue_sub;
+               defaultValue = &__$null;
+       }
+
+
+       zephir_read_property(&_0, this_ptr, SL("options"), PH_NOISY_CC | 
PH_READONLY);
+       if (zephir_array_isset_fetch(&value, &_0, &key, 1 TSRMLS_CC)) {
+               RETURN_CTOR(value);
+       }
+       RETVAL_ZVAL(defaultValue, 1, 0);
+       RETURN_MM();
+
+}
 
 /**
  * Make curl get/post request and return result.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/framework-1.2.6/build/php7/ice/auth/social/adapter.zep.h 
new/framework-1.2.8/build/php7/ice/auth/social/adapter.zep.h
--- old/framework-1.2.6/build/php7/ice/auth/social/adapter.zep.h        
2017-02-10 22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php7/ice/auth/social/adapter.zep.h        
2017-02-18 19:55:14.000000000 +0100
@@ -12,6 +12,7 @@
 PHP_METHOD(Ice_Auth_Social_Adapter, has);
 PHP_METHOD(Ice_Auth_Social_Adapter, get);
 PHP_METHOD(Ice_Auth_Social_Adapter, getAuthUrl);
+PHP_METHOD(Ice_Auth_Social_Adapter, getOption);
 PHP_METHOD(Ice_Auth_Social_Adapter, call);
 zend_object *zephir_init_properties_Ice_Auth_Social_Adapter(zend_class_entry 
*class_type TSRMLS_DC);
 
@@ -37,6 +38,11 @@
        ZEND_ARG_INFO(0, defaultValue)
 ZEND_END_ARG_INFO()
 
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ice_auth_social_adapter_getoption, 0, 0, 1)
+       ZEND_ARG_INFO(0, key)
+       ZEND_ARG_INFO(0, defaultValue)
+ZEND_END_ARG_INFO()
+
 ZEND_BEGIN_ARG_INFO_EX(arginfo_ice_auth_social_adapter_call, 0, 0, 2)
        ZEND_ARG_INFO(0, method)
        ZEND_ARG_INFO(0, url)
@@ -54,6 +60,7 @@
        PHP_ME(Ice_Auth_Social_Adapter, has, 
arginfo_ice_auth_social_adapter_has, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Auth_Social_Adapter, get, 
arginfo_ice_auth_social_adapter_get, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Auth_Social_Adapter, getAuthUrl, NULL, ZEND_ACC_PUBLIC)
+       PHP_ME(Ice_Auth_Social_Adapter, getOption, 
arginfo_ice_auth_social_adapter_getoption, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Auth_Social_Adapter, call, 
arginfo_ice_auth_social_adapter_call, ZEND_ACC_PROTECTED)
        PHP_FE_END
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/framework-1.2.6/build/php7/ice/auth/social/facebook.zep.c 
new/framework-1.2.8/build/php7/ice/auth/social/facebook.zep.c
--- old/framework-1.2.6/build/php7/ice/auth/social/facebook.zep.c       
2017-02-10 22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php7/ice/auth/social/facebook.zep.c       
2017-02-18 19:55:14.000000000 +0100
@@ -126,7 +126,7 @@
 
        zend_bool result = 0, _6$$4;
        int ZEPHIR_LAST_CALL_STATUS;
-       zval _GET, params, tokenInfo, userInfo, _0$$3, _1$$3, _8$$3, _2$$4, 
_3$$4, _4$$4, _5$$4, _7$$5, _9$$6, _10$$6, _11$$6;
+       zval _GET, params, tokenInfo, userInfo, _0$$3, _1$$3, _8$$3, _2$$4, 
_3$$4, _4$$4, _5$$4, _7$$5, _9$$6, _10$$6, _11$$6, _12$$6, _13$$6;
        ZEPHIR_INIT_THIS();
 
        ZVAL_UNDEF(&_GET);
@@ -144,6 +144,8 @@
        ZVAL_UNDEF(&_9$$6);
        ZVAL_UNDEF(&_10$$6);
        ZVAL_UNDEF(&_11$$6);
+       ZVAL_UNDEF(&_12$$6);
+       ZVAL_UNDEF(&_13$$6);
 
        ZEPHIR_MM_GROW();
        zephir_get_global(&_GET, SL("_GET"));
@@ -190,14 +192,21 @@
                zephir_read_property(&_8$$3, this_ptr, SL("accessToken"), 
PH_NOISY_CC | PH_READONLY);
                if (zephir_is_true(&_8$$3)) {
                        ZEPHIR_INIT_NVAR(&params);
-                       zephir_create_array(&params, 1, 0 TSRMLS_CC);
+                       zephir_create_array(&params, 2, 0 TSRMLS_CC);
                        ZEPHIR_OBS_VAR(&_9$$6);
                        zephir_read_property(&_9$$6, this_ptr, 
SL("accessToken"), PH_NOISY_CC);
                        zephir_array_update_string(&params, SL("access_token"), 
&_9$$6, PH_COPY | PH_SEPARATE);
-                       ZVAL_LONG(&_10$$6, 0);
                        ZEPHIR_INIT_VAR(&_11$$6);
+                       ZVAL_STRING(&_11$$6, "fields");
+                       ZEPHIR_INIT_VAR(&_12$$6);
+                       ZVAL_STRING(&_12$$6, 
"id,name,email,gender,link,verified,first_name,last_name,birthday,locale,timezone");
+                       ZEPHIR_CALL_METHOD(&_10$$6, this_ptr, "getoption", 
NULL, 0, &_11$$6, &_12$$6);
+                       zephir_check_call_status();
+                       zephir_array_update_string(&params, SL("fields"), 
&_10$$6, PH_COPY | PH_SEPARATE);
+                       ZVAL_LONG(&_13$$6, 0);
+                       ZEPHIR_INIT_NVAR(&_11$$6);
                        ZVAL_STRING(&_11$$6, "https://graph.facebook.com/me";);
-                       ZEPHIR_CALL_METHOD(&userInfo, this_ptr, "call", NULL, 
0, &_10$$6, &_11$$6, &params);
+                       ZEPHIR_CALL_METHOD(&userInfo, this_ptr, "call", NULL, 
0, &_13$$6, &_11$$6, &params);
                        zephir_check_call_status();
                        if (zephir_array_isset_string(&userInfo, SL("id"))) {
                                zephir_update_property_zval(this_ptr, 
SL("userInfo"), &userInfo);
@@ -216,12 +225,16 @@
  */
 PHP_METHOD(Ice_Auth_Social_Facebook, prepareAuthParams) {
 
-       zval _1;
+       zval _1, _2, _3, _4;
        zval _0;
+       int ZEPHIR_LAST_CALL_STATUS;
        ZEPHIR_INIT_THIS();
 
        ZVAL_UNDEF(&_0);
        ZVAL_UNDEF(&_1);
+       ZVAL_UNDEF(&_2);
+       ZVAL_UNDEF(&_3);
+       ZVAL_UNDEF(&_4);
 
        ZEPHIR_MM_GROW();
 
@@ -236,7 +249,13 @@
        zephir_read_property(&_1, this_ptr, SL("redirectUri"), PH_NOISY_CC);
        zephir_array_update_string(&_0, SL("redirect_uri"), &_1, PH_COPY | 
PH_SEPARATE);
        add_assoc_stringl_ex(&_0, SL("response_type"), SL("code"));
-       add_assoc_stringl_ex(&_0, SL("scope"), SL("email,user_birthday"));
+       ZEPHIR_INIT_VAR(&_3);
+       ZVAL_STRING(&_3, "scope");
+       ZEPHIR_INIT_VAR(&_4);
+       ZVAL_STRING(&_4, "email,public_profile");
+       ZEPHIR_CALL_METHOD(&_2, this_ptr, "getoption", NULL, 0, &_3, &_4);
+       zephir_check_call_status();
+       zephir_array_update_string(&_0, SL("scope"), &_2, PH_COPY | 
PH_SEPARATE);
        zephir_array_update_string(return_value, SL("auth_params"), &_0, 
PH_COPY | PH_SEPARATE);
        RETURN_MM();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/framework-1.2.6/build/php7/ice/auth/social/google.zep.c 
new/framework-1.2.8/build/php7/ice/auth/social/google.zep.c
--- old/framework-1.2.6/build/php7/ice/auth/social/google.zep.c 2017-02-10 
22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php7/ice/auth/social/google.zep.c 2017-02-18 
19:55:14.000000000 +0100
@@ -227,12 +227,16 @@
  */
 PHP_METHOD(Ice_Auth_Social_Google, prepareAuthParams) {
 
-       zval _1;
+       zval _1, _2, _3, _4;
        zval _0;
+       int ZEPHIR_LAST_CALL_STATUS;
        ZEPHIR_INIT_THIS();
 
        ZVAL_UNDEF(&_0);
        ZVAL_UNDEF(&_1);
+       ZVAL_UNDEF(&_2);
+       ZVAL_UNDEF(&_3);
+       ZVAL_UNDEF(&_4);
 
        ZEPHIR_MM_GROW();
 
@@ -247,7 +251,13 @@
        ZEPHIR_OBS_NVAR(&_1);
        zephir_read_property(&_1, this_ptr, SL("clientId"), PH_NOISY_CC);
        zephir_array_update_string(&_0, SL("client_id"), &_1, PH_COPY | 
PH_SEPARATE);
-       add_assoc_stringl_ex(&_0, SL("scope"), 
SL("https://www.googleapis.com/auth/userinfo.email 
https://www.googleapis.com/auth/userinfo.profile";));
+       ZEPHIR_INIT_VAR(&_3);
+       ZVAL_STRING(&_3, "scope");
+       ZEPHIR_INIT_VAR(&_4);
+       ZVAL_STRING(&_4, "https://www.googleapis.com/auth/userinfo.email 
https://www.googleapis.com/auth/userinfo.profile";);
+       ZEPHIR_CALL_METHOD(&_2, this_ptr, "getoption", NULL, 0, &_3, &_4);
+       zephir_check_call_status();
+       zephir_array_update_string(&_0, SL("scope"), &_2, PH_COPY | 
PH_SEPARATE);
        zephir_array_update_string(return_value, SL("auth_params"), &_0, 
PH_COPY | PH_SEPARATE);
        RETURN_MM();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/build/php7/ice/version.zep.c 
new/framework-1.2.8/build/php7/ice/version.zep.c
--- old/framework-1.2.6/build/php7/ice/version.zep.c    2017-02-10 
22:28:47.000000000 +0100
+++ new/framework-1.2.8/build/php7/ice/version.zep.c    2017-02-18 
19:55:14.000000000 +0100
@@ -47,7 +47,7 @@
 
        zephir_declare_class_constant_long(ice_version_ce, SL("MINOR"), 2);
 
-       zephir_declare_class_constant_long(ice_version_ce, SL("PATCH"), 6);
+       zephir_declare_class_constant_long(ice_version_ce, SL("PATCH"), 8);
 
        zephir_declare_class_constant_long(ice_version_ce, SL("STAGE"), 4);
 
@@ -70,7 +70,7 @@
        zephir_create_array(return_value, 5, 0 TSRMLS_CC);
        add_assoc_long_ex(return_value, SL("major"), 1);
        add_assoc_long_ex(return_value, SL("minor"), 2);
-       add_assoc_long_ex(return_value, SL("patch"), 6);
+       add_assoc_long_ex(return_value, SL("patch"), 8);
        add_assoc_long_ex(return_value, SL("stage"), 4);
        add_assoc_long_ex(return_value, SL("build"), 0);
        return;
@@ -151,7 +151,7 @@
        ZEPHIR_SINIT_VAR(_8);
        ZVAL_LONG(&_8, 2);
        ZEPHIR_SINIT_VAR(_9);
-       ZVAL_LONG(&_9, 6);
+       ZVAL_LONG(&_9, 8);
        ZEPHIR_CONCAT_VSVSVV(return_value, &_7, ".", &_8, ".", &_9, &suffix);
        RETURN_MM();
 
@@ -192,7 +192,7 @@
        zephir_check_call_status();
        ZEPHIR_INIT_NVAR(&_1);
        ZVAL_STRING(&_1, "%02s");
-       ZVAL_LONG(&_2, 6);
+       ZVAL_LONG(&_2, 8);
        ZEPHIR_CALL_FUNCTION(&_5, "sprintf", &_4, 12, &_1, &_2);
        zephir_check_call_status();
        ZEPHIR_SINIT_VAR(_6);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/build/php7/php_ice.h 
new/framework-1.2.8/build/php7/php_ice.h
--- old/framework-1.2.6/build/php7/php_ice.h    2017-02-10 22:28:47.000000000 
+0100
+++ new/framework-1.2.8/build/php7/php_ice.h    2017-02-18 19:55:14.000000000 
+0100
@@ -11,10 +11,10 @@
 #include "kernel/globals.h"
 
 #define PHP_ICE_NAME        "ice"
-#define PHP_ICE_VERSION     "1.2.6"
+#define PHP_ICE_VERSION     "1.2.8"
 #define PHP_ICE_EXTNAME     "ice"
 #define PHP_ICE_AUTHOR      "Ice Team"
-#define PHP_ICE_ZEPVERSION  "0.9.6a-dev-72dbb2063e"
+#define PHP_ICE_ZEPVERSION  "0.9.6a-dev-aef205594b"
 #define PHP_ICE_DESCRIPTION "Simple and fast PHP framework delivered as 
C-extension.<br>Copyright (c) 2014-2016 Ice Team."
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/config.json 
new/framework-1.2.8/config.json
--- old/framework-1.2.6/config.json     2017-02-10 22:28:47.000000000 +0100
+++ new/framework-1.2.8/config.json     2017-02-18 19:55:14.000000000 +0100
@@ -3,7 +3,7 @@
     "name": "ice",
     "description": "Simple and fast PHP framework delivered as 
C-extension.<br>Copyright (c) 2014-2016 Ice Team.",
     "author": "Ice Team",
-    "version": "1.2.6",
+    "version": "1.2.8",
     "verbose": false,
     "info": [
         {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/ice/auth/social/adapter.zep 
new/framework-1.2.8/ice/auth/social/adapter.zep
--- old/framework-1.2.6/ice/auth/social/adapter.zep     2017-02-10 
22:28:47.000000000 +0100
+++ new/framework-1.2.8/ice/auth/social/adapter.zep     2017-02-18 
19:55:14.000000000 +0100
@@ -16,6 +16,7 @@
 abstract class Adapter implements SocialInterface
 {
 
+    protected options;
     protected accessToken { set, get };
     protected clientId;
     protected clientSecret;
@@ -36,13 +37,15 @@
      */
     public function __construct(config = [])
     {
-        var clientId, clientSecret, redirectUri, tmp;
+        var clientId, clientSecret, redirectUri, di, auth;
+
+        let di = Di::$fetch();
 
         if !count(config) {
-            let tmp = Di::$fetch()->get("config")->get("auth");
+            let auth = di->get("config")->get("auth");
 
-            if tmp && tmp->has(this->provider) {
-                let config = tmp->get(this->provider)->toArray();
+            if auth && auth->has(this->provider) {
+                let config = auth->get(this->provider)->toArray();
             }
         }
 
@@ -53,12 +56,14 @@
             let this->clientSecret = clientSecret;
         }
         if fetch redirectUri, config["redirect_uri"] {
-            let this->redirectUri = redirectUri;
+            let this->redirectUri = di->has("url") ? 
di->get("url")->getStatic(redirectUri) : redirectUri;
         }
 
         if !this->clientId || !this->clientSecret || !this->redirectUri {
             throw new Exception(["Option `%s`, `%s`, `%s` are required", 
"client_id", "client_secret", "redirect_uri"]);
         }
+
+        let this->options = config;
     }
 
     /**
@@ -139,6 +144,23 @@
     }
 
     /**
+     * Get option value with key.
+     *
+     * @param string key The option key
+     * @param mixed defaultValue The value to return if option key does not 
exist
+     * @return mixed
+     */
+    public function getOption(string! key, var defaultValue = null)
+    {
+        var value;
+
+        if fetch value, this->options[key] {
+            return value;
+        }
+        return defaultValue;
+    }
+
+    /**
      * Make curl get/post request and return result.
      *
      * @param int method
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/ice/auth/social/facebook.zep 
new/framework-1.2.8/ice/auth/social/facebook.zep
--- old/framework-1.2.6/ice/auth/social/facebook.zep    2017-02-10 
22:28:47.000000000 +0100
+++ new/framework-1.2.8/ice/auth/social/facebook.zep    2017-02-18 
19:55:14.000000000 +0100
@@ -71,14 +71,17 @@
             // Be able to store access_token in the session (message: 
This_authorization_code_has_expired_)
             if !this->accessToken {
                 parse_str(this->call(parent::GET, 
"https://graph.facebook.com/oauth/access_token";, params, false), tokenInfo);
-                
+
                 if count(tokenInfo) > 0 && isset tokenInfo["access_token"] {
                     let this->accessToken = tokenInfo["access_token"];
-                }                
+                }
             }
 
             if this->accessToken {
-                let params = ["access_token": this->accessToken],
+                let params = [
+                    "access_token": this->accessToken,
+                    "fields": this->getOption("fields", 
"id,name,email,gender,link,verified,first_name,last_name,birthday,locale,timezone")
+                ],
                     userInfo = this->call(parent::GET, 
"https://graph.facebook.com/me";, params);
 
                 if isset userInfo["id"] {
@@ -103,7 +106,7 @@
                 "client_id":     this->clientId,
                 "redirect_uri":  this->redirectUri,
                 "response_type": "code",
-                "scope":         "email,user_birthday"
+                "scope":         this->getOption("scope", 
"email,public_profile")
             ]
         ];
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/ice/auth/social/google.zep 
new/framework-1.2.8/ice/auth/social/google.zep
--- old/framework-1.2.6/ice/auth/social/google.zep      2017-02-10 
22:28:47.000000000 +0100
+++ new/framework-1.2.8/ice/auth/social/google.zep      2017-02-18 
19:55:14.000000000 +0100
@@ -105,7 +105,7 @@
                 "redirect_uri":  this->redirectUri,
                 "response_type": "code",
                 "client_id":     this->clientId,
-                "scope":         
"https://www.googleapis.com/auth/userinfo.email 
https://www.googleapis.com/auth/userinfo.profile";
+                "scope":         this->getOption("scope", 
"https://www.googleapis.com/auth/userinfo.email 
https://www.googleapis.com/auth/userinfo.profile";)
             ]
         ];
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.6/ice/version.zep 
new/framework-1.2.8/ice/version.zep
--- old/framework-1.2.6/ice/version.zep 2017-02-10 22:28:47.000000000 +0100
+++ new/framework-1.2.8/ice/version.zep 2017-02-18 19:55:14.000000000 +0100
@@ -22,7 +22,7 @@
     // Don't forget to update config.json and run zephir fullclean
     const MAJOR = 1;
     const MINOR = 2;
-    const PATCH = 6;
+    const PATCH = 8;
     const STAGE = self::STABLE;
     const BUILD = 0;
 


Reply via email to