1<?php 2 3/* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Symfony\Component\Console\Helper; 13 14/** 15 * Helper is the base class for all helper classes. 16 * 17 * @author Fabien Potencier <fabien@symfony.com> 18 */ 19abstract class Helper implements HelperInterface 20{ 21 protected $helperSet = null; 22 23 /** 24 * Sets the helper set associated with this helper. 25 * 26 * @param HelperSet $helperSet A HelperSet instance 27 */ 28 public function setHelperSet(HelperSet $helperSet = null) 29 { 30 $this->helperSet = $helperSet; 31 } 32 33 /** 34 * Gets the helper set associated with this helper. 35 * 36 * @return HelperSet A HelperSet instance 37 */ 38 public function getHelperSet() 39 { 40 return $this->helperSet; 41 } 42 43 /** 44 * Returns the length of a string, using mb_strlen if it is available. 45 * 46 * @param string $string The string to check its length 47 * 48 * @return int The length of the string 49 */ 50 protected function strlen($string) 51 { 52 if (!function_exists('mb_strlen')) { 53 return strlen($string); 54 } 55 56 if (false === $encoding = mb_detect_encoding($string)) { 57 return strlen($string); 58 } 59 60 return mb_strlen($string, $encoding); 61 } 62} 63