web-dev-qa-db-fra.com

_getTab () retourne des espaces

Pourquoi le code suivant renvoie-t-il deux espaces au lieu d'un onglet? Comment puis-je changer ce paramètre facilement?

$document = JFactory::getDocument();
$tab = $document->_getTab();

référence

2
pl71

Deux espaces sont codés en dur dans protected static function createDocument() situé à l'intérieur de libraries/joomla/factory.php:

$attributes = array(
        'charset' => 'utf-8',
        'lineend' => 'unix',
        'tab' => '  ',
        'language' => $lang->getTag(),
        'direction' => $lang->isRTL() ? 'rtl' : 'ltr',
        'mediaversion' => $version->getMediaVersion()
    );

qui annule la déclaration de propriété de classe précédente de \11 dans libraries/joomla/document/document.php et toutes les lignes de la section de tête deviennent indentées de 2 espaces.

3
pl71

Si vous lisez la documentation de la méthode, il fait exactement ce que vous êtes censé faire. Renvoie la valeur par défaut du système pour le nombre d'espaces qu'un événement de tabulation contient.

Ci-dessous, la méthode issue de la classe JDocument:

/**
 * Returns a string containing the unit for indenting HTML
 *
 * @return  string
 *
 * @since   11.1
 */
public function _getTab()
{
    return $this->_tab;
}

Et la propriété de classe pour $ _tab:

/**
 * Tab string
 *
 * @var    string
 * @since  11.1
 */
public $_tab = "\11";

En utilisant ce qui précède et en référant le PHP Documents for Escape Sequences dans le texte, nous voyons une référence à la chaîne exacte:

\11
might be a back reference, or another way of writing a tab

Vous pouvez visiter le lien ci-dessous pour plus d'informations, mais la méthode en question renvoie la séquence d'échappement PHP) pour un onglet.

http://php.net/manual/en/regexp.reference.escape.php

2
Brian Bolli