1: <?php
2: /**
3: * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
4: * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
5: *
6: * Licensed under The MIT License
7: * For full copyright and license information, please see the LICENSE.txt
8: * Redistributions of files must retain the above copyright notice.
9: *
10: * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
11: * @link https://cakephp.org CakePHP(tm) Project
12: * @since 3.0.0
13: * @license https://opensource.org/licenses/mit-license.php MIT License
14: */
15: namespace Cake\Database\Expression;
16:
17: use Cake\Database\ExpressionInterface;
18: use Cake\Database\ValueBinder;
19:
20: /**
21: * Represents a single identifier name in the database.
22: *
23: * Identifier values are unsafe with user supplied data.
24: * Values will be quoted when identifier quoting is enabled.
25: *
26: * @see \Cake\Database\Query::identifier()
27: */
28: class IdentifierExpression implements ExpressionInterface
29: {
30:
31: /**
32: * Holds the identifier string
33: *
34: * @var string
35: */
36: protected $_identifier;
37:
38: /**
39: * Constructor
40: *
41: * @param string $identifier The identifier this expression represents
42: */
43: public function __construct($identifier)
44: {
45: $this->_identifier = $identifier;
46: }
47:
48: /**
49: * Sets the identifier this expression represents
50: *
51: * @param string $identifier The identifier
52: * @return void
53: */
54: public function setIdentifier($identifier)
55: {
56: $this->_identifier = $identifier;
57: }
58:
59: /**
60: * Returns the identifier this expression represents
61: *
62: * @return string
63: */
64: public function getIdentifier()
65: {
66: return $this->_identifier;
67: }
68:
69: /**
70: * Converts the expression to its string representation
71: *
72: * @param \Cake\Database\ValueBinder $generator Placeholder generator object
73: * @return string
74: */
75: public function sql(ValueBinder $generator)
76: {
77: return $this->_identifier;
78: }
79:
80: /**
81: * This method is a no-op, this is a leaf type of expression,
82: * hence there is nothing to traverse
83: *
84: * @param callable $callable The callable to traverse with.
85: * @return void
86: */
87: public function traverse(callable $callable)
88: {
89: }
90: }
91: