2013-07-03 15 views
16

Znalazłem się w sytuacji, w której przełom w przełączaniu jest najlepszą opcją. Mam na myśli:Jaki jest najlepszy sposób udokumentowania celowego przełączania przełączników?

switch($bar) 
{ 
    case 0: 
     // do something 
    case 1: 
     // do more 
     break; 
    //more cases 
} 

Obecnie mój IDE (phpStorm) rzuca ostrzeżenie o upadku.

Czy jest jakiś akceptowany sposób w phpDoc do udokumentowania takiego zamierzonego upadku?

n.b. Jestem świadomy, że niektórzy z was niewątpliwie będą twierdzić, że tego nie robią, ale ja podpisuję się pod tym definition of evil i jest to z pewnością "najmniej zła alternatywa".

+2

Zawsze umieszczam '// Deliberate fallthrough' w komentarzu na prawo od dwukropka, choć jest to bardziej dla programisty. Nie sądzę, że możesz wyłączyć ostrzeżenie dla IDE – GordonM

+0

Jedynym sposobem na pozbycie się ostrzeżenia byłoby skonfigurowanie ostrzeżeń, że phpstorm drukuje, w tym przypadku usuń ostrzeżenie przed upadkiem. ale to nie jest naprawdę produktywne, ponieważ być może w innym skrypcie po prostu zapominasz o przerwie i dlatego ostrzeżenie byłoby użyteczne. obchodzę się z tym po prostu ignorując ostrzeżenie i może dodać dodatkowy komentarz lub coś podobnego do niego, aby wyjaśnić, że zostało celowo napisane tak jak jest. – luk2302

+0

@GordonM Robię to już, ale zastanawiałem się, czy istnieje bardziej formalny sposób dokumentowania tego zachowania. –

Odpowiedz

35

Chociaż jednoznacznie pojawia się pytanie o phpDoc, oto rozwiązanie specyficzne dla IDE dla PHPStorm.

język JavaScript, komentarz

//noinspection FallthroughInSwitchStatementJS 

powyższej instrukcji switch.

dla PHP, komentarz

/** @noinspection PhpMissingBreakStatementInspection */ 

powyżej instrukcji case naruszającym przepisy.

+0

Lovely! Tego właśnie oczekiwałem. Dzięki. –

+3

W PHPStorm (prawdopodobnie również w innych IDE JetBrains), możesz również nacisnąć Alt + Enter z kursorem nad nieprawidłowym fragmentem kodu i wybrać "Ukryj dla wyciągu". Następnie odpowiedni komentarz wyłączający kontrolę zostanie automatycznie wstawiony we właściwym miejscu. – rob74

+1

To pomaga, ale byłoby fajnie, gdyby PhpDoc mógł mieć tag taki jak @fallthrough :) Może coś dla PHP-Fig – donquixote