Posted at

code_sniffer で「namespace 宣言のあとに 1 つの空行を記述してください。」


Question

Sider(旧SideCI)の CodeSniffer で空行を入れているのにグローバル名前空間の場合エラーが発生する


[code_sniffer] namespace 宣言のあとに 1 つの空行を記述してください。

There must be one blank line after the namespace declaration



エラーが起きるパターン1

<?php

// 汎用のため明示的にグローバル名前空間に設置
namespace {

/* [Main] ============================================================== */

// コード



エラーが起きるパターン2

<?php

namespace { // 汎用のため明示的にグローバル名前空間に設置

/* [Main] ============================================================== */

// コード



Answer

名前空間を明示的にグローバル名前空間にする場合、namespace の後には2行入れないとパスしないらしい。何気にハマってしまった。ちょっと気持ち悪い。


OKパターン1

<?php

// 汎用のため明示的にグローバル名前空間に設置
namespace {

/* [Main] ============================================================== */

// コード



OKパターン2

<?php

namespace { // 汎用のため明示的にグローバル名前空間に設置

/* [Main] ============================================================== */

// コード



SideCI.yml の設定


sideci.yml

linter:

code_sniffer:
version: 3
dir: ./
options:
extensions: php,inc
standard: PSR2
encoding: utf-8