Event.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * @link http://www.yiiframework.com/
  4. * @copyright Copyright (c) 2008 Yii Software LLC
  5. * @license http://www.yiiframework.com/license/
  6. */
  7. namespace yii\debug\models\search;
  8. use yii\data\ArrayDataProvider;
  9. use yii\debug\components\search\Filter;
  10. /**
  11. * Event
  12. *
  13. * @author Paul Klimov <klimov.paul@gmail.com>
  14. * @since 2.0.14
  15. */
  16. class Event extends Base
  17. {
  18. /**
  19. * @var bool whether event is static or not.
  20. */
  21. public $isStatic;
  22. public $name;
  23. public $class;
  24. public $senderClass;
  25. /**
  26. * {@inheritdoc}
  27. */
  28. public function rules()
  29. {
  30. return [
  31. [['name', 'class', 'senderClass'], 'string'],
  32. [['isStatic'], 'boolean'],
  33. //[['isStatic'], 'filter', 'filter' => function ($value) {return strlen($value) > 0 ? (bool)$value : $value;}],
  34. [$this->attributes(), 'safe'],
  35. ];
  36. }
  37. /**
  38. * {@inheritdoc}
  39. */
  40. public function attributeLabels()
  41. {
  42. return [
  43. 'name' => 'Name',
  44. 'class' => 'Class',
  45. 'senderClass' => 'Sender',
  46. 'isStatic' => 'Static',
  47. ];
  48. }
  49. /**
  50. * Returns data provider with filled models. Filter applied if needed.
  51. *
  52. * @param array $params an array of parameter values indexed by parameter names
  53. * @param array $models data to return provider for
  54. * @return \yii\data\ArrayDataProvider
  55. */
  56. public function search($params, $models)
  57. {
  58. $dataProvider = new ArrayDataProvider([
  59. 'allModels' => $models,
  60. 'pagination' => false,
  61. 'sort' => [
  62. 'attributes' => ['time', 'level', 'category', 'message'],
  63. 'defaultOrder' => [
  64. 'time' => SORT_ASC,
  65. ],
  66. ],
  67. ]);
  68. if (!($this->load($params) && $this->validate())) {
  69. return $dataProvider;
  70. }
  71. $filter = new Filter();
  72. $this->addCondition($filter, 'isStatic');
  73. $this->addCondition($filter, 'name', true);
  74. $this->addCondition($filter, 'class', true);
  75. $this->addCondition($filter, 'senderClass', true);
  76. $dataProvider->allModels = $filter->filter($models);
  77. return $dataProvider;
  78. }
  79. }