यह करने के लिए एक ही रास्ता एक ruleset.xml फ़ाइल का उपयोग कर अपनी खुद की कोडिंग मानक लिखने के लिए है। इसे पूरे पीयर कोडिंग मानक को आयात करने की आवश्यकता है लेकिन इस चेक को निष्पादित विशिष्ट स्नीफ को बाहर कर दें। यह बिट एकल एक्सएमएल फाइल के साथ किया जा सकता है।
लेकिन वहाँ कोई अंतर्निहित sniffs कि else
वाक्य रचना आप देख रहे हैं के प्रकार को लागू कर रहे हैं। तो इसे लागू करने के लिए, आपको एक कस्टम स्नीफ लिखना होगा, जो अधिक जटिल है क्योंकि आपको इसे कहीं भी स्टोर करना होगा।
आप सरल कस्टम कोडिंग मानक कोशिश कर रहा द्वारा शुरू करने के लिए चाहते हैं, एक फ़ाइल ruleset.xml
कहा जाता है बना सकते हैं और इस सामग्री बनाने:
<?xml version="1.0"?>
<ruleset name="MyStandard">
<description>My custom coding standard.</description>
<rule ref="PEAR">
<exclude name="PEAR.ControlStructures.ControlSignature"/>
</rule>
</ruleset>
तो इस तरह PHP_CodeSniffer चलाएँ:
phpcs --standard=/path/to/ruleset.xml /path/to/code
हो जाएगा ताकि पीयर कोडिंग मानक के खिलाफ अपना कोड जांचें लेकिन नियंत्रण संरचनाओं के लिए विशिष्ट चेक को बाहर कर दें। यदि यह सब आपको चाहिए, तो आप वहां रुक सकते हैं। यदि आपके पास लोगों की एक टीम है जो आप इस कस्टम मानक को चलाने के इच्छुक हैं, तो बस उन्हें फ़ाइल दें और वे इसका भी उपयोग कर सकते हैं।
ruleset.xml प्रारूप के बारे में अधिक जानकारी नहीं है: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
आप आगे बढ़ कर एक कस्टम सूंघ लिखने के लिए चाहते हैं, तो यह सबसे अच्छा है बुनियादी ट्यूटोरियल के साथ शुरू करने के लिए: http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php
हो जाएगा ताकि बताएं कि कोडिंग मानक क्या है। फिर, आप अपना खुद का स्नीफ बनाना चाहते हैं, जो कि पियर की एक प्रति है, जिसमें आप संरचित नियंत्रण कैसे करते हैं इसके लिए मामूली बदलाव होते हैं। नाशपाती सूंघ यहाँ है: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php
परीक्षण के बिना
, मुझे लगता है आप }EOLelse {EOL',
को } else {EOL',
बदल सकते हैं और देखते हैं कि अगर काम करता है करना चाहते हैं।
क्या आपका कोड ऑनलाइन उपलब्ध है? मैं भी इस तरह अपना कोड स्टाइल करना चाहता हूं लेकिन मैं PEAR.ControlStructures.ControlSignature को बाहर नहीं करना चाहता हूं। – TheFox