Browse Source

Merge branch 'master' of github.com:yiisoft/yii2

* 'master' of github.com:yiisoft/yii2: (40 commits)
  Fixes #2624: Html::textArea() should respect "name" option.
  Removed unused "use" statements
  Changed "and" to "&&"
  Used ternary operator instead of "or" for constant definition
  Removed unused variables
  Removed executable flag from asset files
  Changelog for #2607
  Added note about overriding asset bundles according to #2556
  Added some documentation to new pjax attribute
  Add unit tests
  typo fix.
  Update MessageController.php
  Update MessageController.php
  add findAndModify() method to the Collection class
  Add an option to ignore pjax request on some links.
  fix code style php5.4 syntax
  Inline control structures are not allowed
  fix code style
  fix code style
  fix typo double `;`, `Each PHP statement must be on a line by itself`
  ...
tags/2.0.0-beta
Carsten Brandt 11 years ago
parent
commit
aa9d3b3e66
  1. 8
      apps/advanced/backend/tests/_bootstrap.php
  2. 8
      apps/advanced/backend/tests/_console.php
  3. 4
      apps/advanced/backend/tests/acceptance/yii
  4. 4
      apps/advanced/backend/tests/functional/yii
  5. 4
      apps/advanced/backend/tests/unit/yii
  6. 3
      apps/advanced/common/mail/layouts/html.php
  7. 8
      apps/advanced/common/tests/_bootstrap.php
  8. 8
      apps/advanced/common/tests/_console.php
  9. 4
      apps/advanced/common/tests/unit/yii
  10. 8
      apps/advanced/console/tests/_bootstrap.php
  11. 8
      apps/advanced/console/tests/_console.php
  12. 4
      apps/advanced/console/tests/unit/yii
  13. 4
      apps/advanced/environments/dev/backend/web/index-test.php
  14. 4
      apps/advanced/environments/dev/backend/web/index.php
  15. 4
      apps/advanced/environments/dev/frontend/web/index-test.php
  16. 4
      apps/advanced/environments/dev/frontend/web/index.php
  17. 8
      apps/advanced/environments/dev/yii
  18. 4
      apps/advanced/environments/prod/backend/web/index.php
  19. 4
      apps/advanced/environments/prod/frontend/web/index.php
  20. 8
      apps/advanced/environments/prod/yii
  21. 8
      apps/advanced/frontend/tests/_bootstrap.php
  22. 8
      apps/advanced/frontend/tests/_console.php
  23. 4
      apps/advanced/frontend/tests/acceptance/yii
  24. 4
      apps/advanced/frontend/tests/functional/yii
  25. 4
      apps/advanced/frontend/tests/unit/yii
  26. 3
      apps/basic/mail/layouts/html.php
  27. 8
      apps/basic/tests/_bootstrap.php
  28. 8
      apps/basic/tests/_console_bootstrap.php
  29. 4
      apps/basic/web/index-test.php
  30. 4
      apps/basic/web/index.php
  31. 6
      apps/basic/yii
  32. 2
      apps/benchmark/index.php
  33. 4
      build/build
  34. 2
      build/controllers/ClassmapController.php
  35. 30
      docs/guide/assets.md
  36. 4
      docs/guide/configuration.md
  37. 6
      docs/guide/console.md
  38. 2
      docs/guide/module-debug.md
  39. 2
      docs/guide/performance.md
  40. 32
      docs/guide/theming.md
  41. 2
      extensions/apidoc/apidoc
  42. 2
      extensions/debug/views/default/panels/config/detail.php
  43. 3
      extensions/debug/views/default/panels/config/summary.php
  44. 1
      extensions/gii/CHANGELOG.md
  45. 16
      extensions/gii/assets/gii.js
  46. 2
      extensions/gii/generators/model/Generator.php
  47. 9
      extensions/gii/views/default/view/files.php
  48. 0
      extensions/jui/assets/jquery.ui.datepicker-i18n.js
  49. 0
      extensions/jui/assets/jquery.ui.effect-all.js
  50. 0
      extensions/jui/assets/theme/images/animated-overlay.gif
  51. 0
      extensions/jui/assets/theme/images/ui-bg_flat_0_aaaaaa_40x100.png
  52. 0
      extensions/jui/assets/theme/images/ui-bg_flat_75_ffffff_40x100.png
  53. 0
      extensions/jui/assets/theme/images/ui-bg_glass_55_fbf9ee_1x400.png
  54. 0
      extensions/jui/assets/theme/images/ui-bg_glass_65_ffffff_1x400.png
  55. 0
      extensions/jui/assets/theme/images/ui-bg_glass_75_dadada_1x400.png
  56. 0
      extensions/jui/assets/theme/images/ui-bg_glass_75_e6e6e6_1x400.png
  57. 0
      extensions/jui/assets/theme/images/ui-bg_glass_95_fef1ec_1x400.png
  58. 0
      extensions/jui/assets/theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png
  59. 0
      extensions/jui/assets/theme/images/ui-icons_222222_256x240.png
  60. 0
      extensions/jui/assets/theme/images/ui-icons_2e83ff_256x240.png
  61. 0
      extensions/jui/assets/theme/images/ui-icons_454545_256x240.png
  62. 0
      extensions/jui/assets/theme/images/ui-icons_888888_256x240.png
  63. 0
      extensions/jui/assets/theme/images/ui-icons_cd0a0a_256x240.png
  64. 0
      extensions/jui/assets/theme/jquery.ui.css
  65. 28
      extensions/mongodb/Collection.php
  66. 2
      extensions/swiftmailer/Mailer.php
  67. 18
      framework/BaseYii.php
  68. 3
      framework/CHANGELOG.md
  69. 6
      framework/assets/pjax/jquery.pjax.js
  70. 27
      framework/assets/yii.gridView.js
  71. 12
      framework/base/Formatter.php
  72. 1
      framework/base/Request.php
  73. 2
      framework/base/Theme.php
  74. 1
      framework/caching/FileDependency.php
  75. 1
      framework/caching/GroupDependency.php
  76. 6
      framework/console/controllers/FixtureController.php
  77. 39
      framework/console/controllers/MessageController.php
  78. 2
      framework/db/ActiveQuery.php
  79. 2
      framework/db/ActiveRelationTrait.php
  80. 2
      framework/db/QueryBuilder.php
  81. 2
      framework/db/oci/Schema.php
  82. 3
      framework/grid/ActionColumn.php
  83. 2
      framework/grid/DataColumn.php
  84. 26
      framework/helpers/BaseFileHelper.php
  85. 6
      framework/helpers/BaseHtml.php
  86. 2
      framework/helpers/BaseMarkdown.php
  87. 4
      framework/helpers/BaseSecurity.php
  88. 4
      framework/i18n/GettextMessageSource.php
  89. 2
      framework/i18n/I18N.php
  90. 10
      framework/i18n/MessageFormatter.php
  91. 4
      framework/i18n/PhpMessageSource.php
  92. 1
      framework/mail/BaseMailer.php
  93. 1
      framework/test/Fixture.php
  94. 2
      framework/validators/ImageValidator.php
  95. 1
      framework/validators/PunycodeAsset.php
  96. 1
      framework/validators/ValidationAsset.php
  97. 2
      framework/web/AssetConverter.php
  98. 1
      framework/widgets/ActiveFormAsset.php
  99. 2
      framework/widgets/LinkPager.php
  100. 2
      framework/widgets/Pjax.php
  101. Some files were not shown because too many files have changed in this diff Show More

8
apps/advanced/backend/tests/_bootstrap.php

@ -2,14 +2,14 @@
// the entry script URL (without host info) for functional and acceptance tests
// PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL
defined('TEST_ENTRY_URL') or define('TEST_ENTRY_URL', '/backend/web/index-test.php');
defined('TEST_ENTRY_URL') ?: define('TEST_ENTRY_URL', '/backend/web/index-test.php');
// the entry script file path for functional and acceptance tests
defined('TEST_ENTRY_FILE') or define('TEST_ENTRY_FILE', dirname(__DIR__) . '/web/index-test.php');
defined('TEST_ENTRY_FILE') ?: define('TEST_ENTRY_FILE', dirname(__DIR__) . '/web/index-test.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_ENV') ?: define('YII_ENV', 'test');
require_once(__DIR__ . '/../../vendor/autoload.php');

8
apps/advanced/backend/tests/_console.php

@ -8,12 +8,12 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../../vendor/autoload.php');
require_once(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require_once(__DIR__ . '/../../common/config/aliases.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'test');

4
apps/advanced/backend/tests/acceptance/yii

@ -9,8 +9,8 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');

4
apps/advanced/backend/tests/functional/yii

@ -9,8 +9,8 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');

4
apps/advanced/backend/tests/unit/yii

@ -9,8 +9,8 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');

3
apps/advanced/common/mail/layouts/html.php

@ -1,10 +1,9 @@
<?php
use yii\helpers\Html;
use yii\mail\BaseMessage;
/**
* @var \yii\web\View $this
* @var BaseMessage $content
* @var \yii\mail\BaseMessage $content
*/
?>
<?php $this->beginPage() ?>

8
apps/advanced/common/tests/_bootstrap.php

@ -2,14 +2,14 @@
// the entry script URL (without host info) for functional and acceptance tests
// PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL
defined('TEST_ENTRY_URL') or define('TEST_ENTRY_URL', '/index-test.php');
defined('TEST_ENTRY_URL') ?: define('TEST_ENTRY_URL', '/index-test.php');
// the entry script file path for functional and acceptance tests
defined('TEST_ENTRY_FILE') or define('TEST_ENTRY_FILE', dirname(__DIR__) . '/index-test.php');
defined('TEST_ENTRY_FILE') ?: define('TEST_ENTRY_FILE', dirname(__DIR__) . '/index-test.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_ENV') ?: define('YII_ENV', 'test');
require_once(__DIR__ . '/../../vendor/autoload.php');

8
apps/advanced/common/tests/_console.php

@ -8,12 +8,12 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../../vendor/autoload.php');
require_once(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require_once(__DIR__ . '/../../common/config/aliases.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'test');

4
apps/advanced/common/tests/unit/yii

@ -9,8 +9,8 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');

8
apps/advanced/console/tests/_bootstrap.php

@ -2,14 +2,14 @@
// the entry script URL (without host info) for functional and acceptance tests
// PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL
defined('TEST_ENTRY_URL') or define('TEST_ENTRY_URL', '/index-test.php');
defined('TEST_ENTRY_URL') ?: define('TEST_ENTRY_URL', '/index-test.php');
// the entry script file path for functional and acceptance tests
defined('TEST_ENTRY_FILE') or define('TEST_ENTRY_FILE', dirname(__DIR__) . '/index-test.php');
defined('TEST_ENTRY_FILE') ?: define('TEST_ENTRY_FILE', dirname(__DIR__) . '/index-test.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_ENV') ?: define('YII_ENV', 'test');
require_once(__DIR__ . '/../../vendor/autoload.php');

8
apps/advanced/console/tests/_console.php

@ -8,12 +8,12 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../../vendor/autoload.php');
require_once(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require_once(__DIR__ . '/../../common/config/aliases.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'test');

4
apps/advanced/console/tests/unit/yii

@ -9,8 +9,8 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');

4
apps/advanced/environments/dev/backend/web/index-test.php

@ -5,8 +5,8 @@ if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) {
die('You are not allowed to access this file.');
}
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'test');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');

4
apps/advanced/environments/dev/backend/web/index.php

@ -1,6 +1,6 @@
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'dev');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');

4
apps/advanced/environments/dev/frontend/web/index-test.php

@ -5,8 +5,8 @@ if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) {
die('You are not allowed to access this file.');
}
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'test');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');

4
apps/advanced/environments/dev/frontend/web/index.php

@ -1,6 +1,6 @@
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'dev');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');

8
apps/advanced/environments/dev/yii

@ -8,12 +8,12 @@
* @license http://www.yiiframework.com/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'dev');
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');

4
apps/advanced/environments/prod/backend/web/index.php

@ -1,6 +1,6 @@
<?php
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');
defined('YII_DEBUG') ?: define('YII_DEBUG', false);
defined('YII_ENV') ?: define('YII_ENV', 'prod');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');

4
apps/advanced/environments/prod/frontend/web/index.php

@ -1,6 +1,6 @@
<?php
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');
defined('YII_DEBUG') ?: define('YII_DEBUG', false);
defined('YII_ENV') ?: define('YII_ENV', 'prod');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');

8
apps/advanced/environments/prod/yii

@ -8,12 +8,12 @@
* @license http://www.yiiframework.com/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');
defined('YII_DEBUG') ?: define('YII_DEBUG', false);
defined('YII_ENV') ?: define('YII_ENV', 'prod');
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');

8
apps/advanced/frontend/tests/_bootstrap.php

@ -2,14 +2,14 @@
// the entry script URL (without host info) for functional and acceptance tests
// PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL
defined('TEST_ENTRY_URL') or define('TEST_ENTRY_URL', '/frontend/web/index-test.php');
defined('TEST_ENTRY_URL') ?: define('TEST_ENTRY_URL', '/frontend/web/index-test.php');
// the entry script file path for functional and acceptance tests
defined('TEST_ENTRY_FILE') or define('TEST_ENTRY_FILE', dirname(__DIR__) . '/web/index-test.php');
defined('TEST_ENTRY_FILE') ?: define('TEST_ENTRY_FILE', dirname(__DIR__) . '/web/index-test.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_ENV') ?: define('YII_ENV', 'test');
require_once(__DIR__ . '/../../vendor/autoload.php');

8
apps/advanced/frontend/tests/_console.php

@ -8,12 +8,12 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../../vendor/autoload.php');
require_once(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require_once(__DIR__ . '/../../common/config/aliases.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'test');

4
apps/advanced/frontend/tests/acceptance/yii

@ -9,8 +9,8 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');

4
apps/advanced/frontend/tests/functional/yii

@ -9,8 +9,8 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');

4
apps/advanced/frontend/tests/unit/yii

@ -9,8 +9,8 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');

3
apps/basic/mail/layouts/html.php

@ -1,10 +1,9 @@
<?php
use yii\helpers\Html;
use yii\mail\BaseMessage;
/**
* @var \yii\web\View $this
* @var BaseMessage $content
* @var \yii\mail\BaseMessage $content
*/
?>
<?php $this->beginPage() ?>

8
apps/basic/tests/_bootstrap.php

@ -2,14 +2,14 @@
// the entry script URL (without host info) for functional and acceptance tests
// PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL
defined('TEST_ENTRY_URL') or define('TEST_ENTRY_URL', '/basic/web/index-test.php');
defined('TEST_ENTRY_URL') ?: define('TEST_ENTRY_URL', '/basic/web/index-test.php');
// the entry script file path for functional and acceptance tests
defined('TEST_ENTRY_FILE') or define('TEST_ENTRY_FILE', dirname(__DIR__) . '/web/index-test.php');
defined('TEST_ENTRY_FILE') ?: define('TEST_ENTRY_FILE', dirname(__DIR__) . '/web/index-test.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_ENV') ?: define('YII_ENV', 'test');
require_once(__DIR__ . '/../vendor/autoload.php');

8
apps/basic/tests/_console_bootstrap.php

@ -1,12 +1,12 @@
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_ENV') ?: define('YII_ENV', 'test');
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

4
apps/basic/web/index-test.php

@ -5,8 +5,8 @@ if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) {
die('You are not allowed to access this file.');
}
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'test');
require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

4
apps/basic/web/index.php

@ -1,8 +1,8 @@
<?php
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
defined('YII_ENV') ?: define('YII_ENV', 'dev');
require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

6
apps/basic/yii

@ -8,11 +8,11 @@
* @license http://www.yiiframework.com/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');

2
apps/benchmark/index.php

@ -1,6 +1,6 @@
<?php
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_DEBUG') ?: define('YII_DEBUG', false);
require(__DIR__ . '/protected/vendor/yiisoft/yii2/Yii.php');

4
build/build

@ -9,8 +9,8 @@
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
define('YII_DEBUG', true);

2
build/controllers/ClassmapController.php

@ -52,7 +52,7 @@ class ClassmapController extends Controller
$files = FileHelper::findFiles($root, $options);
$map = [];
foreach ($files as $file) {
if (($pos = strpos($file, $root)) !== 0) {
if (strpos($file, $root) !== 0) {
die("Something wrong: $file\n");
}
$path = str_replace('\\', '/', substr($file, strlen($root)));

30
docs/guide/assets.md

@ -81,18 +81,26 @@ following way:
```php
class LanguageAsset extends AssetBundle
{
public $sourcePath = '@app/assets/language';
public $js = [
];
public function init()
{
$this->js[] = 'language-' . Yii::$app->language . '.js';
parent::init();
}
public $language;
public $sourcePath = '@app/assets/language';
public $js = [
];
public function registerAssetFiles($view)
{
$language = $this->language ? $this->language : Yii::$app->language;
$this->js[] = 'language-' . $language . '.js';
parent::registerAssetFiles($view);
}
}
```
In order to set language use the following code when registering an asset bundle in a view:
```php
LanguageAsset::register($this)->language = $language;
```
Registering asset bundle
------------------------
@ -114,6 +122,10 @@ To register an asset inside of a widget, the view instance is available as `$thi
AppAsset::register($this->view);
```
> Note: If there is a need to modify third party asset bundles it is recommended to create your own bundles depending
on third party ones and use CSS and JavaScript features to modify behavior instead of editing files directly or
copying them over.
Overriding asset bundles
------------------------

4
docs/guide/configuration.md

@ -24,14 +24,14 @@ Like any resource in your Yii application, the bootstrap file can be edited to f
The default bootstrap structure sets `YII_DEBUG` to `false` if not defined:
```php
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_DEBUG') ?: define('YII_DEBUG', false);
```
During development, you can change this to `true`:
```php
define('YII_DEBUG', true); // Development only
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_DEBUG') ?: define('YII_DEBUG', false);
```
Configuring the application instance

6
docs/guide/console.md

@ -40,11 +40,11 @@ code like the following:
* @license http://www.yiiframework.com/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
defined('STDIN') ?: define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') ?: define('STDOUT', fopen('php://stdout', 'w'));
require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');

2
docs/guide/module-debug.md

@ -76,7 +76,7 @@ return [
By default it's automatically set to `3` if Yii is run in debug mode i.e. your `index.php` file contains the following:
```php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_DEBUG') ?: define('YII_DEBUG', true);
```
> Note: Make sure to disable debug mode on production since it may have significan performance effect and expose sensible

2
docs/guide/performance.md

@ -28,7 +28,7 @@ is to disable debug mode. A Yii application runs in debug mode if the constant
should be in your `index.php`:
```php
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_DEBUG') ?: define('YII_DEBUG', false);
```
Debug mode is very useful during development stage, but it would impact performance

32
docs/guide/theming.md

@ -1,7 +1,12 @@
Theming
=======
TBD
A theme is a directory of view and layout files. Each file of the theme overrides corresponding file of an application
when rendered. A single application may use multiple themes and each may provide totally different experience. At any
time only one theme can be active.
> Note: Themes usually do not meant to be redistributed since views are too application specific. If you want to
redistribute customized look and feel consider CSS and JavaScript files in form of [asset bundles](assets.md) instead.
Configuring current theme
-------------------------
@ -18,4 +23,27 @@ be in your application config file:
],
],
],
```
```
In the above `pathMap` defines where to look for view files while `baseUrl` defines base URL for resources referenced
from these files. For example, if `pathMap` is `['/web/views' => '/web/themes/basic']`, then the themed version
for a view file `/web/views/site/index.php` will be `/web/themes/basic/site/index.php`.
Using multiple paths
--------------------
It is possible to map a single path to multiple paths. For example,
```php
'pathMap' => [
'/web/views' => [
'/web/themes/christmas',
'/web/themes/basic',
],
]
```
In this case, the view will be searched in `/web/themes/christmas/site/index.php` then if it's not found it will check
`/web/themes/basic/site/index.php`. If there's no view there as well application view will be used.
This ability is especially useful if you want to temporary or conditionally override some views.

2
extensions/apidoc/apidoc

@ -8,7 +8,7 @@
* @license http://www.yiiframework.com/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_DEBUG') ?: define('YII_DEBUG', false);
$composerAutoload = [
__DIR__ . '/vendor/autoload.php', // standalone with "composer install" run

2
extensions/debug/views/default/panels/config/detail.php

@ -1,6 +1,4 @@
<?php
use yii\helpers\Html;
/**
* @var yii\debug\panels\ConfigPanel $panel
*/

3
extensions/debug/views/default/panels/config/summary.php

@ -1,7 +1,4 @@
<?php
use yii\helpers\Html;
/**
* @var yii\debug\panels\ConfigPanel $panel
*/

1
extensions/gii/CHANGELOG.md

@ -13,6 +13,7 @@ Yii Framework 2 gii extension Change Log
- Enh #1897: diff markup is now copy paste friendly (samdark)
- Enh #2327: better visual representation of changed files, added header and refresh button to diff modal (thiagotalma)
- Enh #2491: Added support for using the same base class name of search model and data model in Gii (qiangxue)
- Enh #2595: Browse through all generated files using right and left arrows (thiagotalma)
2.0.0 alpha, December 1, 2013
-----------------------------

16
extensions/gii/assets/gii.js

@ -35,10 +35,13 @@ yii.gii = (function ($) {
};
var initPreviewDiffLinks = function () {
$('.preview-code, .diff-code, .modal-refresh').on('click', function () {
$('.preview-code, .diff-code, .modal-refresh, .modal-previous, .modal-next').on('click', function () {
var $modal = $('#preview-modal');
var $link = $(this);
$modal.find('.modal-refresh').attr('href', $link.prop('href'));
$modal.find('.modal-refresh').attr('href', $link.attr('href'));
if ($link.hasClass('preview-code') || $link.hasClass('diff-code')) {
$modal.data('action', ($link.hasClass('preview-code') ? 'preview-code' : 'diff-code'))
}
$modal.find('.modal-title').text($link.data('title'));
$modal.find('.modal-body').html('Loading ...');
$modal.modal('show');
@ -48,6 +51,15 @@ yii.gii = (function ($) {
url: $link.prop('href'),
data: $('.default-view form').serializeArray(),
success: function (data) {
if (!$link.hasClass('modal-refresh')) {
var filesSelector = 'a.' + $modal.data('action');
var $files = $(filesSelector);
var index = $files.filter('[href="' + $link.attr('href') + '"]').index(filesSelector);
var $prev = $files.eq(index-1);
var $next = $files.eq((index+1 == $files.length ? 0 : index+1));
$modal.find('.modal-previous').attr('href', $prev.attr('href')).data('title', $prev.data('title'));
$modal.find('.modal-next').attr('href', $next.attr('href')).data('title', $next.data('title'));
}
$modal.find('.modal-body').html(data);
$modal.find('.content').css('max-height', ($(window).height() - 200) + 'px');
},

2
extensions/gii/generators/model/Generator.php

@ -471,7 +471,7 @@ class Generator extends \yii\gii\Generator
*/
public function validateTableName()
{
if (($pos = strpos($this->tableName, '*')) !== false && substr($this->tableName, -1) !== '*') {
if (strpos($this->tableName, '*') !== false && substr($this->tableName, -1) !== '*') {
$this->addError('tableName', 'Asterisk is only allowed as the last character.');
return;
}

9
extensions/gii/views/default/view/files.php

@ -81,7 +81,14 @@ use yii\gii\CodeFile;
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4><a class="modal-refresh glyphicon glyphicon-refresh" href="#"></a> <span class="modal-title">Modal title</span></h4>
<div class="btn-group pull-left">
<a class="modal-previous btn btn-xs btn-default" href="#"><span class="glyphicon glyphicon-arrow-left"></span></a>
<a class="modal-next btn btn-xs btn-default" href="#"><span class="glyphicon glyphicon-arrow-right"></span></a>
<a class="modal-refresh btn btn-xs btn-default" href="#"><span class="glyphicon glyphicon-refresh"></span></a>
&nbsp;
</div>
<strong class="modal-title pull-left">Modal title</strong>
<div class="clearfix"></div>
</div>
<div class="modal-body">
<p>Please wait ...</p>

0
extensions/jui/assets/jquery.ui.datepicker-i18n.js vendored

0
extensions/jui/assets/jquery.ui.effect-all.js vendored

0
extensions/jui/assets/theme/images/animated-overlay.gif

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
extensions/jui/assets/theme/images/ui-bg_flat_0_aaaaaa_40x100.png

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 212 B

0
extensions/jui/assets/theme/images/ui-bg_flat_75_ffffff_40x100.png

Before

Width:  |  Height:  |  Size: 208 B

After

Width:  |  Height:  |  Size: 208 B

0
extensions/jui/assets/theme/images/ui-bg_glass_55_fbf9ee_1x400.png

Before

Width:  |  Height:  |  Size: 335 B

After

Width:  |  Height:  |  Size: 335 B

0
extensions/jui/assets/theme/images/ui-bg_glass_65_ffffff_1x400.png

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 207 B

0
extensions/jui/assets/theme/images/ui-bg_glass_75_dadada_1x400.png

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 262 B

0
extensions/jui/assets/theme/images/ui-bg_glass_75_e6e6e6_1x400.png

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 262 B

0
extensions/jui/assets/theme/images/ui-bg_glass_95_fef1ec_1x400.png

Before

Width:  |  Height:  |  Size: 332 B

After

Width:  |  Height:  |  Size: 332 B

0
extensions/jui/assets/theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png

Before

Width:  |  Height:  |  Size: 280 B

After

Width:  |  Height:  |  Size: 280 B

0
extensions/jui/assets/theme/images/ui-icons_222222_256x240.png

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

0
extensions/jui/assets/theme/images/ui-icons_2e83ff_256x240.png

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

0
extensions/jui/assets/theme/images/ui-icons_454545_256x240.png

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

0
extensions/jui/assets/theme/images/ui-icons_888888_256x240.png

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

0
extensions/jui/assets/theme/images/ui-icons_cd0a0a_256x240.png

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

0
extensions/jui/assets/theme/jquery.ui.css

28
extensions/mongodb/Collection.php

@ -260,7 +260,7 @@ class Collection extends Object
}
/**
* Returns a a single document.
* Returns a single document.
* @param array $condition query condition
* @param array $fields fields to be selected
* @return array|null the single document. Null is returned if the query results in nothing.
@ -272,6 +272,32 @@ class Collection extends Object
}
/**
* Updates a document and returns it.
* @param array $condition query condition
* @param array $update update criteria
* @param array $fields fields to be returned
* @param array $options list of options in format: optionName => optionValue.
* @return array|null the original document, or the modified document when $options['new'] is set.
* @throws Exception on failure.
* @see http://www.php.net/manual/en/mongocollection.findandmodify.php
*/
public function findAndModify($condition, $update, $fields = [], $options = [])
{
$condition = $this->buildCondition($condition);
$token = $this->composeLogToken('findAndModify', [$condition, $update, $fields, $options]);
Yii::info($token, __METHOD__);
try {
Yii::beginProfile($token, __METHOD__);
$result = $this->mongoCollection->findAndModify($condition, $update, $fields, $options);
Yii::endProfile($token, __METHOD__);
return $result;
} catch (\Exception $e) {
Yii::endProfile($token, __METHOD__);
throw new Exception($e->getMessage(), (int)$e->getCode(), $e);
}
}
/**
* Inserts new data into collection.
* @param array|object $data data to be inserted.
* @param array $options list of options in format: optionName => optionValue.

2
extensions/swiftmailer/Mailer.php

@ -19,7 +19,7 @@ use yii\mail\BaseMailer;
* ~~~
* 'components' => [
* ...
* 'email' => [
* 'mail' => [
* 'class' => 'yii\swiftmailer\Mailer',
* 'transport' => [
* 'class' => 'Swift_SmtpTransport',

18
framework/BaseYii.php

@ -14,37 +14,37 @@ use yii\log\Logger;
/**
* Gets the application start timestamp.
*/
defined('YII_BEGIN_TIME') or define('YII_BEGIN_TIME', microtime(true));
defined('YII_BEGIN_TIME') ?: define('YII_BEGIN_TIME', microtime(true));
/**
* This constant defines the framework installation directory.
*/
defined('YII_PATH') or define('YII_PATH', __DIR__);
defined('YII_PATH') ?: define('YII_PATH', __DIR__);
/**
* This constant defines whether the application should be in debug mode or not. Defaults to false.
*/
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_DEBUG') ?: define('YII_DEBUG', false);
/**
* This constant defines in which environment the application is running. Defaults to 'prod', meaning production environment.
* You may define this constant in the bootstrap script. The value could be 'prod' (production), 'dev' (development), 'test', 'staging', etc.
*/
defined('YII_ENV') or define('YII_ENV', 'prod');
defined('YII_ENV') ?: define('YII_ENV', 'prod');
/**
* Whether the the application is running in production environment
*/
defined('YII_ENV_PROD') or define('YII_ENV_PROD', YII_ENV === 'prod');
defined('YII_ENV_PROD') ?: define('YII_ENV_PROD', YII_ENV === 'prod');
/**
* Whether the the application is running in development environment
*/
defined('YII_ENV_DEV') or define('YII_ENV_DEV', YII_ENV === 'dev');
defined('YII_ENV_DEV') ?: define('YII_ENV_DEV', YII_ENV === 'dev');
/**
* Whether the the application is running in testing environment
*/
defined('YII_ENV_TEST') or define('YII_ENV_TEST', YII_ENV === 'test');
defined('YII_ENV_TEST') ?: define('YII_ENV_TEST', YII_ENV === 'test');
/**
* This constant defines whether error handling should be enabled. Defaults to true.
*/
defined('YII_ENABLE_ERROR_HANDLER') or define('YII_ENABLE_ERROR_HANDLER', true);
defined('YII_ENABLE_ERROR_HANDLER') ?: define('YII_ENABLE_ERROR_HANDLER', true);
/**
@ -356,7 +356,7 @@ class BaseYii
$config = array_merge(static::$objectConfig[$class], $config);
}
if (($n = func_num_args()) > 1) {
if (func_num_args() > 1) {
/** @var \ReflectionClass $reflection */
if (isset($reflections[$class])) {
$reflection = $reflections[$class];

3
framework/CHANGELOG.md

@ -49,6 +49,9 @@ Yii Framework 2 Change Log
- Bug #2502: Unclear error message when `$_SERVER['DOCUMENT_ROOT']` is empty (samdark)
- Bug #2519: MessageSource removed translation messages when event handler was bound to `missingTranslation`-event (cebe)
- Bug #2527: Source language for `app` message category was always `en` no matter which application `sourceLanguage` was used (samdark)
- Bug #2559: Going back on browser history breaks GridView filtering with `Pjax` (tonydspaniard)
- Bug #2607: `yii message` tool wasn't updating `message` table (mitalcoi)
- Bug #2624: Html::textArea() should respect "name" option. (qiangxue)
- Bug: Fixed `Call to a member function registerAssetFiles() on a non-object` in case of wrong `sourcePath` for an asset bundle (samdark)
- Bug: Fixed incorrect event name for `yii\jui\Spinner` (samdark)
- Bug: Json::encode() did not handle objects that implement JsonSerializable interface correctly (cebe)

6
framework/assets/pjax/jquery.pjax.js

@ -44,6 +44,8 @@
// event - "click" jQuery.Event
// options - pjax options
//
// If the click event target has 'data-pjax="0"' attribute, the event is ignored, and no pjax call is made.
//
// Examples
//
// $(document).on('click', 'a', $.pjax.click)
@ -61,6 +63,10 @@
var link = event.currentTarget
// Ignore links with data-pjax="0"
if ($(link).data('pjax')==0)
return
if (link.tagName.toUpperCase() !== 'A')
throw "$.fn.pjax or $.pjax.click requires an anchor element"

27
framework/assets/yii.gridView.js

@ -26,17 +26,18 @@
filterSelector: undefined
};
var gridData = {};
var methods = {
init: function (options) {
return this.each(function () {
var $e = $(this);
var settings = $.extend({}, defaults, options || {});
$e.data('yiiGridView', {
settings: settings
});
gridData[$e.prop('id')] = {settings: settings};
var enterPressed = false;
$(settings.filterSelector).on('change.yiiGridView keydown.yiiGridView', function (event) {
$(document).off('change.yiiGridView keydown.yiiGridView', settings.filterSelector)
.on('change.yiiGridView keydown.yiiGridView', settings.filterSelector, function (event) {
if (event.type === 'keydown') {
if (event.keyCode !== 13) {
return; // only react to enter key
@ -60,7 +61,7 @@
applyFilter: function () {
var $grid = $(this);
var settings = $grid.data('yiiGridView').settings;
var settings = gridData[$grid.prop('id')].settings;
var data = {};
$.each($(settings.filterSelector).serializeArray(), function () {
data[this.name] = this.value;
@ -85,15 +86,16 @@
setSelectionColumn: function (options) {
var $grid = $(this);
var data = $grid.data('yiiGridView');
data.selectionColumn = options.name;
var id = $(this).prop('id');
gridData[id].selectionColumn = options.name;
if (!options.multiple) {
return;
}
$grid.on('click.yiiGridView', "input[name='" + options.checkAll + "']", function () {
var inputs = "#" + id + " input[name='" + options.checkAll + "']";
$(document).off('click.yiiGridView', inputs).on('click.yiiGridView', inputs, function () {
$grid.find("input[name='" + options.name + "']:enabled").prop('checked', this.checked);
});
$grid.on('click.yiiGridView', "input[name='" + options.name + "']:enabled", function () {
$(document).off('click.yiiGridView', inputs + ":enabled").on('click.yiiGridView', inputs + ":enabled", function () {
var all = $grid.find("input[name='" + options.name + "']").length == $grid.find("input[name='" + options.name + "']:checked").length;
$grid.find("input[name='" + options.checkAll + "']").prop('checked', all);
});
@ -101,7 +103,7 @@
getSelectedRows: function () {
var $grid = $(this);
var data = $grid.data('yiiGridView');
var data = gridData[$grid.prop('id')];
var keys = [];
if (data.selectionColumn) {
$grid.find("input[name='" + data.selectionColumn + "']:checked").each(function () {
@ -118,8 +120,9 @@
});
},
data: function() {
return this.data('yiiGridView');
data: function () {
var id = $(this).prop('id');
return gridData[id];
}
};
})(window.jQuery);

12
framework/base/Formatter.php

@ -442,17 +442,17 @@ class Formatter extends Component
switch($position) {
case 0:
return $verbose ? Yii::t('yii','{n, plural, =1{# byte} other{# bytes}}', $params) : Yii::t('yii', '{n} B', $params);
return $verbose ? Yii::t('yii', '{n, plural, =1{# byte} other{# bytes}}', $params) : Yii::t('yii', '{n} B', $params);
case 1:
return $verbose ? Yii::t('yii','{n, plural, =1{# kilobyte} other{# kilobytes}}', $params) : Yii::t('yii','{n} KB', $params);
return $verbose ? Yii::t('yii', '{n, plural, =1{# kilobyte} other{# kilobytes}}', $params) : Yii::t('yii', '{n} KB', $params);
case 2:
return $verbose ? Yii::t('yii','{n, plural, =1{# megabyte} other{# megabytes}}', $params) : Yii::t('yii','{n} MB', $params);
return $verbose ? Yii::t('yii', '{n, plural, =1{# megabyte} other{# megabytes}}', $params) : Yii::t('yii', '{n} MB', $params);
case 3:
return $verbose ? Yii::t('yii','{n, plural, =1{# gigabyte} other{# gigabytes}}', $params) : Yii::t('yii','{n} GB', $params);
return $verbose ? Yii::t('yii', '{n, plural, =1{# gigabyte} other{# gigabytes}}', $params) : Yii::t('yii', '{n} GB', $params);
case 4:
return $verbose ? Yii::t('yii','{n, plural, =1{# terabyte} other{# terabytes}}', $params) : Yii::t('yii','{n} TB', $params);
return $verbose ? Yii::t('yii', '{n, plural, =1{# terabyte} other{# terabytes}}', $params) : Yii::t('yii', '{n} TB', $params);
default:
return $verbose ? Yii::t('yii','{n, plural, =1{# petabyte} other{# petabytes}}', $params) : Yii::t('yii','{n} PB', $params);
return $verbose ? Yii::t('yii', '{n, plural, =1{# petabyte} other{# petabytes}}', $params) : Yii::t('yii', '{n} PB', $params);
}
}
}

1
framework/base/Request.php

@ -6,6 +6,7 @@
*/
namespace yii\base;
use Yii;
/**

2
framework/base/Theme.php

@ -13,7 +13,7 @@ use yii\helpers\FileHelper;
/**
* Theme represents an application theme.
*
* When [[View]] renders a view file, it will check the [[Application::theme|active theme]]
* When [[View]] renders a view file, it will check the [[View::theme|active theme]]
* to see if there is a themed version of the view file exists. If so, the themed version will be rendered instead.
*
* A theme is a directory consisting of view files which are meant to replace their non-themed counterparts.

1
framework/caching/FileDependency.php

@ -6,6 +6,7 @@
*/
namespace yii\caching;
use yii\base\InvalidConfigException;
/**

1
framework/caching/GroupDependency.php

@ -6,6 +6,7 @@
*/
namespace yii\caching;
use yii\base\InvalidConfigException;
/**

6
framework/console/controllers/FixtureController.php

@ -64,7 +64,7 @@ class FixtureController extends Controller
public function globalOptions()
{
return array_merge(parent::globalOptions(), [
'namespace','globalFixtures'
'namespace', 'globalFixtures'
]);
}
@ -74,6 +74,7 @@ class FixtureController extends Controller
* whitespace between names. Note that if you are loading fixtures to storage, for example: database or nosql,
* storage will not be cleared, data will be appended to already existed.
* @param array $fixtures
* @param array $except
* @throws \yii\console\Exception
*/
public function actionLoad(array $fixtures, array $except = [])
@ -99,7 +100,7 @@ class FixtureController extends Controller
}
$filtered = array_diff($foundFixtures, $except);
$fixtures = $this->getFixturesConfig(array_merge($this->globalFixtures ,$filtered));
$fixtures = $this->getFixturesConfig(array_merge($this->globalFixtures, $filtered));
if (!$fixtures) {
throw new Exception('No fixtures were found in namespace: "' . $this->namespace . '"' . '');
@ -317,5 +318,4 @@ class FixtureController extends Controller
{
return Yii::getAlias('@' . str_replace('\\', '/', $this->namespace));
}
}

39
framework/console/controllers/MessageController.php

@ -134,11 +134,14 @@ class MessageController extends Controller
throw new Exception('The "db" option must refer to a valid database application component.');
}
$sourceMessageTable = isset($config['sourceMessageTable']) ? $config['sourceMessageTable'] : '{{%source_message}}';
$messageTable = isset($config['messageTable']) ? $config['messageTable'] : '{{%message}}';
$this->saveMessagesToDb(
$messages,
$db,
$sourceMessageTable,
$config['removeUnused']
$messageTable,
$config['removeUnused'],
$config['languages']
);
}
}
@ -149,9 +152,11 @@ class MessageController extends Controller
* @param array $messages
* @param \yii\db\Connection $db
* @param string $sourceMessageTable
* @param string $messageTable
* @param boolean $removeUnused
* @param array $languages
*/
protected function saveMessagesToDb($messages, $db, $sourceMessageTable, $removeUnused)
protected function saveMessagesToDb($messages, $db, $sourceMessageTable, $messageTable, $removeUnused, $languages)
{
$q = new \yii\db\Query;
$current = [];
@ -190,12 +195,17 @@ class MessageController extends Controller
echo "Inserting new messages...";
$savedFlag = false;
foreach ($new as $category => $msgs) {
foreach ($new as $category => $msgs) {
foreach ($msgs as $m) {
$savedFlag = true;
$db->createCommand()
->insert($sourceMessageTable, ['category' => $category, 'message' => $m])->execute();
->insert($sourceMessageTable, ['category' => $category, 'message' => $m])->execute();
$lastId = $db->getLastInsertID();
foreach ($languages as $language) {
$db->createCommand()
->insert($messageTable, ['id' => $lastId, 'language' => $language])->execute();
}
}
}
@ -207,15 +217,20 @@ class MessageController extends Controller
} else {
if ($removeUnused) {
$db->createCommand()
->delete($sourceMessageTable, ['in', 'id', $obsolete])->execute();
echo "deleted.\n";
->delete($sourceMessageTable, ['in', 'id', $obsolete])->execute();
echo "deleted.\n";
} else {
$last_id = $db->getLastInsertID();
$db->createCommand()
->update(
->update(
$sourceMessageTable,
['message' => new \yii\db\Expression("CONCAT('@@',message,'@@')")],
['in', 'id', $obsolete]
)->execute();
foreach ($languages as $language) {
$db->createCommand()
->insert($messageTable, ['id' => $last_id, 'language' => $language])->execute();
}
echo "updated.\n";
}
}
@ -268,7 +283,7 @@ class MessageController extends Controller
{
echo "Saving messages to $fileName...";
if (is_file($fileName)) {
if($format === 'po'){
if ($format === 'po') {
$translated = file_get_contents($fileName);
preg_match_all('/(?<=msgid ").*(?="\n(#*)msgstr)/', $translated, $keys);
preg_match_all('/(?<=msgstr ").*(?="\n\n)/', $translated, $values);
@ -285,7 +300,7 @@ class MessageController extends Controller
$merged = [];
$untranslated = [];
foreach ($messages as $message) {
if($format === 'po'){
if ($format === 'po') {
$message = preg_replace('/\"/', '\"', $message);
}
if (array_key_exists($message, $translated) && strlen($translated[$message]) > 0) {
@ -317,9 +332,9 @@ class MessageController extends Controller
if (false === $overwrite) {
$fileName .= '.merged';
}
if ($format === 'po'){
if ($format === 'po') {
$output = '';
foreach ($merged as $k => $v){
foreach ($merged as $k => $v) {
$k = preg_replace('/(\")|(\\\")/', "\\\"", $k);
$v = preg_replace('/(\")|(\\\")/', "\\\"", $v);
if (substr($v, 0, 2) === '@@' && substr($v, -2) === '@@') {
@ -338,7 +353,7 @@ class MessageController extends Controller
if ($format === 'po') {
$merged = '';
sort($messages);
foreach($messages as $message) {
foreach ($messages as $message) {
$message = preg_replace('/(\")|(\\\")/', '\\\"', $message);
$merged .= "msgid \"$message\"\n";
$merged .= "msgstr \"\"\n";

2
framework/db/ActiveQuery.php

@ -120,7 +120,7 @@ class ActiveQuery extends Query implements ActiveQueryInterface
$this->findWith($this->with, $models);
}
if (!$this->asArray) {
foreach($models as $model) {
foreach ($models as $model) {
$model->afterFind();
}
}

2
framework/db/ActiveRelationTrait.php

@ -288,7 +288,7 @@ trait ActiveRelationTrait
foreach ($primaryModels as $i => $primaryModel) {
if ($primaryModels[$i][$primaryName] instanceof ActiveRecordInterface) {
$primaryModels[$i][$primaryName]->populateRelation($name, $primaryModel);
} elseif (!empty($primaryModels[$i][$primaryName])) {
} elseif (!empty($primaryModels[$i][$primaryName])) {
$primaryModels[$i][$primaryName][$name] = $primaryModel;
}
}

2
framework/db/QueryBuilder.php

@ -599,7 +599,7 @@ class QueryBuilder extends \yii\base\Object
if (strpos($column, '(') === false) {
$column = $this->db->quoteColumnName($column);
}
$columns[$i] = "$column AS " . $this->db->quoteColumnName($i);;
$columns[$i] = "$column AS " . $this->db->quoteColumnName($i);
} elseif (strpos($column, '(') === false) {
if (preg_match('/^(.*?)(?i:\s+as\s+|\s+)([\w\-_\.]+)$/', $column, $matches)) {
$columns[$i] = $this->db->quoteColumnName($matches[1]) . ' AS ' . $this->db->quoteColumnName($matches[2]);

2
framework/db/oci/Schema.php

@ -242,7 +242,7 @@ EOD;
} elseif (strpos($dbType, 'NUMBER') !== false || strpos($dbType, 'INTEGER') !== false) {
if (strpos($dbType, '(') && preg_match('/\((.*)\)/', $dbType, $matches)) {
$values = explode(',', $matches[1]);
if (isset($values[1]) and (((int)$values[1]) > 0)) {
if (isset($values[1]) && (((int)$values[1]) > 0)) {
$column->type = 'double';
} else {
$column->type = 'integer';

3
framework/grid/ActionColumn.php

@ -88,6 +88,7 @@ class ActionColumn extends Column
$this->buttons['view'] = function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', $url, [
'title' => Yii::t('yii', 'View'),
'data-pjax' => '0',
]);
};
}
@ -95,6 +96,7 @@ class ActionColumn extends Column
$this->buttons['update'] = function ($url, $model) {
return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [
'title' => Yii::t('yii', 'Update'),
'data-pjax' => '0',
]);
};
}
@ -104,6 +106,7 @@ class ActionColumn extends Column
'title' => Yii::t('yii', 'Delete'),
'data-confirm' => Yii::t('yii', 'Are you sure to delete this item?'),
'data-method' => 'post',
'data-pjax' => '0',
]);
};
}

2
framework/grid/DataColumn.php

@ -152,7 +152,7 @@ class DataColumn extends Column
return parent::getDataCellContent($model, $key, $index);
}
return $value;
}
}
/**
* @inheritdoc

26
framework/helpers/BaseFileHelper.php

@ -147,6 +147,7 @@ class BaseFileHelper
* @param string $src the source directory
* @param string $dst the destination directory
* @param array $options options for directory copy. Valid options are:
* @throws \yii\base\InvalidParamException if unable to open directory
*
* - dirMode: integer, the permission to be set for newly copied directories. Defaults to 0775.
* - fileMode: integer, the permission to be set for newly copied files. Defaults to the current environment setting.
@ -280,14 +281,14 @@ class BaseFileHelper
$options['basePath'] = realpath($dir);
// this should also be done only once
if (isset($options['except'])) {
foreach($options['except'] as $key=>$value) {
foreach ($options['except'] as $key => $value) {
if (is_string($value)) {
$options['except'][$key] = static::parseExcludePattern($value);
}
}
}
if (isset($options['only'])) {
foreach($options['only'] as $key=>$value) {
foreach ($options['only'] as $key => $value) {
if (is_string($value)) {
$options['only'][$key] = static::parseExcludePattern($value);
}
@ -397,7 +398,7 @@ class BaseFileHelper
if ($pattern === $baseName) {
return true;
}
} else if ($flags & self::PATTERN_ENDSWITH) {
} elseif ($flags & self::PATTERN_ENDSWITH) {
/* "*literal" matching against "fooliteral" */
$n = StringHelper::byteLength($pattern);
if (StringHelper::byteSubstr($pattern, 1, $n) === StringHelper::byteSubstr($baseName, -$n, $n)) {
@ -472,7 +473,7 @@ class BaseFileHelper
*/
private static function lastExcludeMatchingFromList($basePath, $path, $excludes)
{
foreach(array_reverse($excludes) as $exclude) {
foreach (array_reverse($excludes) as $exclude) {
if (is_string($exclude)) {
$exclude = self::parseExcludePattern($exclude);
}
@ -508,13 +509,14 @@ class BaseFileHelper
if (!is_string($pattern)) {
throw new InvalidParamException('Exclude/include pattern must be a string.');
}
$result = array(
$result = [
'pattern' => $pattern,
'flags' => 0,
'firstWildcard' => false,
);
if (!isset($pattern[0]))
];
if (!isset($pattern[0])) {
return $result;
}
if ($pattern[0] == '!') {
$result['flags'] |= self::PATTERN_NEGATIVE;
@ -526,11 +528,13 @@ class BaseFileHelper
$len--;
$result['flags'] |= self::PATTERN_MUSTBEDIR;
}
if (strpos($pattern, '/') === false)
if (strpos($pattern, '/') === false) {
$result['flags'] |= self::PATTERN_NODIR;
}
$result['firstWildcard'] = self::firstWildcardInPattern($pattern);
if ($pattern[0] == '*' && self::firstWildcardInPattern(StringHelper::byteSubstr($pattern, 1, StringHelper::byteLength($pattern))) === false)
if ($pattern[0] == '*' && self::firstWildcardInPattern(StringHelper::byteSubstr($pattern, 1, StringHelper::byteLength($pattern))) === false) {
$result['flags'] |= self::PATTERN_ENDSWITH;
}
$result['pattern'] = $pattern;
return $result;
}
@ -542,8 +546,8 @@ class BaseFileHelper
*/
private static function firstWildcardInPattern($pattern)
{
$wildcards = array('*','?','[','\\');
$wildcardSearch = function($r, $c) use ($pattern) {
$wildcards = ['*', '?', '[', '\\'];
$wildcardSearch = function ($r, $c) use ($pattern) {
$p = strpos($pattern, $c);
return $r===false ? $p : ($p===false ? $r : min($r, $p));
};

6
framework/helpers/BaseHtml.php

@ -1140,12 +1140,12 @@ class BaseHtml
* about attribute expression.
* @param array $options the tag options in terms of name-value pairs. These will be rendered as
* the attributes of the resulting tag. The values will be HTML-encoded using [[encode()]].
* See [[renderTagAttributes()]] for details on how these are beeing rendered.
* See [[renderTagAttributes()]] for details on how these are being rendered.
* @return string the generated textarea tag
*/
public static function activeTextarea($model, $attribute, $options = [])
{
$name = static::getInputName($model, $attribute);
$name = isset($options['name']) ? $options['name'] : static::getInputName($model, $attribute);
$value = static::getAttributeValue($model, $attribute);
if (!array_key_exists('id', $options)) {
$options['id'] = static::getInputId($model, $attribute);
@ -1579,7 +1579,7 @@ class BaseHtml
{
if (isset($options['class'])) {
$classes = ' ' . $options['class'] . ' ';
if (($pos = strpos($classes, ' ' . $class . ' ')) === false) {
if (strpos($classes, ' ' . $class . ' ') === false) {
$options['class'] .= ' ' . $class;
}
} else {

2
framework/helpers/BaseMarkdown.php

@ -86,7 +86,7 @@ class BaseMarkdown
/** @var \cebe\markdown\Markdown $parser */
if (!isset(static::$flavors[$flavor])) {
throw new InvalidParamException("Markdown flavor '$flavor' is not defined.'");
} elseif(!is_object($config = static::$flavors[$flavor])) {
} elseif (!is_object($config = static::$flavors[$flavor])) {
$parser = Yii::createObject($config);
if (is_array($config)) {
foreach ($config as $name => $value) {

4
framework/helpers/BaseSecurity.php

@ -107,10 +107,10 @@ class BaseSecurity
*/
protected static function stripPadding($data)
{
$end = StringHelper::byteSubstr($data, -1, NULL);
$end = StringHelper::byteSubstr($data, -1, null);
$last = ord($end);
$n = StringHelper::byteLength($data) - $last;
if (StringHelper::byteSubstr($data, $n, NULL) == str_repeat($end, $last)) {
if (StringHelper::byteSubstr($data, $n, null) == str_repeat($end, $last)) {
return StringHelper::byteSubstr($data, 0, $n);
}
return false;

4
framework/i18n/GettextMessageSource.php

@ -70,9 +70,9 @@ class GettextMessageSource extends MessageSource
if ($messages === null && $fallbackMessages === null && $fallbackLanguage != $this->sourceLanguage) {
Yii::error("The message file for category '$category' does not exist: $messageFile Fallback file does not exist as well: $fallbackMessageFile", __METHOD__);
} else if (empty($messages)) {
} elseif (empty($messages)) {
return $fallbackMessages;
} else if (!empty($fallbackMessages)) {
} elseif (!empty($fallbackMessages)) {
foreach ($fallbackMessages as $key => $value) {
if (!empty($value) && empty($messages[$key])) {
$messages[$key] = $fallbackMessages[$key];

2
framework/i18n/I18N.php

@ -126,7 +126,7 @@ class I18N extends Component
}
$p = [];
foreach($params as $name => $value) {
foreach ($params as $name => $value) {
$p['{' . $name . '}'] = $value;
}
return strtr($message, $p);

10
framework/i18n/MessageFormatter.php

@ -143,7 +143,7 @@ class MessageFormatter extends Component
return false;
}
$map = [];
foreach($tokens as $i => $token) {
foreach ($tokens as $i => $token) {
if (is_array($token)) {
$param = trim($token[0]);
if (!isset($map[$param])) {
@ -169,7 +169,7 @@ class MessageFormatter extends Component
return false;
} else {
$values = [];
foreach($result as $key => $value) {
foreach ($result as $key => $value) {
$values[$map[$key]] = $value;
}
return $values;
@ -190,7 +190,7 @@ class MessageFormatter extends Component
if (($tokens = self::tokenizePattern($pattern)) === false) {
return false;
}
foreach($tokens as $i => $token) {
foreach ($tokens as $i => $token) {
if (!is_array($token)) {
continue;
}
@ -210,7 +210,7 @@ class MessageFormatter extends Component
}
$type = isset($token[1]) ? trim($token[1]) : 'none';
// replace plural and select format recursively
if ($type == 'plural' || $type == 'select') {
if ($type == 'plural' || $type == 'select') {
if (!isset($token[2])) {
return false;
}
@ -244,7 +244,7 @@ class MessageFormatter extends Component
$this->_errorMessage = "Message pattern is invalid.";
return false;
}
foreach($tokens as $i => $token) {
foreach ($tokens as $i => $token) {
if (is_array($token)) {
if (($tokens[$i] = $this->parseToken($token, $args, $locale)) === false) {
$this->_errorCode = -1;

4
framework/i18n/PhpMessageSource.php

@ -73,9 +73,9 @@ class PhpMessageSource extends MessageSource
if ($messages === null && $fallbackMessages === null && $fallbackLanguage != $this->sourceLanguage) {
Yii::error("The message file for category '$category' does not exist: $messageFile Fallback file does not exist as well: $fallbackMessageFile", __METHOD__);
} else if (empty($messages)) {
} elseif (empty($messages)) {
return $fallbackMessages;
} else if (!empty($fallbackMessages)) {
} elseif (!empty($fallbackMessages)) {
foreach ($fallbackMessages as $key => $value) {
if (!empty($value) && empty($messages[$key])) {
$messages[$key] = $fallbackMessages[$key];

1
framework/mail/BaseMailer.php

@ -348,5 +348,4 @@ abstract class BaseMailer extends Component implements MailerInterface, ViewCont
$event = new MailEvent(['message' => $message, 'isSuccessful' => $isSuccessful]);
$this->trigger(self::EVENT_AFTER_SEND, $event);
}
}

1
framework/test/Fixture.php

@ -82,4 +82,3 @@ class Fixture extends Component
{
}
}

2
framework/validators/ImageValidator.php

@ -124,7 +124,7 @@ class ImageValidator extends FileValidator
}
if ($this->underHeight === null) {
$this->underHeight = Yii::t('yii', 'The image "{file}" is too small. The height cannot be smaller than {limit, number} {limit, plural, one{pixel} other{pixels}}.');
}
}
if ($this->overWidth === null) {
$this->overWidth = Yii::t('yii', 'The image "{file}" is too large. The width cannot be larger than {limit, number} {limit, plural, one{pixel} other{pixels}}.');
}

1
framework/validators/PunycodeAsset.php

@ -6,6 +6,7 @@
*/
namespace yii\validators;
use yii\web\AssetBundle;
/**

1
framework/validators/ValidationAsset.php

@ -6,6 +6,7 @@
*/
namespace yii\validators;
use yii\web\AssetBundle;
/**

2
framework/web/AssetConverter.php

@ -82,7 +82,7 @@ class AssetConverter extends Component implements AssetConverterInterface
$proc = proc_open($command, $descriptor, $pipes, $basePath);
$stdout = stream_get_contents($pipes[1]);
$stderr = stream_get_contents($pipes[2]);
foreach($pipes as $pipe) {
foreach ($pipes as $pipe) {
fclose($pipe);
}
$status = proc_close($proc);

1
framework/widgets/ActiveFormAsset.php

@ -6,6 +6,7 @@
*/
namespace yii\widgets;
use yii\web\AssetBundle;
/**

2
framework/widgets/LinkPager.php

@ -128,7 +128,7 @@ class LinkPager extends Widget
protected function registerLinkTags()
{
$view = $this->getView();
foreach($this->pagination->getLinks() as $rel => $href) {
foreach ($this->pagination->getLinks() as $rel => $href) {
$view->registerLinkTag(['rel' => $rel, 'href' => $href], $rel);
}
}

2
framework/widgets/Pjax.php

@ -25,6 +25,8 @@ use yii\web\Response;
* You may configure [[linkSelector]] to specify which links should trigger pjax, and configure [[formSelector]]
* to specify which form submission may trigger pjax.
*
* You may disable pjax for a specific link inside the container by adding `data-pjax="0"` attribute to this link.
*
* The following example shows how to use Pjax with the [[\yii\gridview\GridView]] widget so that the grid pagination,
* sorting and filtering can be done via pjax:
*

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save