web-dev-qa-db-ja.com

_getTab()はスペースを返します

次のコードが1つのタブではなく2つのスペースを返すのはなぜですか?この設定を簡単に変更するにはどうすればよいですか?

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

参照

2
pl71

_libraries/joomla/factory.php_内にあるprotected static function createDocument()に2つのスペースがハードコードされています。

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

_\11_内の_libraries/joomla/document/document.php_の以前のクラスプロパティ宣言をオーバーライドし、ヘッドセクションのすべての行が2つのスペースでインデントされます。

3
pl71

メソッドのドキュメントを読んだ場合、それはまさに想定通りのことをしています。キーボードタブイベントに含まれるスペースの数のシステムデフォルトを返します。

以下は、JDocumentクラスから取得したメソッドです。

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

そして$ _tabのクラスプロパティ:

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

上記を使用して、PHP Documents for Escape Sequences in textを参照すると、正確な文字列への参照が表示されます。

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

詳細については、以下のリンクを参照してください。ただし、問題のメソッドは、タブのPHPエスケープシーケンスを返します。

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

2
Brian Bolli