phpcs

2012-11-22 27 views
5

के लिए पीयर मानक संशोधित करना हम अपने phpcs सत्यापन के लिए PEAR मानक में एक छोटा सा परिवर्तन करना चाहते हैं। पल नाशपाती आप की आवश्यकता है इस तरह किसी और बयान लिखने के लिए:phpcs

} else { 

हम उन्हें इस तरह लिखने के लिए करना चाहते हैं:

} 
else { 

मैं कैसे यह परिवर्तन करने के बारे में जा सकते हैं?

+0

क्या आपका कोड ऑनलाइन उपलब्ध है? मैं भी इस तरह अपना कोड स्टाइल करना चाहता हूं लेकिन मैं PEAR.ControlStructures.ControlSignature को बाहर नहीं करना चाहता हूं। – TheFox

उत्तर

5

यह करने के लिए एक ही रास्ता एक 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', बदल सकते हैं और देखते हैं कि अगर काम करता है करना चाहते हैं।

+0

धन्यवाद ग्रेग, जाहिर है कि ईओएल जोड़ना इससे पहले कि काम नहीं करता है। मैंने ड्रूपल कोड मानकों से एक झुकाव उधार लिया और उन्हें पियर के साथ विलय कर दिया। हालांकि आपकी टिप्पणी के लिए धन्यवाद, कुछ अच्छी जानकारी है। – Noodles