Added `QueryInterface::emulateExecution()`, which allows preventing of
the actual query execution.
This allows to cancel `DataProvider` preventing search query execution
in case search model is invalid:
``` php
public function search($params)
{
$query = Item::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
$query->where('0=1');
$query->emulateExecution(); // No SQL execution will be done
return $dataProvider;
}
```
This also fix unecessary query in case of `via()` usage. See #12390.
fixes#12390fixes#6373close#12708
* Test against the current hhvm version
This provides the current HHVM version (3.15.2 as of this PR) and will track with each release (i.e. will be 3.16 when 3.16 is released.
If testing against HHVM LST versions is desired follow this guide. https://docs.travis-ci.com/user/languages/php#HHVM-versions
Should be able to change to container based Trusty after Q1-17 https://blog.travis-ci.com/2016-11-08-trusty-container-public-beta/
* Try to create travis user for trusty hhvm and grant permissions
remove conditionals for apc and memcache
* more tweaks to grant privileges
* try 127.0.0.1 rather than localhost
* grant after db create
* try a different create user grant privileges form
* try to specify postgresql: "9.3" for hhvm
* need to look more into specifying postgresql: "9.3"
hhvm issues
* addon with no dash postgresql: "9.3"
* requested change && not ||
* redis-server isn't needed here
* Apply @cebe's patch for pgsql test failure
* Update .travis.yml
* Update CommandTest.php
* Update CommandTest.php
* Update CommandTest.php
try to fix hhvm tests
* Update CommandTest.php
* setup ActiveQueryTest
* basic unit tests for ActiveQuery are created:
- all protected & public methods are covered
- method return types are tested
- some functions are already full tested, others are supplied with @todo
* fix driver for mssql
* fix ::class to className()
* remove OCI tests
- changed test class naming for easier copying and searching of classes
- made base tests abstract and made MySQL an equal citisen in the test
hierarchie
- added missing db specific test classes
Basic implementation proposal for yiisoft/yii2#2022
Shortcomings/todo's:
* filtering on non-scalars (where IN statements) not supported
* Numeric properties with a corresponding validation rule will yield
errors when they contain an alphanumeric operator. These properties'
rules should be defined as 'string' or 'safe'.
* no implementation example in Gii code (yet).
close#8505