Bỏ qua tham số không sử dụng với mã sniffer


11

Tôi đang chạy bộ mã hóa với tiêu chuẩn EcgM2 trên tiện ích mở rộng tùy chỉnh của mình và tôi nhận được cảnh báo

Tham số phương thức $contextkhông bao giờ được sử dụng

cho các InstallSchema.phptập tin.
Làm thế nào tôi có thể làm cho cảnh báo này biến mất?
Phương pháp của tôi trông như thế này (chú ý SuppressWarningsở trên cùng của nó):

/**
 * {@inheritdoc}
 * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
 * @SuppressWarnings(PHPMD.UnusedFormalParameter)
 */
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
    //my install script here that does not use the parameter $context
}

Câu trả lời:


9

Tôi đã có thể che giấu bụi bẩn dưới tấm thảm như thế này:

// @codingStandardsIgnoreStart
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) 
{
// @codingStandardsIgnoreEnd
....
}

Tôi không tự hào về nó, nhưng nó hoạt động.


việc thêm // @codingStandardsIgnoreEndchữ ký giữa phương thức và dấu ngoặc nhọn mở sẽ gây ra cảnh báo phpc
Radu

đúng. nó có thể được thêm vào sau khung mở. Tôi chỉnh sửa câu trả lời.
Marius

4

Cập nhật phpc (squizlabs / PHP_CodeSniffer) lên bản mới nhất (v3.2.3 tại 2017 / 03-06) và sử dụng như:

/**
 * {@inheritdoc}
 */
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
    //my install script here that does not use the parameter $context
}

2

Tôi khá chắc chắn quy tắc cảnh báo triệt tiêu bạn sẽ phải sử dụng là:

Generic.CodeAnalysis.UnusedFunctionParameter

Vì vậy, đây phải là mã để sử dụng trong Tài liệu PHP của bạn:

@SuppressWarnings(Generic.CodeAnalysis.UnusedFunctionParameter)

cảm ơn vì đã đào cái này lên, nhưng nó không có tác dụng
Marius

1
@Marius hmm thật khó chịu
Raphael tại Digital Pianism

vẫn không hoạt động :(
Haim

1

Tôi nghĩ rằng đây là cách đúng đắn:

/**
 * {@inheritdoc}
 * phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter
 */
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
    //my install script here that does not use the parameter $context
}

0

Chỉ trong trường hợp nếu ai đó có cùng cấu hình, nó sẽ hoạt động với tôi nhưng với SuppressWarnings của OP! Không có câu trả lời khác làm việc.

Vì vậy, @SuppressWarnings(PHPMD.UnusedFormalParameter)thực sự hoạt động với PHPMD.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.