Loading helpers earlier in View's lifecycle allows for the removal of
many duplicated code segments and a now useless property. It slightly
modifies how View behaves in a test case, but that issue is easily
remedied by calling loadHelpers() a second time.
This primarily fixes issues where helpers may not be loaded in View
subclasses if they override any of View's methods. This is particularly
problematic when aliased helpers are involved.
Refs #4030
With Security supporting AES encryption it is also ideal to have AES
compatible cookies. Refactor and simplify code. Dynamic invocation of
static method is a bit obtuse and the various methods don't all have the
same arguments.
generate bigint primary keys correctly. Autoincrement cannot be set as
it only works with INTEGER columns[1]. I decided to use some string
manipulations as the entire SQL generation bits are a bit janky and I've
already re-written them for 3.0.
[1] https://www.sqlite.org/autoinc.html
Closes #GH-1552
Writing assertContains() or assertRegExp for generated code is a pain and making the test cover most part of it is very difficult.
Things like:
```
} else {
}
```
Are very easy to happen (which was the case) and was not being covered by the test.
It now fails in PHP >= 5.5.2 . Also it never did anything in earlier
versions as the session would have already been started if auto_start
was true.
Fixes#4010
`sqlite_sequence` is a dynamic table that's only available when a table in
the database use an auto increment field. For some cases, eg: databases that
exclusively use uuid for primary keys, this table won't exist and
truncate() call will fail with:
Error: SQLSTATE[HY000]: General error: 1 no such table: sqlite_sequence
Otherwise there can be significant differences in behavior between using
an unmodifiedcomponent in testAction and using a mock as the config will not be
propogated from the controller