Blame view

vendor/yiisoft/yii2/db/Expression.php 1.62 KB
abf1649b   andryeyev   Чистая установка ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  <?php
  /**
   * @link http://www.yiiframework.com/
   * @copyright Copyright (c) 2008 Yii Software LLC
   * @license http://www.yiiframework.com/license/
   */
  
  namespace yii\db;
  
  /**
   * Expression represents a DB expression that does not need escaping or quoting.
   * When an Expression object is embedded within a SQL statement or fragment,
   * it will be replaced with the [[expression]] property value without any
   * DB escaping or quoting. For example,
   *
   * ~~~
   * $expression = new Expression('NOW()');
   * $sql = 'SELECT ' . $expression;  // SELECT NOW()
   * ~~~
   *
   * An expression can also be bound with parameters specified via [[params]].
   *
   * @author Qiang Xue <qiang.xue@gmail.com>
   * @since 2.0
   */
  class Expression extends \yii\base\Object
  {
      /**
       * @var string the DB expression
       */
      public $expression;
      /**
       * @var array list of parameters that should be bound for this expression.
       * The keys are placeholders appearing in [[expression]] and the values
       * are the corresponding parameter values.
       */
      public $params = [];
  
  
      /**
       * Constructor.
       * @param string $expression the DB expression
       * @param array $params parameters
       * @param array $config name-value pairs that will be used to initialize the object properties
       */
      public function __construct($expression, $params = [], $config = [])
      {
          $this->expression = $expression;
          $this->params = $params;
          parent::__construct($config);
      }
  
      /**
       * String magic method
       * @return string the DB expression
       */
      public function __toString()
      {
          return $this->expression;
      }
  }