Hello community,

here is the log from the commit of package php5-ice for openSUSE:Factory 
checked in at 2017-01-16 11:16:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-01-09 
11:02:42.592484350 +0100
+++ /work/SRC/openSUSE:Factory/.php5-ice.new/php5-ice.changes   2017-01-16 
11:16:09.558339883 +0100
@@ -1,0 +2,6 @@
+Sun Jan 15 18:05:25 UTC 2017 - [email protected]
+
+- Ice 1.2.4
+ * Model, add autoincrement property
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ php5-ice.spec ++++++
--- /var/tmp/diff_new_pack.yfrBap/_old  2017-01-16 11:16:10.046270706 +0100
+++ /var/tmp/diff_new_pack.yfrBap/_new  2017-01-16 11:16:10.050270139 +0100
@@ -22,7 +22,7 @@
 %define _name   ice
 
 Name:           %{_php}-%{_name}
-Version:        1.2.3
+Version:        1.2.4
 Release:        0
 Summary:        Simple and fast PHP framework delivered as C-extension
 License:        BSD-3-Clause

++++++ php5-ice-1.2.3.tar.gz -> php5-ice-1.2.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/CHANGELOG.md 
new/framework-1.2.4/CHANGELOG.md
--- old/framework-1.2.3/CHANGELOG.md    2017-01-08 19:53:34.000000000 +0100
+++ new/framework-1.2.4/CHANGELOG.md    2017-01-15 19:16:39.000000000 +0100
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Sun Jan 15 18:05:25 UTC 2017
+
+- Ice 1.2.4
+ * Model, add autoincrement property
+
+-------------------------------------------------------------------
 Sun Jan  8 18:39:44 UTC 2017
 
 - Ice 1.2.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/build/php5/ice/mvc/model.zep.c 
new/framework-1.2.4/build/php5/ice/mvc/model.zep.c
--- old/framework-1.2.3/build/php5/ice/mvc/model.zep.c  2017-01-08 
19:53:34.000000000 +0100
+++ new/framework-1.2.4/build/php5/ice/mvc/model.zep.c  2017-01-15 
19:16:39.000000000 +0100
@@ -46,6 +46,8 @@
 
        zend_declare_property_null(ice_mvc_model_ce, SL("primary"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
 
+       zend_declare_property_bool(ice_mvc_model_ce, SL("autoincrement"), 1, 
ZEND_ACC_PROTECTED TSRMLS_CC);
+
        zend_declare_property_null(ice_mvc_model_ce, SL("filters"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
 
        zend_declare_property_null(ice_mvc_model_ce, SL("fields"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
@@ -120,6 +122,18 @@
 
 }
 
+PHP_METHOD(Ice_Mvc_Model, setAutoincrement) {
+
+       zval *autoincrement;
+
+       zephir_fetch_params(0, 1, 0, &autoincrement);
+
+
+
+       zephir_update_property_this(this_ptr, SL("autoincrement"), 
autoincrement TSRMLS_CC);
+
+}
+
 PHP_METHOD(Ice_Mvc_Model, setFilters) {
 
        zval *filters;
@@ -287,7 +301,7 @@
                ZEPHIR_CALL_METHOD(&_12$$6, this_ptr, "loadone", NULL, 0, 
filters);
                zephir_check_call_status();
                if (!(zephir_is_true(_12$$6))) {
-                       ZEPHIR_THROW_EXCEPTION_DEBUG_STR(ice_exception_ce, "Not 
Found", "ice/mvc/model.zep", 70);
+                       ZEPHIR_THROW_EXCEPTION_DEBUG_STR(ice_exception_ce, "Not 
Found", "ice/mvc/model.zep", 71);
                        return;
                }
        }
@@ -464,7 +478,7 @@
                        zephir_array_fast_append(_6$$4, data);
                        ZEPHIR_LAST_CALL_STATUS = 
zephir_create_instance_params(_4$$4, _5$$4, _6$$4 TSRMLS_CC);
                        zephir_check_call_status();
-                       zephir_array_append(&instances, _4$$4, PH_SEPARATE, 
"ice/mvc/model.zep", 155);
+                       zephir_array_append(&instances, _4$$4, PH_SEPARATE, 
"ice/mvc/model.zep", 156);
                }
                _3$$3->funcs->dtor(_3$$3 TSRMLS_CC);
        }
@@ -569,7 +583,7 @@
  * Prepare fields for validation on create/update.
  *
  * @param mixed fields Fields to save or valid fields
- * @param booleat primary Keept primary keys
+ * @param boolean primary Keep primary key
  * @return array
  */
 PHP_METHOD(Ice_Mvc_Model, fields) {
@@ -692,10 +706,10 @@
  */
 PHP_METHOD(Ice_Mvc_Model, create) {
 
-       zend_bool _8$$4;
-       zval *_5, *_29, *_32, *_41;
+       zend_bool _9$$4;
+       zval *_6, *_30, *_33, *_42;
        int ZEPHIR_LAST_CALL_STATUS;
-       zval *fields = NULL, *extra = NULL, *status = NULL, *_0 = NULL, *_1 = 
NULL, *_4, *_6, *_28, *_30, *_31, *_33, *_34, *_35 = NULL, *_40, *_2$$3 = NULL, 
*_3$$3 = NULL, *_7$$4, *_9$$4, *_11$$4, *_12$$4, *_13$$4, *_14$$4, *_15$$4, 
*_16$$4, *_17$$4, *_18$$4 = NULL, *_19$$4, *_20$$4 = NULL, *_21$$4, *_22$$4 = 
NULL, *_10$$5, *_23$$6, *_24$$6, *_25$$6, *_26$$6 = NULL, *_27$$6 = NULL, 
*_36$$8, *_37$$8 = NULL, *_38$$8, *_39$$8 = NULL;
+       zval *fields = NULL, *extra = NULL, *status = NULL, *_0 = NULL, *_1, 
*_2 = NULL, *_5, *_7, *_29, *_31, *_32, *_34, *_35, *_36 = NULL, *_41, *_3$$3 = 
NULL, *_4$$3 = NULL, *_8$$4, *_10$$4, *_12$$4, *_13$$4, *_14$$4, *_15$$4, 
*_16$$4, *_17$$4, *_18$$4, *_19$$4 = NULL, *_20$$4, *_21$$4 = NULL, *_22$$4, 
*_23$$4 = NULL, *_11$$5, *_24$$6, *_25$$6, *_26$$6, *_27$$6 = NULL, *_28$$6 = 
NULL, *_37$$8, *_38$$8 = NULL, *_39$$8, *_40$$8 = NULL;
 
        ZEPHIR_MM_GROW();
        zephir_fetch_params(1, 0, 2, &fields, &extra);
@@ -709,130 +723,132 @@
        }
 
 
-       ZEPHIR_INIT_VAR(_1);
-       ZVAL_BOOL(_1, 0);
-       ZEPHIR_CALL_METHOD(&_0, this_ptr, "fields", NULL, 0, fields, _1);
+       ZEPHIR_OBS_VAR(_1);
+       zephir_read_property_this(&_1, this_ptr, SL("autoincrement"), 
PH_NOISY_CC);
+       ZEPHIR_INIT_VAR(_2);
+       ZVAL_BOOL(_2, !zephir_is_true(_1));
+       ZEPHIR_CALL_METHOD(&_0, this_ptr, "fields", NULL, 0, fields, _2);
        zephir_check_call_status();
        ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdata", NULL, 0, _0);
        zephir_check_call_status();
        if (zephir_is_true(extra)) {
                ZEPHIR_CALL_METHOD(NULL, extra, "validate", NULL, 0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(&_2$$3, extra, "getmessages", NULL, 0);
+               ZEPHIR_CALL_METHOD(&_3$$3, extra, "getmessages", NULL, 0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(&_3$$3, _2$$3, "all", NULL, 0);
+               ZEPHIR_CALL_METHOD(&_4$$3, _3$$3, "all", NULL, 0);
                zephir_check_call_status();
-               zephir_update_property_this(this_ptr, SL("messages"), _3$$3 
TSRMLS_CC);
+               zephir_update_property_this(this_ptr, SL("messages"), _4$$3 
TSRMLS_CC);
        }
-       _4 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
-       ZEPHIR_INIT_VAR(_5);
-       zephir_create_array(_5, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(_5, this_ptr);
-       ZEPHIR_INIT_NVAR(_1);
-       ZVAL_STRING(_1, "model.before.validate", ZEPHIR_TEMP_PARAM_COPY);
-       ZEPHIR_CALL_METHOD(NULL, _4, "applyhook", NULL, 0, _1, _5);
-       zephir_check_temp_parameter(_1);
-       zephir_check_call_status();
-       _6 = zephir_fetch_nproperty_this(this_ptr, SL("rules"), PH_NOISY_CC);
-       if (zephir_fast_count_int(_6 TSRMLS_CC)) {
-               ZEPHIR_OBS_VAR(_7$$4);
-               zephir_read_property_this(&_7$$4, this_ptr, SL("validation"), 
PH_NOISY_CC);
-               _8$$4 = Z_TYPE_P(_7$$4) == IS_OBJECT;
-               if (_8$$4) {
-                       ZEPHIR_OBS_VAR(_9$$4);
-                       zephir_read_property_this(&_9$$4, this_ptr, 
SL("validation"), PH_NOISY_CC);
-                       _8$$4 = zephir_instance_of_ev(_9$$4, ice_validation_ce 
TSRMLS_CC);
+       _5 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
+       ZEPHIR_INIT_VAR(_6);
+       zephir_create_array(_6, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(_6, this_ptr);
+       ZEPHIR_INIT_NVAR(_2);
+       ZVAL_STRING(_2, "model.before.validate", ZEPHIR_TEMP_PARAM_COPY);
+       ZEPHIR_CALL_METHOD(NULL, _5, "applyhook", NULL, 0, _2, _6);
+       zephir_check_temp_parameter(_2);
+       zephir_check_call_status();
+       _7 = zephir_fetch_nproperty_this(this_ptr, SL("rules"), PH_NOISY_CC);
+       if (zephir_fast_count_int(_7 TSRMLS_CC)) {
+               ZEPHIR_OBS_VAR(_8$$4);
+               zephir_read_property_this(&_8$$4, this_ptr, SL("validation"), 
PH_NOISY_CC);
+               _9$$4 = Z_TYPE_P(_8$$4) == IS_OBJECT;
+               if (_9$$4) {
+                       ZEPHIR_OBS_VAR(_10$$4);
+                       zephir_read_property_this(&_10$$4, this_ptr, 
SL("validation"), PH_NOISY_CC);
+                       _9$$4 = zephir_instance_of_ev(_10$$4, ice_validation_ce 
TSRMLS_CC);
                }
-               if (!(_8$$4)) {
-                       ZEPHIR_INIT_VAR(_10$$5);
-                       object_init_ex(_10$$5, ice_validation_ce);
-                       ZEPHIR_CALL_METHOD(NULL, _10$$5, "__construct", NULL, 
11);
+               if (!(_9$$4)) {
+                       ZEPHIR_INIT_VAR(_11$$5);
+                       object_init_ex(_11$$5, ice_validation_ce);
+                       ZEPHIR_CALL_METHOD(NULL, _11$$5, "__construct", NULL, 
11);
                        zephir_check_call_status();
-                       zephir_update_property_this(this_ptr, SL("validation"), 
_10$$5 TSRMLS_CC);
+                       zephir_update_property_this(this_ptr, SL("validation"), 
_11$$5 TSRMLS_CC);
                }
-               _11$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
-               _12$$4 = zephir_fetch_nproperty_this(this_ptr, SL("rules"), 
PH_NOISY_CC);
-               ZEPHIR_CALL_METHOD(NULL, _11$$4, "rules", NULL, 0, _12$$4);
+               _12$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
+               _13$$4 = zephir_fetch_nproperty_this(this_ptr, SL("rules"), 
PH_NOISY_CC);
+               ZEPHIR_CALL_METHOD(NULL, _12$$4, "rules", NULL, 0, _13$$4);
                zephir_check_call_status();
-               _13$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
-               _14$$4 = zephir_fetch_nproperty_this(this_ptr, SL("filters"), 
PH_NOISY_CC);
-               ZEPHIR_CALL_METHOD(NULL, _13$$4, "setfilters", NULL, 0, _14$$4);
+               _14$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
+               _15$$4 = zephir_fetch_nproperty_this(this_ptr, SL("filters"), 
PH_NOISY_CC);
+               ZEPHIR_CALL_METHOD(NULL, _14$$4, "setfilters", NULL, 0, _15$$4);
                zephir_check_call_status();
-               _15$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
-               _16$$4 = zephir_fetch_nproperty_this(this_ptr, SL("labels"), 
PH_NOISY_CC);
-               ZEPHIR_CALL_METHOD(NULL, _15$$4, "setlabels", NULL, 0, _16$$4);
+               _16$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
+               _17$$4 = zephir_fetch_nproperty_this(this_ptr, SL("labels"), 
PH_NOISY_CC);
+               ZEPHIR_CALL_METHOD(NULL, _16$$4, "setlabels", NULL, 0, _17$$4);
                zephir_check_call_status();
-               _17$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
-               ZEPHIR_CALL_METHOD(&_18$$4, this_ptr, "getdata", NULL, 0);
+               _18$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
+               ZEPHIR_CALL_METHOD(&_19$$4, this_ptr, "getdata", NULL, 0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(NULL, _17$$4, "validate", NULL, 0, _18$$4);
+               ZEPHIR_CALL_METHOD(NULL, _18$$4, "validate", NULL, 0, _19$$4);
                zephir_check_call_status();
-               _19$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
-               ZEPHIR_CALL_METHOD(&_20$$4, _19$$4, "getvalues", NULL, 0);
+               _20$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
+               ZEPHIR_CALL_METHOD(&_21$$4, _20$$4, "getvalues", NULL, 0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(NULL, this_ptr, "replace", NULL, 0, _20$$4);
+               ZEPHIR_CALL_METHOD(NULL, this_ptr, "replace", NULL, 0, _21$$4);
                zephir_check_call_status();
-               _21$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
-               ZEPHIR_CALL_METHOD(&_22$$4, _21$$4, "valid", NULL, 0);
+               _22$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
+               ZEPHIR_CALL_METHOD(&_23$$4, _22$$4, "valid", NULL, 0);
                zephir_check_call_status();
-               if (!(zephir_is_true(_22$$4))) {
-                       ZEPHIR_INIT_VAR(_23$$6);
-                       _24$$6 = zephir_fetch_nproperty_this(this_ptr, 
SL("messages"), PH_NOISY_CC);
-                       _25$$6 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
-                       ZEPHIR_CALL_METHOD(&_26$$6, _25$$6, "getmessages", 
NULL, 0);
+               if (!(zephir_is_true(_23$$4))) {
+                       ZEPHIR_INIT_VAR(_24$$6);
+                       _25$$6 = zephir_fetch_nproperty_this(this_ptr, 
SL("messages"), PH_NOISY_CC);
+                       _26$$6 = zephir_fetch_nproperty_this(this_ptr, 
SL("validation"), PH_NOISY_CC);
+                       ZEPHIR_CALL_METHOD(&_27$$6, _26$$6, "getmessages", 
NULL, 0);
                        zephir_check_call_status();
-                       ZEPHIR_CALL_METHOD(&_27$$6, _26$$6, "all", NULL, 0);
+                       ZEPHIR_CALL_METHOD(&_28$$6, _27$$6, "all", NULL, 0);
                        zephir_check_call_status();
-                       zephir_fast_array_merge(_23$$6, &(_24$$6), &(_27$$6) 
TSRMLS_CC);
-                       zephir_update_property_this(this_ptr, SL("messages"), 
_23$$6 TSRMLS_CC);
+                       zephir_fast_array_merge(_24$$6, &(_25$$6), &(_28$$6) 
TSRMLS_CC);
+                       zephir_update_property_this(this_ptr, SL("messages"), 
_24$$6 TSRMLS_CC);
                }
        }
-       _28 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
-       ZEPHIR_INIT_VAR(_29);
-       zephir_create_array(_29, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(_29, this_ptr);
-       ZEPHIR_INIT_NVAR(_1);
-       ZVAL_STRING(_1, "model.after.validate", ZEPHIR_TEMP_PARAM_COPY);
-       ZEPHIR_CALL_METHOD(NULL, _28, "applyhook", NULL, 0, _1, _29);
-       zephir_check_temp_parameter(_1);
+       _29 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
+       ZEPHIR_INIT_VAR(_30);
+       zephir_create_array(_30, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(_30, this_ptr);
+       ZEPHIR_INIT_NVAR(_2);
+       ZVAL_STRING(_2, "model.after.validate", ZEPHIR_TEMP_PARAM_COPY);
+       ZEPHIR_CALL_METHOD(NULL, _29, "applyhook", NULL, 0, _2, _30);
+       zephir_check_temp_parameter(_2);
        zephir_check_call_status();
-       _30 = zephir_fetch_nproperty_this(this_ptr, SL("messages"), 
PH_NOISY_CC);
-       if (zephir_fast_count_int(_30 TSRMLS_CC)) {
+       _31 = zephir_fetch_nproperty_this(this_ptr, SL("messages"), 
PH_NOISY_CC);
+       if (zephir_fast_count_int(_31 TSRMLS_CC)) {
                RETURN_MM_BOOL(0);
        }
-       _31 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
-       ZEPHIR_INIT_VAR(_32);
-       zephir_create_array(_32, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(_32, this_ptr);
-       ZEPHIR_INIT_NVAR(_1);
-       ZVAL_STRING(_1, "model.before.create", ZEPHIR_TEMP_PARAM_COPY);
-       ZEPHIR_CALL_METHOD(NULL, _31, "applyhook", NULL, 0, _1, _32);
-       zephir_check_temp_parameter(_1);
-       zephir_check_call_status();
-       _33 = zephir_fetch_nproperty_this(this_ptr, SL("db"), PH_NOISY_CC);
-       _34 = zephir_fetch_nproperty_this(this_ptr, SL("from"), PH_NOISY_CC);
-       ZEPHIR_CALL_METHOD(&_35, this_ptr, "getdata", NULL, 0);
+       _32 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
+       ZEPHIR_INIT_VAR(_33);
+       zephir_create_array(_33, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(_33, this_ptr);
+       ZEPHIR_INIT_NVAR(_2);
+       ZVAL_STRING(_2, "model.before.create", ZEPHIR_TEMP_PARAM_COPY);
+       ZEPHIR_CALL_METHOD(NULL, _32, "applyhook", NULL, 0, _2, _33);
+       zephir_check_temp_parameter(_2);
        zephir_check_call_status();
-       ZEPHIR_CALL_METHOD(&status, _33, "insert", NULL, 0, _34, _35);
+       _34 = zephir_fetch_nproperty_this(this_ptr, SL("db"), PH_NOISY_CC);
+       _35 = zephir_fetch_nproperty_this(this_ptr, SL("from"), PH_NOISY_CC);
+       ZEPHIR_CALL_METHOD(&_36, this_ptr, "getdata", NULL, 0);
+       zephir_check_call_status();
+       ZEPHIR_CALL_METHOD(&status, _34, "insert", NULL, 0, _35, _36);
        zephir_check_call_status();
        if (zephir_is_true(status)) {
-               _36$$8 = zephir_fetch_nproperty_this(this_ptr, SL("db"), 
PH_NOISY_CC);
-               ZEPHIR_CALL_METHOD(&_37$$8, _36$$8, "getid", NULL, 0);
+               _37$$8 = zephir_fetch_nproperty_this(this_ptr, SL("db"), 
PH_NOISY_CC);
+               ZEPHIR_CALL_METHOD(&_38$$8, _37$$8, "getid", NULL, 0);
                zephir_check_call_status();
-               _38$$8 = zephir_fetch_nproperty_this(this_ptr, SL("db"), 
PH_NOISY_CC);
-               ZEPHIR_CALL_METHOD(&_39$$8, _38$$8, "getlastinsertid", NULL, 0);
+               _39$$8 = zephir_fetch_nproperty_this(this_ptr, SL("db"), 
PH_NOISY_CC);
+               ZEPHIR_CALL_METHOD(&_40$$8, _39$$8, "getlastinsertid", NULL, 0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(NULL, this_ptr, "set", NULL, 0, _37$$8, 
_39$$8);
+               ZEPHIR_CALL_METHOD(NULL, this_ptr, "set", NULL, 0, _38$$8, 
_40$$8);
                zephir_check_call_status();
        }
-       _40 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
-       ZEPHIR_INIT_VAR(_41);
-       zephir_create_array(_41, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(_41, this_ptr);
-       ZEPHIR_INIT_NVAR(_1);
-       ZVAL_STRING(_1, "model.after.create", ZEPHIR_TEMP_PARAM_COPY);
-       ZEPHIR_CALL_METHOD(NULL, _40, "applyhook", NULL, 0, _1, _41);
-       zephir_check_temp_parameter(_1);
+       _41 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
+       ZEPHIR_INIT_VAR(_42);
+       zephir_create_array(_42, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(_42, this_ptr);
+       ZEPHIR_INIT_NVAR(_2);
+       ZVAL_STRING(_2, "model.after.create", ZEPHIR_TEMP_PARAM_COPY);
+       ZEPHIR_CALL_METHOD(NULL, _41, "applyhook", NULL, 0, _2, _42);
+       zephir_check_temp_parameter(_2);
        zephir_check_call_status();
        RETURN_CCTOR(status);
 
@@ -856,10 +872,10 @@
        HashTable *_3$$3;
        HashPosition _2$$3;
        zend_bool _18;
-       zval *_15, *_32, *_35, *_41;
+       zval *_15, *_32, *_35, *_42;
        zephir_fcall_cache_entry *_6 = NULL, *_11 = NULL;
        int ZEPHIR_LAST_CALL_STATUS;
-       zval *fields = NULL, *extra = NULL, *data = NULL, *status = NULL, 
*primary = NULL, *key = NULL, *_0, *_10 = NULL, *_14, *_16 = NULL, *_17, *_19, 
*_31, *_33, *_34, *_36, *_37, *_38 = NULL, *_39 = NULL, *_40, *_1$$3, **_4$$3, 
*_5$$4 = NULL, *_7$$5, *_8$$5 = NULL, *_9$$5, *_12$$6 = NULL, *_13$$6 = NULL, 
*_20$$7, *_21$$7 = NULL, *_22$$7, *_23$$7 = NULL, *_24$$7, *_25$$7 = NULL, 
*_26$$8, *_27$$8, *_28$$8, *_29$$8 = NULL, *_30$$8 = NULL;
+       zval *fields = NULL, *extra = NULL, *data = NULL, *status = NULL, 
*primary = NULL, *key = NULL, *_0, *_10 = NULL, *_14, *_16 = NULL, *_17, *_19, 
*_31, *_33, *_34, *_36, *_37, *_38 = NULL, *_39 = NULL, *_40, *_41, *_1$$3, 
**_4$$3, *_5$$4 = NULL, *_7$$5, *_8$$5 = NULL, *_9$$5, *_12$$6 = NULL, *_13$$6 
= NULL, *_20$$7, *_21$$7 = NULL, *_22$$7, *_23$$7 = NULL, *_24$$7, *_25$$7 = 
NULL, *_26$$8, *_27$$8, *_28$$8, *_29$$8 = NULL, *_30$$8 = NULL;
 
        ZEPHIR_MM_GROW();
        zephir_fetch_params(1, 0, 2, &fields, &extra);
@@ -881,7 +897,7 @@
        zephir_read_property_this(&_0, this_ptr, SL("primary"), PH_NOISY_CC);
        if (Z_TYPE_P(_0) == IS_ARRAY) {
                _1$$3 = zephir_fetch_nproperty_this(this_ptr, SL("primary"), 
PH_NOISY_CC);
-               zephir_is_iterable(_1$$3, &_3$$3, &_2$$3, 0, 0, 
"ice/mvc/model.zep", 354);
+               zephir_is_iterable(_1$$3, &_3$$3, &_2$$3, 0, 0, 
"ice/mvc/model.zep", 355);
                for (
                  ; zephir_hash_get_current_data_ex(_3$$3, (void**) &_4$$3, 
&_2$$3) == SUCCESS
                  ; zephir_hash_move_forward_ex(_3$$3, &_2$$3)
@@ -985,8 +1001,10 @@
        _37 = zephir_fetch_nproperty_this(this_ptr, SL("from"), PH_NOISY_CC);
        ZEPHIR_CALL_METHOD(&_39, this_ptr, "getdata", NULL, 0);
        zephir_check_call_status();
+       ZEPHIR_OBS_VAR(_40);
+       zephir_read_property_this(&_40, this_ptr, SL("autoincrement"), 
PH_NOISY_CC);
        ZEPHIR_INIT_NVAR(_16);
-       ZVAL_BOOL(_16, 0);
+       ZVAL_BOOL(_16, !zephir_is_true(_40));
        ZEPHIR_CALL_METHOD(&_38, this_ptr, "fields", &_11, 0, _39, _16);
        zephir_check_call_status();
        ZEPHIR_CALL_METHOD(&status, _36, "update", NULL, 0, _37, primary, _38);
@@ -995,13 +1013,13 @@
                ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdata", NULL, 0, data);
                zephir_check_call_status();
        }
-       _40 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
-       ZEPHIR_INIT_VAR(_41);
-       zephir_create_array(_41, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(_41, this_ptr);
+       _41 = zephir_fetch_nproperty_this(this_ptr, SL("di"), PH_NOISY_CC);
+       ZEPHIR_INIT_VAR(_42);
+       zephir_create_array(_42, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(_42, this_ptr);
        ZEPHIR_INIT_NVAR(_16);
        ZVAL_STRING(_16, "model.after.update", ZEPHIR_TEMP_PARAM_COPY);
-       ZEPHIR_CALL_METHOD(NULL, _40, "applyhook", NULL, 0, _16, _41);
+       ZEPHIR_CALL_METHOD(NULL, _41, "applyhook", NULL, 0, _16, _42);
        zephir_check_temp_parameter(_16);
        zephir_check_call_status();
        RETURN_CCTOR(status);
@@ -1100,7 +1118,7 @@
                zephir_read_property_this(&_0$$3, this_ptr, SL("primary"), 
PH_NOISY_CC);
                if (Z_TYPE_P(_0$$3) == IS_ARRAY) {
                        _1$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("primary"), PH_NOISY_CC);
-                       zephir_is_iterable(_1$$4, &_3$$4, &_2$$4, 0, 0, 
"ice/mvc/model.zep", 456);
+                       zephir_is_iterable(_1$$4, &_3$$4, &_2$$4, 0, 0, 
"ice/mvc/model.zep", 457);
                        for (
                          ; zephir_hash_get_current_data_ex(_3$$4, (void**) 
&_4$$4, &_2$$4) == SUCCESS
                          ; zephir_hash_move_forward_ex(_3$$4, &_2$$4)
@@ -1162,7 +1180,7 @@
                zephir_read_property_this(&_0$$3, this_ptr, SL("primary"), 
PH_NOISY_CC);
                if (Z_TYPE_P(_0$$3) == IS_ARRAY) {
                        _1$$4 = zephir_fetch_nproperty_this(this_ptr, 
SL("primary"), PH_NOISY_CC);
-                       zephir_is_iterable(_1$$4, &_3$$4, &_2$$4, 0, 0, 
"ice/mvc/model.zep", 487);
+                       zephir_is_iterable(_1$$4, &_3$$4, &_2$$4, 0, 0, 
"ice/mvc/model.zep", 488);
                        for (
                          ; zephir_hash_get_current_data_ex(_3$$4, (void**) 
&_4$$4, &_2$$4) == SUCCESS
                          ; zephir_hash_move_forward_ex(_3$$4, &_2$$4)
@@ -1452,7 +1470,7 @@
                zephir_check_call_status();
                ZEPHIR_CALL_METHOD(NULL, _1$$3, "__construct", NULL, 13, _3$$3);
                zephir_check_call_status();
-               zephir_throw_exception_debug(_1$$3, "ice/mvc/model.zep", 638 
TSRMLS_CC);
+               zephir_throw_exception_debug(_1$$3, "ice/mvc/model.zep", 639 
TSRMLS_CC);
                ZEPHIR_MM_RESTORE();
                return;
        }
@@ -1466,7 +1484,7 @@
        zephir_get_class_ns(_4, referenceModel, 0 TSRMLS_CC);
        ZEPHIR_INIT_VAR(from);
        zephir_uncamelize(from, _4, NULL  );
-       zephir_array_fetch_string(&_5, relation, SL("type"), PH_NOISY | 
PH_READONLY, "ice/mvc/model.zep", 647 TSRMLS_CC);
+       zephir_array_fetch_string(&_5, relation, SL("type"), PH_NOISY | 
PH_READONLY, "ice/mvc/model.zep", 648 TSRMLS_CC);
        do {
                if (ZEPHIR_IS_LONG(_5, 1) || ZEPHIR_IS_LONG(_5, 2)) {
                        ZEPHIR_INIT_VAR(_6$$4);
@@ -1551,7 +1569,7 @@
                if (Z_TYPE_P(fields) == IS_ARRAY) {
                        ZEPHIR_INIT_VAR(rules);
                        array_init(rules);
-                       zephir_is_iterable(fields, &_3$$4, &_2$$4, 0, 0, 
"ice/mvc/model.zep", 698);
+                       zephir_is_iterable(fields, &_3$$4, &_2$$4, 0, 0, 
"ice/mvc/model.zep", 699);
                        for (
                          ; zephir_hash_get_current_data_ex(_3$$4, (void**) 
&_4$$4, &_2$$4) == SUCCESS
                          ; zephir_hash_move_forward_ex(_3$$4, &_2$$4)
@@ -1560,14 +1578,14 @@
                                _5$$5 = zephir_fetch_nproperty_this(this_ptr, 
SL("rules"), PH_NOISY_CC);
                                if (zephir_array_isset(_5$$5, field)) {
                                        _6$$6 = 
zephir_fetch_nproperty_this(this_ptr, SL("rules"), PH_NOISY_CC);
-                                       zephir_array_fetch(&_7$$6, _6$$6, 
field, PH_NOISY | PH_READONLY, "ice/mvc/model.zep", 694 TSRMLS_CC);
+                                       zephir_array_fetch(&_7$$6, _6$$6, 
field, PH_NOISY | PH_READONLY, "ice/mvc/model.zep", 695 TSRMLS_CC);
                                        zephir_array_update_zval(&rules, field, 
&_7$$6, PH_COPY | PH_SEPARATE);
                                }
                        }
                        RETURN_CCTOR(rules);
                } else if (_0$$3) {
                        _8$$7 = zephir_fetch_nproperty_this(this_ptr, 
SL("rules"), PH_NOISY_CC);
-                       zephir_array_fetch(&_9$$7, _8$$7, fields, PH_NOISY | 
PH_READONLY, "ice/mvc/model.zep", 700 TSRMLS_CC);
+                       zephir_array_fetch(&_9$$7, _8$$7, fields, PH_NOISY | 
PH_READONLY, "ice/mvc/model.zep", 701 TSRMLS_CC);
                        RETURN_CTOR(_9$$7);
                }
        }
@@ -1712,7 +1730,7 @@
        zephir_check_call_status();
        ZEPHIR_CALL_METHOD(NULL, _3, "__construct", NULL, 13, _5);
        zephir_check_call_status();
-       zephir_throw_exception_debug(_3, "ice/mvc/model.zep", 755 TSRMLS_CC);
+       zephir_throw_exception_debug(_3, "ice/mvc/model.zep", 756 TSRMLS_CC);
        ZEPHIR_MM_RESTORE();
        return;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/build/php5/ice/mvc/model.zep.h 
new/framework-1.2.4/build/php5/ice/mvc/model.zep.h
--- old/framework-1.2.3/build/php5/ice/mvc/model.zep.h  2017-01-08 
19:53:34.000000000 +0100
+++ new/framework-1.2.4/build/php5/ice/mvc/model.zep.h  2017-01-15 
19:16:39.000000000 +0100
@@ -8,6 +8,7 @@
 PHP_METHOD(Ice_Mvc_Model, setFrom);
 PHP_METHOD(Ice_Mvc_Model, setPrimary);
 PHP_METHOD(Ice_Mvc_Model, getPrimary);
+PHP_METHOD(Ice_Mvc_Model, setAutoincrement);
 PHP_METHOD(Ice_Mvc_Model, setFilters);
 PHP_METHOD(Ice_Mvc_Model, getFilters);
 PHP_METHOD(Ice_Mvc_Model, setFields);
@@ -52,6 +53,10 @@
        ZEND_ARG_INFO(0, primary)
 ZEND_END_ARG_INFO()
 
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ice_mvc_model_setautoincrement, 0, 0, 1)
+       ZEND_ARG_INFO(0, autoincrement)
+ZEND_END_ARG_INFO()
+
 ZEND_BEGIN_ARG_INFO_EX(arginfo_ice_mvc_model_setfilters, 0, 0, 1)
        ZEND_ARG_INFO(0, filters)
 ZEND_END_ARG_INFO()
@@ -181,6 +186,7 @@
        PHP_ME(Ice_Mvc_Model, setFrom, arginfo_ice_mvc_model_setfrom, 
ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, setPrimary, arginfo_ice_mvc_model_setprimary, 
ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, getPrimary, NULL, ZEND_ACC_PUBLIC)
+       PHP_ME(Ice_Mvc_Model, setAutoincrement, 
arginfo_ice_mvc_model_setautoincrement, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, setFilters, arginfo_ice_mvc_model_setfilters, 
ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, getFilters, NULL, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, setFields, arginfo_ice_mvc_model_setfields, 
ZEND_ACC_PUBLIC)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/build/php5/ice/version.zep.c 
new/framework-1.2.4/build/php5/ice/version.zep.c
--- old/framework-1.2.3/build/php5/ice/version.zep.c    2017-01-08 
19:53:34.000000000 +0100
+++ new/framework-1.2.4/build/php5/ice/version.zep.c    2017-01-15 
19:16:39.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"), 3 
TSRMLS_CC);
+       zend_declare_class_constant_long(ice_version_ce, SL("PATCH"), 4 
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"), 3);
+       add_assoc_long_ex(return_value, SS("patch"), 4);
        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, 3);
+       ZVAL_LONG(&_9, 4);
        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, 3);
+       ZVAL_LONG(&_2, 4);
        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.3/build/php5/php_ice.h 
new/framework-1.2.4/build/php5/php_ice.h
--- old/framework-1.2.3/build/php5/php_ice.h    2017-01-08 19:53:34.000000000 
+0100
+++ new/framework-1.2.4/build/php5/php_ice.h    2017-01-15 19:16:39.000000000 
+0100
@@ -11,7 +11,7 @@
 #include "kernel/globals.h"
 
 #define PHP_ICE_NAME        "ice"
-#define PHP_ICE_VERSION     "1.2.3"
+#define PHP_ICE_VERSION     "1.2.4"
 #define PHP_ICE_EXTNAME     "ice"
 #define PHP_ICE_AUTHOR      "Ice Team"
 #define PHP_ICE_ZEPVERSION  "0.9.6a-dev-72dbb2063e"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/build/php7/ice/mvc/model.zep.c 
new/framework-1.2.4/build/php7/ice/mvc/model.zep.c
--- old/framework-1.2.3/build/php7/ice/mvc/model.zep.c  2017-01-08 
19:53:34.000000000 +0100
+++ new/framework-1.2.4/build/php7/ice/mvc/model.zep.c  2017-01-15 
19:16:39.000000000 +0100
@@ -46,6 +46,8 @@
 
        zend_declare_property_null(ice_mvc_model_ce, SL("primary"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
 
+       zend_declare_property_bool(ice_mvc_model_ce, SL("autoincrement"), 1, 
ZEND_ACC_PROTECTED TSRMLS_CC);
+
        zend_declare_property_null(ice_mvc_model_ce, SL("filters"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
 
        zend_declare_property_null(ice_mvc_model_ce, SL("fields"), 
ZEND_ACC_PROTECTED TSRMLS_CC);
@@ -129,6 +131,21 @@
 
 }
 
+PHP_METHOD(Ice_Mvc_Model, setAutoincrement) {
+
+       zval *autoincrement, autoincrement_sub;
+       ZEPHIR_INIT_THIS();
+
+       ZVAL_UNDEF(&autoincrement_sub);
+
+       zephir_fetch_params(0, 1, 0, &autoincrement);
+
+
+
+       zephir_update_property_zval(this_ptr, SL("autoincrement"), 
autoincrement);
+
+}
+
 PHP_METHOD(Ice_Mvc_Model, setFilters) {
 
        zval *filters, filters_sub;
@@ -333,7 +350,7 @@
                ZEPHIR_CALL_METHOD(&_12$$6, this_ptr, "loadone", NULL, 0, 
filters);
                zephir_check_call_status();
                if (!(zephir_is_true(&_12$$6))) {
-                       ZEPHIR_THROW_EXCEPTION_DEBUG_STR(ice_exception_ce, "Not 
Found", "ice/mvc/model.zep", 70);
+                       ZEPHIR_THROW_EXCEPTION_DEBUG_STR(ice_exception_ce, "Not 
Found", "ice/mvc/model.zep", 71);
                        return;
                }
        }
@@ -545,7 +562,7 @@
                        zephir_array_fast_append(&_6$$4, &data);
                        ZEPHIR_LAST_CALL_STATUS = 
zephir_create_instance_params(&_4$$4, &_5$$4, &_6$$4 TSRMLS_CC);
                        zephir_check_call_status();
-                       zephir_array_append(&instances, &_4$$4, PH_SEPARATE, 
"ice/mvc/model.zep", 155);
+                       zephir_array_append(&instances, &_4$$4, PH_SEPARATE, 
"ice/mvc/model.zep", 156);
                }
                zend_iterator_dtor(_3$$3);
        }
@@ -668,7 +685,7 @@
  * Prepare fields for validation on create/update.
  *
  * @param mixed fields Fields to save or valid fields
- * @param booleat primary Keept primary keys
+ * @param boolean primary Keep primary key
  * @return array
  */
 PHP_METHOD(Ice_Mvc_Model, fields) {
@@ -819,10 +836,10 @@
  */
 PHP_METHOD(Ice_Mvc_Model, create) {
 
-       zend_bool _8$$4;
-       zval _4, _29, _32, _41;
+       zend_bool _9$$4;
+       zval _5, _30, _33, _42;
        int ZEPHIR_LAST_CALL_STATUS;
-       zval *fields = NULL, fields_sub, *extra = NULL, extra_sub, __$null, 
status, _0, _1, _5, _6, _28, _30, _31, _33, _34, _35, _40, _2$$3, _3$$3, _7$$4, 
_9$$4, _11$$4, _12$$4, _13$$4, _14$$4, _15$$4, _16$$4, _17$$4, _18$$4, _19$$4, 
_20$$4, _21$$4, _22$$4, _10$$5, _23$$6, _24$$6, _25$$6, _26$$6, _27$$6, _36$$8, 
_37$$8, _38$$8, _39$$8;
+       zval *fields = NULL, fields_sub, *extra = NULL, extra_sub, __$null, 
status, _0, _1, _2, _6, _7, _29, _31, _32, _34, _35, _36, _41, _3$$3, _4$$3, 
_8$$4, _10$$4, _12$$4, _13$$4, _14$$4, _15$$4, _16$$4, _17$$4, _18$$4, _19$$4, 
_20$$4, _21$$4, _22$$4, _23$$4, _11$$5, _24$$6, _25$$6, _26$$6, _27$$6, _28$$6, 
_37$$8, _38$$8, _39$$8, _40$$8;
        ZEPHIR_INIT_THIS();
 
        ZVAL_UNDEF(&fields_sub);
@@ -831,20 +848,20 @@
        ZVAL_UNDEF(&status);
        ZVAL_UNDEF(&_0);
        ZVAL_UNDEF(&_1);
-       ZVAL_UNDEF(&_5);
+       ZVAL_UNDEF(&_2);
        ZVAL_UNDEF(&_6);
-       ZVAL_UNDEF(&_28);
-       ZVAL_UNDEF(&_30);
+       ZVAL_UNDEF(&_7);
+       ZVAL_UNDEF(&_29);
        ZVAL_UNDEF(&_31);
-       ZVAL_UNDEF(&_33);
+       ZVAL_UNDEF(&_32);
        ZVAL_UNDEF(&_34);
        ZVAL_UNDEF(&_35);
-       ZVAL_UNDEF(&_40);
-       ZVAL_UNDEF(&_2$$3);
+       ZVAL_UNDEF(&_36);
+       ZVAL_UNDEF(&_41);
        ZVAL_UNDEF(&_3$$3);
-       ZVAL_UNDEF(&_7$$4);
-       ZVAL_UNDEF(&_9$$4);
-       ZVAL_UNDEF(&_11$$4);
+       ZVAL_UNDEF(&_4$$3);
+       ZVAL_UNDEF(&_8$$4);
+       ZVAL_UNDEF(&_10$$4);
        ZVAL_UNDEF(&_12$$4);
        ZVAL_UNDEF(&_13$$4);
        ZVAL_UNDEF(&_14$$4);
@@ -856,20 +873,21 @@
        ZVAL_UNDEF(&_20$$4);
        ZVAL_UNDEF(&_21$$4);
        ZVAL_UNDEF(&_22$$4);
-       ZVAL_UNDEF(&_10$$5);
-       ZVAL_UNDEF(&_23$$6);
+       ZVAL_UNDEF(&_23$$4);
+       ZVAL_UNDEF(&_11$$5);
        ZVAL_UNDEF(&_24$$6);
        ZVAL_UNDEF(&_25$$6);
        ZVAL_UNDEF(&_26$$6);
        ZVAL_UNDEF(&_27$$6);
-       ZVAL_UNDEF(&_36$$8);
+       ZVAL_UNDEF(&_28$$6);
        ZVAL_UNDEF(&_37$$8);
        ZVAL_UNDEF(&_38$$8);
        ZVAL_UNDEF(&_39$$8);
-       ZVAL_UNDEF(&_4);
-       ZVAL_UNDEF(&_29);
-       ZVAL_UNDEF(&_32);
-       ZVAL_UNDEF(&_41);
+       ZVAL_UNDEF(&_40$$8);
+       ZVAL_UNDEF(&_5);
+       ZVAL_UNDEF(&_30);
+       ZVAL_UNDEF(&_33);
+       ZVAL_UNDEF(&_42);
 
        ZEPHIR_MM_GROW();
        zephir_fetch_params(1, 0, 2, &fields, &extra);
@@ -885,125 +903,127 @@
        }
 
 
-       ZVAL_BOOL(&_1, 0);
-       ZEPHIR_CALL_METHOD(&_0, this_ptr, "fields", NULL, 0, fields, &_1);
+       ZEPHIR_OBS_VAR(&_1);
+       zephir_read_property(&_1, this_ptr, SL("autoincrement"), PH_NOISY_CC);
+       ZVAL_BOOL(&_2, !zephir_is_true(&_1));
+       ZEPHIR_CALL_METHOD(&_0, this_ptr, "fields", NULL, 0, fields, &_2);
        zephir_check_call_status();
        ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdata", NULL, 0, &_0);
        zephir_check_call_status();
        if (zephir_is_true(extra)) {
                ZEPHIR_CALL_METHOD(NULL, extra, "validate", NULL, 0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(&_2$$3, extra, "getmessages", NULL, 0);
+               ZEPHIR_CALL_METHOD(&_3$$3, extra, "getmessages", NULL, 0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(&_3$$3, &_2$$3, "all", NULL, 0);
+               ZEPHIR_CALL_METHOD(&_4$$3, &_3$$3, "all", NULL, 0);
                zephir_check_call_status();
-               zephir_update_property_zval(this_ptr, SL("messages"), &_3$$3);
+               zephir_update_property_zval(this_ptr, SL("messages"), &_4$$3);
        }
-       zephir_read_property(&_1, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
-       ZEPHIR_INIT_VAR(&_4);
-       zephir_create_array(&_4, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(&_4, this_ptr);
+       zephir_read_property(&_2, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
        ZEPHIR_INIT_VAR(&_5);
-       ZVAL_STRING(&_5, "model.before.validate");
-       ZEPHIR_CALL_METHOD(NULL, &_1, "applyhook", NULL, 0, &_5, &_4);
-       zephir_check_call_status();
-       zephir_read_property(&_6, this_ptr, SL("rules"), PH_NOISY_CC | 
PH_READONLY);
-       if (zephir_fast_count_int(&_6 TSRMLS_CC)) {
-               ZEPHIR_OBS_VAR(&_7$$4);
-               zephir_read_property(&_7$$4, this_ptr, SL("validation"), 
PH_NOISY_CC);
-               _8$$4 = Z_TYPE_P(&_7$$4) == IS_OBJECT;
-               if (_8$$4) {
-                       ZEPHIR_OBS_VAR(&_9$$4);
-                       zephir_read_property(&_9$$4, this_ptr, 
SL("validation"), PH_NOISY_CC);
-                       _8$$4 = zephir_instance_of_ev(&_9$$4, ice_validation_ce 
TSRMLS_CC);
+       zephir_create_array(&_5, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(&_5, this_ptr);
+       ZEPHIR_INIT_VAR(&_6);
+       ZVAL_STRING(&_6, "model.before.validate");
+       ZEPHIR_CALL_METHOD(NULL, &_2, "applyhook", NULL, 0, &_6, &_5);
+       zephir_check_call_status();
+       zephir_read_property(&_7, this_ptr, SL("rules"), PH_NOISY_CC | 
PH_READONLY);
+       if (zephir_fast_count_int(&_7 TSRMLS_CC)) {
+               ZEPHIR_OBS_VAR(&_8$$4);
+               zephir_read_property(&_8$$4, this_ptr, SL("validation"), 
PH_NOISY_CC);
+               _9$$4 = Z_TYPE_P(&_8$$4) == IS_OBJECT;
+               if (_9$$4) {
+                       ZEPHIR_OBS_VAR(&_10$$4);
+                       zephir_read_property(&_10$$4, this_ptr, 
SL("validation"), PH_NOISY_CC);
+                       _9$$4 = zephir_instance_of_ev(&_10$$4, 
ice_validation_ce TSRMLS_CC);
                }
-               if (!(_8$$4)) {
-                       ZEPHIR_INIT_VAR(&_10$$5);
-                       object_init_ex(&_10$$5, ice_validation_ce);
-                       ZEPHIR_CALL_METHOD(NULL, &_10$$5, "__construct", NULL, 
11);
+               if (!(_9$$4)) {
+                       ZEPHIR_INIT_VAR(&_11$$5);
+                       object_init_ex(&_11$$5, ice_validation_ce);
+                       ZEPHIR_CALL_METHOD(NULL, &_11$$5, "__construct", NULL, 
11);
                        zephir_check_call_status();
-                       zephir_update_property_zval(this_ptr, SL("validation"), 
&_10$$5);
+                       zephir_update_property_zval(this_ptr, SL("validation"), 
&_11$$5);
                }
-               zephir_read_property(&_11$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
-               zephir_read_property(&_12$$4, this_ptr, SL("rules"), 
PH_NOISY_CC | PH_READONLY);
-               ZEPHIR_CALL_METHOD(NULL, &_11$$4, "rules", NULL, 0, &_12$$4);
+               zephir_read_property(&_12$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
+               zephir_read_property(&_13$$4, this_ptr, SL("rules"), 
PH_NOISY_CC | PH_READONLY);
+               ZEPHIR_CALL_METHOD(NULL, &_12$$4, "rules", NULL, 0, &_13$$4);
                zephir_check_call_status();
-               zephir_read_property(&_13$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
-               zephir_read_property(&_14$$4, this_ptr, SL("filters"), 
PH_NOISY_CC | PH_READONLY);
-               ZEPHIR_CALL_METHOD(NULL, &_13$$4, "setfilters", NULL, 0, 
&_14$$4);
+               zephir_read_property(&_14$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
+               zephir_read_property(&_15$$4, this_ptr, SL("filters"), 
PH_NOISY_CC | PH_READONLY);
+               ZEPHIR_CALL_METHOD(NULL, &_14$$4, "setfilters", NULL, 0, 
&_15$$4);
                zephir_check_call_status();
-               zephir_read_property(&_15$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
-               zephir_read_property(&_16$$4, this_ptr, SL("labels"), 
PH_NOISY_CC | PH_READONLY);
-               ZEPHIR_CALL_METHOD(NULL, &_15$$4, "setlabels", NULL, 0, 
&_16$$4);
+               zephir_read_property(&_16$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
+               zephir_read_property(&_17$$4, this_ptr, SL("labels"), 
PH_NOISY_CC | PH_READONLY);
+               ZEPHIR_CALL_METHOD(NULL, &_16$$4, "setlabels", NULL, 0, 
&_17$$4);
                zephir_check_call_status();
-               zephir_read_property(&_17$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
-               ZEPHIR_CALL_METHOD(&_18$$4, this_ptr, "getdata", NULL, 0);
+               zephir_read_property(&_18$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
+               ZEPHIR_CALL_METHOD(&_19$$4, this_ptr, "getdata", NULL, 0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(NULL, &_17$$4, "validate", NULL, 0, &_18$$4);
+               ZEPHIR_CALL_METHOD(NULL, &_18$$4, "validate", NULL, 0, &_19$$4);
                zephir_check_call_status();
-               zephir_read_property(&_19$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
-               ZEPHIR_CALL_METHOD(&_20$$4, &_19$$4, "getvalues", NULL, 0);
+               zephir_read_property(&_20$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
+               ZEPHIR_CALL_METHOD(&_21$$4, &_20$$4, "getvalues", NULL, 0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(NULL, this_ptr, "replace", NULL, 0, &_20$$4);
+               ZEPHIR_CALL_METHOD(NULL, this_ptr, "replace", NULL, 0, &_21$$4);
                zephir_check_call_status();
-               zephir_read_property(&_21$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
-               ZEPHIR_CALL_METHOD(&_22$$4, &_21$$4, "valid", NULL, 0);
+               zephir_read_property(&_22$$4, this_ptr, SL("validation"), 
PH_NOISY_CC | PH_READONLY);
+               ZEPHIR_CALL_METHOD(&_23$$4, &_22$$4, "valid", NULL, 0);
                zephir_check_call_status();
-               if (!(zephir_is_true(&_22$$4))) {
-                       ZEPHIR_INIT_VAR(&_23$$6);
-                       zephir_read_property(&_24$$6, this_ptr, SL("messages"), 
PH_NOISY_CC | PH_READONLY);
-                       zephir_read_property(&_25$$6, this_ptr, 
SL("validation"), PH_NOISY_CC | PH_READONLY);
-                       ZEPHIR_CALL_METHOD(&_26$$6, &_25$$6, "getmessages", 
NULL, 0);
+               if (!(zephir_is_true(&_23$$4))) {
+                       ZEPHIR_INIT_VAR(&_24$$6);
+                       zephir_read_property(&_25$$6, this_ptr, SL("messages"), 
PH_NOISY_CC | PH_READONLY);
+                       zephir_read_property(&_26$$6, this_ptr, 
SL("validation"), PH_NOISY_CC | PH_READONLY);
+                       ZEPHIR_CALL_METHOD(&_27$$6, &_26$$6, "getmessages", 
NULL, 0);
                        zephir_check_call_status();
-                       ZEPHIR_CALL_METHOD(&_27$$6, &_26$$6, "all", NULL, 0);
+                       ZEPHIR_CALL_METHOD(&_28$$6, &_27$$6, "all", NULL, 0);
                        zephir_check_call_status();
-                       zephir_fast_array_merge(&_23$$6, &_24$$6, &_27$$6 
TSRMLS_CC);
-                       zephir_update_property_zval(this_ptr, SL("messages"), 
&_23$$6);
+                       zephir_fast_array_merge(&_24$$6, &_25$$6, &_28$$6 
TSRMLS_CC);
+                       zephir_update_property_zval(this_ptr, SL("messages"), 
&_24$$6);
                }
        }
-       zephir_read_property(&_28, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
-       ZEPHIR_INIT_VAR(&_29);
-       zephir_create_array(&_29, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(&_29, this_ptr);
-       ZEPHIR_INIT_NVAR(&_5);
-       ZVAL_STRING(&_5, "model.after.validate");
-       ZEPHIR_CALL_METHOD(NULL, &_28, "applyhook", NULL, 0, &_5, &_29);
+       zephir_read_property(&_29, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
+       ZEPHIR_INIT_VAR(&_30);
+       zephir_create_array(&_30, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(&_30, this_ptr);
+       ZEPHIR_INIT_NVAR(&_6);
+       ZVAL_STRING(&_6, "model.after.validate");
+       ZEPHIR_CALL_METHOD(NULL, &_29, "applyhook", NULL, 0, &_6, &_30);
        zephir_check_call_status();
-       zephir_read_property(&_30, this_ptr, SL("messages"), PH_NOISY_CC | 
PH_READONLY);
-       if (zephir_fast_count_int(&_30 TSRMLS_CC)) {
+       zephir_read_property(&_31, this_ptr, SL("messages"), PH_NOISY_CC | 
PH_READONLY);
+       if (zephir_fast_count_int(&_31 TSRMLS_CC)) {
                RETURN_MM_BOOL(0);
        }
-       zephir_read_property(&_31, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
-       ZEPHIR_INIT_VAR(&_32);
-       zephir_create_array(&_32, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(&_32, this_ptr);
-       ZEPHIR_INIT_NVAR(&_5);
-       ZVAL_STRING(&_5, "model.before.create");
-       ZEPHIR_CALL_METHOD(NULL, &_31, "applyhook", NULL, 0, &_5, &_32);
-       zephir_check_call_status();
-       zephir_read_property(&_33, this_ptr, SL("db"), PH_NOISY_CC | 
PH_READONLY);
-       zephir_read_property(&_34, this_ptr, SL("from"), PH_NOISY_CC | 
PH_READONLY);
-       ZEPHIR_CALL_METHOD(&_35, this_ptr, "getdata", NULL, 0);
+       zephir_read_property(&_32, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
+       ZEPHIR_INIT_VAR(&_33);
+       zephir_create_array(&_33, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(&_33, this_ptr);
+       ZEPHIR_INIT_NVAR(&_6);
+       ZVAL_STRING(&_6, "model.before.create");
+       ZEPHIR_CALL_METHOD(NULL, &_32, "applyhook", NULL, 0, &_6, &_33);
        zephir_check_call_status();
-       ZEPHIR_CALL_METHOD(&status, &_33, "insert", NULL, 0, &_34, &_35);
+       zephir_read_property(&_34, this_ptr, SL("db"), PH_NOISY_CC | 
PH_READONLY);
+       zephir_read_property(&_35, this_ptr, SL("from"), PH_NOISY_CC | 
PH_READONLY);
+       ZEPHIR_CALL_METHOD(&_36, this_ptr, "getdata", NULL, 0);
+       zephir_check_call_status();
+       ZEPHIR_CALL_METHOD(&status, &_34, "insert", NULL, 0, &_35, &_36);
        zephir_check_call_status();
        if (zephir_is_true(&status)) {
-               zephir_read_property(&_36$$8, this_ptr, SL("db"), PH_NOISY_CC | 
PH_READONLY);
-               ZEPHIR_CALL_METHOD(&_37$$8, &_36$$8, "getid", NULL, 0);
+               zephir_read_property(&_37$$8, this_ptr, SL("db"), PH_NOISY_CC | 
PH_READONLY);
+               ZEPHIR_CALL_METHOD(&_38$$8, &_37$$8, "getid", NULL, 0);
                zephir_check_call_status();
-               zephir_read_property(&_38$$8, this_ptr, SL("db"), PH_NOISY_CC | 
PH_READONLY);
-               ZEPHIR_CALL_METHOD(&_39$$8, &_38$$8, "getlastinsertid", NULL, 
0);
+               zephir_read_property(&_39$$8, this_ptr, SL("db"), PH_NOISY_CC | 
PH_READONLY);
+               ZEPHIR_CALL_METHOD(&_40$$8, &_39$$8, "getlastinsertid", NULL, 
0);
                zephir_check_call_status();
-               ZEPHIR_CALL_METHOD(NULL, this_ptr, "set", NULL, 0, &_37$$8, 
&_39$$8);
+               ZEPHIR_CALL_METHOD(NULL, this_ptr, "set", NULL, 0, &_38$$8, 
&_40$$8);
                zephir_check_call_status();
        }
-       zephir_read_property(&_40, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
-       ZEPHIR_INIT_VAR(&_41);
-       zephir_create_array(&_41, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(&_41, this_ptr);
-       ZEPHIR_INIT_NVAR(&_5);
-       ZVAL_STRING(&_5, "model.after.create");
-       ZEPHIR_CALL_METHOD(NULL, &_40, "applyhook", NULL, 0, &_5, &_41);
+       zephir_read_property(&_41, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
+       ZEPHIR_INIT_VAR(&_42);
+       zephir_create_array(&_42, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(&_42, this_ptr);
+       ZEPHIR_INIT_NVAR(&_6);
+       ZVAL_STRING(&_6, "model.after.create");
+       ZEPHIR_CALL_METHOD(NULL, &_41, "applyhook", NULL, 0, &_6, &_42);
        zephir_check_call_status();
        RETURN_CCTOR(status);
 
@@ -1025,10 +1045,10 @@
 PHP_METHOD(Ice_Mvc_Model, update) {
 
        zend_bool _16;
-       zval _13, _30, _33, _39;
+       zval _13, _30, _33, _40;
        zephir_fcall_cache_entry *_4 = NULL, *_9 = NULL;
        int ZEPHIR_LAST_CALL_STATUS;
-       zval *fields = NULL, fields_sub, *extra = NULL, extra_sub, __$null, 
data, status, primary, key, _0, _8, _12, _14, _15, _17, _29, _31, _32, _34, 
_35, _36, _37, _38, _1$$3, *_2$$3, _3$$4, _5$$5, _6$$5, _7$$5, _10$$6, _11$$6, 
_18$$7, _19$$7, _20$$7, _21$$7, _22$$7, _23$$7, _24$$8, _25$$8, _26$$8, _27$$8, 
_28$$8;
+       zval *fields = NULL, fields_sub, *extra = NULL, extra_sub, __$null, 
data, status, primary, key, _0, _8, _12, _14, _15, _17, _29, _31, _32, _34, 
_35, _36, _37, _38, _39, _1$$3, *_2$$3, _3$$4, _5$$5, _6$$5, _7$$5, _10$$6, 
_11$$6, _18$$7, _19$$7, _20$$7, _21$$7, _22$$7, _23$$7, _24$$8, _25$$8, _26$$8, 
_27$$8, _28$$8;
        ZEPHIR_INIT_THIS();
 
        ZVAL_UNDEF(&fields_sub);
@@ -1052,6 +1072,7 @@
        ZVAL_UNDEF(&_36);
        ZVAL_UNDEF(&_37);
        ZVAL_UNDEF(&_38);
+       ZVAL_UNDEF(&_39);
        ZVAL_UNDEF(&_1$$3);
        ZVAL_UNDEF(&_3$$4);
        ZVAL_UNDEF(&_5$$5);
@@ -1073,7 +1094,7 @@
        ZVAL_UNDEF(&_13);
        ZVAL_UNDEF(&_30);
        ZVAL_UNDEF(&_33);
-       ZVAL_UNDEF(&_39);
+       ZVAL_UNDEF(&_40);
 
        ZEPHIR_MM_GROW();
        zephir_fetch_params(1, 0, 2, &fields, &extra);
@@ -1097,7 +1118,7 @@
        zephir_read_property(&_0, this_ptr, SL("primary"), PH_NOISY_CC);
        if (Z_TYPE_P(&_0) == IS_ARRAY) {
                zephir_read_property(&_1$$3, this_ptr, SL("primary"), 
PH_NOISY_CC | PH_READONLY);
-               zephir_is_iterable(&_1$$3, 0, "ice/mvc/model.zep", 354);
+               zephir_is_iterable(&_1$$3, 0, "ice/mvc/model.zep", 355);
                ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_1$$3), _2$$3)
                {
                        ZEPHIR_INIT_NVAR(&key);
@@ -1198,8 +1219,10 @@
        zephir_read_property(&_35, this_ptr, SL("from"), PH_NOISY_CC | 
PH_READONLY);
        ZEPHIR_CALL_METHOD(&_37, this_ptr, "getdata", NULL, 0);
        zephir_check_call_status();
-       ZVAL_BOOL(&_38, 0);
-       ZEPHIR_CALL_METHOD(&_36, this_ptr, "fields", &_9, 0, &_37, &_38);
+       ZEPHIR_OBS_VAR(&_38);
+       zephir_read_property(&_38, this_ptr, SL("autoincrement"), PH_NOISY_CC);
+       ZVAL_BOOL(&_39, !zephir_is_true(&_38));
+       ZEPHIR_CALL_METHOD(&_36, this_ptr, "fields", &_9, 0, &_37, &_39);
        zephir_check_call_status();
        ZEPHIR_CALL_METHOD(&status, &_34, "update", NULL, 0, &_35, &primary, 
&_36);
        zephir_check_call_status();
@@ -1207,13 +1230,13 @@
                ZEPHIR_CALL_METHOD(NULL, this_ptr, "setdata", NULL, 0, &data);
                zephir_check_call_status();
        }
-       zephir_read_property(&_38, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
-       ZEPHIR_INIT_VAR(&_39);
-       zephir_create_array(&_39, 1, 0 TSRMLS_CC);
-       zephir_array_fast_append(&_39, this_ptr);
+       zephir_read_property(&_39, this_ptr, SL("di"), PH_NOISY_CC | 
PH_READONLY);
+       ZEPHIR_INIT_VAR(&_40);
+       zephir_create_array(&_40, 1, 0 TSRMLS_CC);
+       zephir_array_fast_append(&_40, this_ptr);
        ZEPHIR_INIT_NVAR(&_14);
        ZVAL_STRING(&_14, "model.after.update");
-       ZEPHIR_CALL_METHOD(NULL, &_38, "applyhook", NULL, 0, &_14, &_39);
+       ZEPHIR_CALL_METHOD(NULL, &_39, "applyhook", NULL, 0, &_14, &_40);
        zephir_check_call_status();
        RETURN_CCTOR(status);
 
@@ -1331,7 +1354,7 @@
                zephir_read_property(&_0$$3, this_ptr, SL("primary"), 
PH_NOISY_CC);
                if (Z_TYPE_P(&_0$$3) == IS_ARRAY) {
                        zephir_read_property(&_1$$4, this_ptr, SL("primary"), 
PH_NOISY_CC | PH_READONLY);
-                       zephir_is_iterable(&_1$$4, 0, "ice/mvc/model.zep", 456);
+                       zephir_is_iterable(&_1$$4, 0, "ice/mvc/model.zep", 457);
                        ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_1$$4), _2$$4)
                        {
                                ZEPHIR_INIT_NVAR(&key);
@@ -1408,7 +1431,7 @@
                zephir_read_property(&_0$$3, this_ptr, SL("primary"), 
PH_NOISY_CC);
                if (Z_TYPE_P(&_0$$3) == IS_ARRAY) {
                        zephir_read_property(&_1$$4, this_ptr, SL("primary"), 
PH_NOISY_CC | PH_READONLY);
-                       zephir_is_iterable(&_1$$4, 0, "ice/mvc/model.zep", 487);
+                       zephir_is_iterable(&_1$$4, 0, "ice/mvc/model.zep", 488);
                        ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&_1$$4), _2$$4)
                        {
                                ZEPHIR_INIT_NVAR(&key);
@@ -1750,7 +1773,7 @@
                zephir_check_call_status();
                ZEPHIR_CALL_METHOD(NULL, &_1$$3, "__construct", NULL, 13, 
&_3$$3);
                zephir_check_call_status();
-               zephir_throw_exception_debug(&_1$$3, "ice/mvc/model.zep", 638 
TSRMLS_CC);
+               zephir_throw_exception_debug(&_1$$3, "ice/mvc/model.zep", 639 
TSRMLS_CC);
                ZEPHIR_MM_RESTORE();
                return;
        }
@@ -1764,7 +1787,7 @@
        zephir_get_class_ns(&_4, &referenceModel, 0 TSRMLS_CC);
        ZEPHIR_INIT_VAR(&from);
        zephir_uncamelize(&from, &_4, NULL  );
-       zephir_array_fetch_string(&_5, &relation, SL("type"), PH_NOISY | 
PH_READONLY, "ice/mvc/model.zep", 647 TSRMLS_CC);
+       zephir_array_fetch_string(&_5, &relation, SL("type"), PH_NOISY | 
PH_READONLY, "ice/mvc/model.zep", 648 TSRMLS_CC);
        do {
                if (ZEPHIR_IS_LONG(&_5, 1) || ZEPHIR_IS_LONG(&_5, 2)) {
                        ZEPHIR_INIT_VAR(&_6$$4);
@@ -1860,7 +1883,7 @@
                if (Z_TYPE_P(fields) == IS_ARRAY) {
                        ZEPHIR_INIT_VAR(&rules);
                        array_init(&rules);
-                       zephir_is_iterable(fields, 0, "ice/mvc/model.zep", 698);
+                       zephir_is_iterable(fields, 0, "ice/mvc/model.zep", 699);
                        ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(fields), _2$$4)
                        {
                                ZEPHIR_INIT_NVAR(&field);
@@ -1868,7 +1891,7 @@
                                zephir_read_property(&_3$$5, this_ptr, 
SL("rules"), PH_NOISY_CC | PH_READONLY);
                                if (zephir_array_isset(&_3$$5, &field)) {
                                        zephir_read_property(&_4$$6, this_ptr, 
SL("rules"), PH_NOISY_CC | PH_READONLY);
-                                       zephir_array_fetch(&_5$$6, &_4$$6, 
&field, PH_NOISY | PH_READONLY, "ice/mvc/model.zep", 694 TSRMLS_CC);
+                                       zephir_array_fetch(&_5$$6, &_4$$6, 
&field, PH_NOISY | PH_READONLY, "ice/mvc/model.zep", 695 TSRMLS_CC);
                                        zephir_array_update_zval(&rules, 
&field, &_5$$6, PH_COPY | PH_SEPARATE);
                                }
                        } ZEND_HASH_FOREACH_END();
@@ -1876,7 +1899,7 @@
                        RETURN_CCTOR(rules);
                } else if (_0$$3) {
                        zephir_read_property(&_6$$7, this_ptr, SL("rules"), 
PH_NOISY_CC | PH_READONLY);
-                       zephir_array_fetch(&_7$$7, &_6$$7, fields, PH_NOISY | 
PH_READONLY, "ice/mvc/model.zep", 700 TSRMLS_CC);
+                       zephir_array_fetch(&_7$$7, &_6$$7, fields, PH_NOISY | 
PH_READONLY, "ice/mvc/model.zep", 701 TSRMLS_CC);
                        RETURN_CTOR(_7$$7);
                }
        }
@@ -2048,7 +2071,7 @@
        zephir_check_call_status();
        ZEPHIR_CALL_METHOD(NULL, &_3, "__construct", NULL, 13, &_5);
        zephir_check_call_status();
-       zephir_throw_exception_debug(&_3, "ice/mvc/model.zep", 755 TSRMLS_CC);
+       zephir_throw_exception_debug(&_3, "ice/mvc/model.zep", 756 TSRMLS_CC);
        ZEPHIR_MM_RESTORE();
        return;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/build/php7/ice/mvc/model.zep.h 
new/framework-1.2.4/build/php7/ice/mvc/model.zep.h
--- old/framework-1.2.3/build/php7/ice/mvc/model.zep.h  2017-01-08 
19:53:34.000000000 +0100
+++ new/framework-1.2.4/build/php7/ice/mvc/model.zep.h  2017-01-15 
19:16:39.000000000 +0100
@@ -8,6 +8,7 @@
 PHP_METHOD(Ice_Mvc_Model, setFrom);
 PHP_METHOD(Ice_Mvc_Model, setPrimary);
 PHP_METHOD(Ice_Mvc_Model, getPrimary);
+PHP_METHOD(Ice_Mvc_Model, setAutoincrement);
 PHP_METHOD(Ice_Mvc_Model, setFilters);
 PHP_METHOD(Ice_Mvc_Model, getFilters);
 PHP_METHOD(Ice_Mvc_Model, setFields);
@@ -52,6 +53,10 @@
        ZEND_ARG_INFO(0, primary)
 ZEND_END_ARG_INFO()
 
+ZEND_BEGIN_ARG_INFO_EX(arginfo_ice_mvc_model_setautoincrement, 0, 0, 1)
+       ZEND_ARG_INFO(0, autoincrement)
+ZEND_END_ARG_INFO()
+
 ZEND_BEGIN_ARG_INFO_EX(arginfo_ice_mvc_model_setfilters, 0, 0, 1)
        ZEND_ARG_INFO(0, filters)
 ZEND_END_ARG_INFO()
@@ -181,6 +186,7 @@
        PHP_ME(Ice_Mvc_Model, setFrom, arginfo_ice_mvc_model_setfrom, 
ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, setPrimary, arginfo_ice_mvc_model_setprimary, 
ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, getPrimary, NULL, ZEND_ACC_PUBLIC)
+       PHP_ME(Ice_Mvc_Model, setAutoincrement, 
arginfo_ice_mvc_model_setautoincrement, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, setFilters, arginfo_ice_mvc_model_setfilters, 
ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, getFilters, NULL, ZEND_ACC_PUBLIC)
        PHP_ME(Ice_Mvc_Model, setFields, arginfo_ice_mvc_model_setfields, 
ZEND_ACC_PUBLIC)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/build/php7/ice/version.zep.c 
new/framework-1.2.4/build/php7/ice/version.zep.c
--- old/framework-1.2.3/build/php7/ice/version.zep.c    2017-01-08 
19:53:34.000000000 +0100
+++ new/framework-1.2.4/build/php7/ice/version.zep.c    2017-01-15 
19:16:39.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"), 3);
+       zephir_declare_class_constant_long(ice_version_ce, SL("PATCH"), 4);
 
        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"), 3);
+       add_assoc_long_ex(return_value, SL("patch"), 4);
        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, 3);
+       ZVAL_LONG(&_9, 4);
        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, 3);
+       ZVAL_LONG(&_2, 4);
        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.3/build/php7/php_ice.h 
new/framework-1.2.4/build/php7/php_ice.h
--- old/framework-1.2.3/build/php7/php_ice.h    2017-01-08 19:53:34.000000000 
+0100
+++ new/framework-1.2.4/build/php7/php_ice.h    2017-01-15 19:16:39.000000000 
+0100
@@ -11,7 +11,7 @@
 #include "kernel/globals.h"
 
 #define PHP_ICE_NAME        "ice"
-#define PHP_ICE_VERSION     "1.2.3"
+#define PHP_ICE_VERSION     "1.2.4"
 #define PHP_ICE_EXTNAME     "ice"
 #define PHP_ICE_AUTHOR      "Ice Team"
 #define PHP_ICE_ZEPVERSION  "0.9.6a-dev-72dbb2063e"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/config.json 
new/framework-1.2.4/config.json
--- old/framework-1.2.3/config.json     2017-01-08 19:53:34.000000000 +0100
+++ new/framework-1.2.4/config.json     2017-01-15 19:16:39.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.3",
+    "version": "1.2.4",
     "verbose": false,
     "info": [
         {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/ice/mvc/model.zep 
new/framework-1.2.4/ice/mvc/model.zep
--- old/framework-1.2.3/ice/mvc/model.zep       2017-01-08 19:53:34.000000000 
+0100
+++ new/framework-1.2.4/ice/mvc/model.zep       2017-01-15 19:16:39.000000000 
+0100
@@ -23,6 +23,7 @@
     protected db { get };
     protected from { set };
     protected primary { set, get };
+    protected autoincrement = true { set };
     protected filters = [] { set, get };
     protected fields = [] { set, get };
     protected validation { set, get };
@@ -212,7 +213,7 @@
      * Prepare fields for validation on create/update.
      *
      * @param mixed fields Fields to save or valid fields
-     * @param booleat primary Keept primary keys
+     * @param boolean primary Keep primary key
      * @return array
      */
     protected function fields(var fields = [], boolean primary = true)
@@ -254,7 +255,7 @@
             }
         }
 
-        // Remove primary keys
+        // Remove primary key
         if typeof this->primary == "string" && !primary {
             unset fields[this->primary];
         }
@@ -280,7 +281,7 @@
     {
         var status;
 
-        this->setData(this->fields(fields, false));
+        this->setData(this->fields(fields, !this->autoincrement));
 
         if extra {
             extra->validate();
@@ -386,7 +387,7 @@
 
         this->di->applyHook("model.before.update", [this]);
 
-        let status = this->db->update(this->from, primary, 
this->fields(this->getData(), false));
+        let status = this->db->update(this->from, primary, 
this->fields(this->getData(), !this->autoincrement));
 
         if !status {
             // Rollback changes and restore old data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/framework-1.2.3/ice/version.zep 
new/framework-1.2.4/ice/version.zep
--- old/framework-1.2.3/ice/version.zep 2017-01-08 19:53:34.000000000 +0100
+++ new/framework-1.2.4/ice/version.zep 2017-01-15 19:16:39.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 = 3;
+    const PATCH = 4;
     const STAGE = self::STABLE;
     const BUILD = 0;
 


Reply via email to