. */ namespace SP\Infrastructure\Common\Repositories; use SP\Infrastructure\Database\DatabaseUtil; use SP\Infrastructure\Database\DbStorageInterface; /** * Trait RepositoryItemTrait * * @package SP\Infrastructure\Common\Repositories */ trait RepositoryItemTrait { /** * Crear un hash con el nombre del elemento. * * Esta función crear un hash para detectar nombres de elementos duplicados mediante * la eliminación de carácteres especiales y capitalización */ protected function makeItemHash( string $name, DbStorageInterface $DBStorage ): string { $charsSrc = ['.', ' ', '_', ', ', '-', ';', '\'', '"', ':', '(', ')', '|', '/']; $databaseUtil = new DatabaseUtil($DBStorage); return md5( strtolower( str_replace($charsSrc, '', $databaseUtil->escape($name)) ) ); } /** * Devuelve una cadena con los parámetros para una consulta SQL desde un array * * @param array $items * @param string $placeholder Cadena a utilizar para los parámetros * * @return string */ protected function buildParamsFromArray( array $items, string $placeholder = '?' ): string { return implode( ',', array_fill(0, count($items), $placeholder) ); } }