Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AbstractHelper.php
Go to the documentation of this file.
1 <?php
9 
10 abstract class AbstractHelper
11 {
17  protected $_modulePrefix;
18 
22  protected $_resource;
23 
30  public function __construct(\Magento\Framework\App\ResourceConnection $resource, $modulePrefix)
31  {
32  $this->_resource = $resource;
33  $this->_modulePrefix = (string)$modulePrefix;
34  }
35 
41  protected function getConnection()
42  {
43  return $this->_resource->getConnection($this->_modulePrefix);
44  }
45 
64  public function escapeLikeValue($value, $options = [])
65  {
66  $value = str_replace('\\', '\\\\', $value);
67 
68  $replaceFrom = [];
69  $replaceTo = [];
70  if (empty($options['allow_symbol_mask'])) {
71  $replaceFrom[] = '_';
72  $replaceTo[] = '\_';
73  }
74  if (empty($options['allow_string_mask'])) {
75  $replaceFrom[] = '%';
76  $replaceTo[] = '\%';
77  }
78  if ($replaceFrom) {
79  $value = str_replace($replaceFrom, $replaceTo, $value);
80  }
81 
82  if (isset($options['position'])) {
83  switch ($options['position']) {
84  case 'any':
85  $value = '%' . $value . '%';
86  break;
87  case 'start':
88  $value = $value . '%';
89  break;
90  case 'end':
91  $value = '%' . $value;
92  break;
93  default:
94  break;
95  }
96  }
97 
98  return $value;
99  }
100 
111  abstract public function addLikeEscape($value, $options = []);
112 
124  public function getCILike($field, $value, $options = [])
125  {
126  $quotedField = $this->getConnection()->quoteIdentifier($field);
127  return new \Zend_Db_Expr($quotedField . ' LIKE ' . $this->addLikeEscape($value, $options));
128  }
129 }
__construct(\Magento\Framework\App\ResourceConnection $resource, $modulePrefix)
$resource
Definition: bulk.php:12
getCILike($field, $value, $options=[])
$value
Definition: gender.phtml:16