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: * Holds the identifier string
32: *
33: * @var string
34: */
35: protected $_identifier;
36:
37: /**
38: * Constructor
39: *
40: * @param string $identifier The identifier this expression represents
41: */
42: public function __construct($identifier)
43: {
44: $this->_identifier = $identifier;
45: }
46:
47: /**
48: * Sets the identifier this expression represents
49: *
50: * @param string $identifier The identifier
51: * @return void
52: */
53: public function setIdentifier($identifier)
54: {
55: $this->_identifier = $identifier;
56: }
57:
58: /**
59: * Returns the identifier this expression represents
60: *
61: * @return string
62: */
63: public function getIdentifier()
64: {
65: return $this->_identifier;
66: }
67:
68: /**
69: * Converts the expression to its string representation
70: *
71: * @param \Cake\Database\ValueBinder $generator Placeholder generator object
72: * @return string
73: */
74: public function sql(ValueBinder $generator)
75: {
76: return $this->_identifier;
77: }
78:
79: /**
80: * This method is a no-op, this is a leaf type of expression,
81: * hence there is nothing to traverse
82: *
83: * @param callable $callable The callable to traverse with.
84: * @return void
85: */
86: public function traverse(callable $callable)
87: {
88: }
89: }
90: