2012-05-14 22 views
7

का उपयोग कर phpcs के लिए कस्टम नियमसेट मैं किसी भी तरह से Zend कोडिंग दिशानिर्देशों का उपयोग करने के लिए phpcs को मनाने की कोशिश कर रहा हूं, लेकिन- मुझे अंडरस्कोर (जैसे $blub->foo_bar) के साथ चर होने की अनुमति देने के लिए।PHPStorm

क्या कोई मुझे बता सकता है कि phpscs phpscs के भीतर से उपयोग किए जाने वाले नियमों को कैसे बदला जाए, कृपया?

उत्तर

11

यदि आप अंतर्निहित लोगों को ओवरराइड करना चाहते हैं तो आपको कस्टम कोडिंग मानक बनाना होगा। यह केवल मानक की परिभाषा के साथ एक एक्सएमएल फ़ाइल बनाने का मामला है।

अपने मामले में, आप पूरे ज़ेंड कोडिंग मानक चाहते हैं, लेकिन आप विशेष नामकरण सम्मेलन को परिवर्तनीय नामों के बारे में नहीं चाहते हैं। तो तुम एक फ़ाइल mystandard.xml बनाएं जिसका नाम होगा (इसे नाम जो भी आप चाहते हैं और जहां कभी आप चाहते हैं डाल दिया) और निम्नलिखित सामग्री में डाल:

<?xml version="1.0"?> 
<ruleset name="MyStandard"> 
<description>My custom Zend coding standard.</description> 
<rule ref="Zend"> 
    <exclude name="Zend.NamingConventions.ValidVariableName"/> 
</rule> 
</ruleset> 

नहीं है एक बहुत अधिक आप अपने मानक को अनुकूलित सहित कर सकते हैं अन्य मानकों से चेक लाने, संदेशों को ओवरराइट करने या उनमें से कुछ को म्यूट करने के लिए। आप यहां दस्तावेज़ों पर एक नज़र डाल सकते हैं: http://pear.php.net/manual/en/package.php.php-codesniffer.annotated-ruleset.php

पिछली बार मैंने जांच की, PHPStorm ने आपको किसी भी कारण से कस्टम कोडिंग मानकों का उपयोग करने नहीं दिया। आम तौर पर, आप मानक के नाम को mystandard.xml फ़ाइल के पूर्ण पथ के रूप में टाइप करेंगे। यदि PHPStorm अभी भी ऐसा करने नहीं देता है, तो इसे चालित करने का एकमात्र तरीका वास्तव में आपके कस्टम मानक को स्थापित करना है।

ध्यान दें कि यह ऐसा कुछ नहीं है जिसे आपको सामान्य रूप से करने की आवश्यकता होती है और यह थोड़ा जटिल है। लेकिन अगर आप इसे आजमा देना चाहते हैं, तो आप इसे कैसे करते हैं:

  1. खोजें कि आपके सिस्टम पर PHPCS कहाँ स्थापित है। यदि आपको नहीं पता कि वह कहां है, तो pear config-show | grep php_dir आज़माएं। PHP_CodeSniffer वहां एक निर्देशिका में होगा। मेरे लिए, नाशपाती /usr/local/PEAR में स्थापित किया गया है, इसलिए PHP_CodeSniffer /usr/local/PEAR/PHP/CodeSniffer
  2. में पाया जाता है /usr/local/PEAR/PHP/CodeSniffer/Standards
  3. के तहत एक नया निर्देशिका MyStandard बनाएं जिसका नाम वहाँ में सीधे अपने mystandard.xml फ़ाइल रखो लेकिन ruleset.xml

लिए इसका नाम बदलना पुष्टि करने के लिए अपने मानक स्थापित किया गया है, phpcs -i चलाएं। आप

The installed coding standards are MySource, MyStandard, PEAR, PHPCS, Squiz and Zend 

देखना चाहिए अब, PHPStorm ड्रॉप-डाउन में एक विकल्प के रूप में दिखाई देगा (उम्मीद) MyStandard। यदि यह प्रदर्शित नहीं होता है, तो संभवतः उन्होंने सूची को हार्ड-कोड किया है और ज़ेंड कोडिंग मानक को सीधे हैक किए बिना इसे काम करने का कोई तरीका नहीं होगा।

मुझे आशा है कि जानकारी आपको समाधान ढूंढने में मदद करेगी। यदि नहीं, तो आप हमेशा PHPCS सीधे अपने कस्टम मानक का उपयोग कमांड लाइन पर चला सकते हैं:

phpcs --standard=/path/to/mystandard.xml /path/to/code 
0

मानकों की सूची hardcoded नहीं है, यह phpcs से प्राप्त कर रहा है। ऊपर वर्णित अनुसार अपना खुद का मानक स्थापित करना नौकरी करेगा।

+0

मैंने इसे दोपहर के बेहतर हिस्से को काम करने की कोशिश करने में बिताया। PHPStorm इंस्टॉल किए गए मानकों की सूची भी लोड नहीं करेगा, इंस्पेक्टर सेटिंग्स में एकमात्र विकल्प रिक्त और कस्टम हैं, और यहां तक ​​कि मान्य विकल्प का चयन भी कभी नहीं दिखाता है। मैं सीपीआई को ठीक से चलाने के लिए phpcs प्राप्त कर सकता हूं लेकिन यह अच्छा होगा कि यह PHPStorm के लिए दस्तावेज़ों में निर्धारित अनुसार अच्छा लगे। –

2

phpstorm पर अपना खुद का कस्टम नियम जोड़ना संभव है, यह कोडिंग मानक "कस्टम" का उपयोग करके प्रोजेक्ट सेटिंग्स => निरीक्षण => "PHP कोड स्निफर सत्यापन" में किया जा सकता है और आपके रूट की निर्देशिका सेट कर सकता है कस्टम नियमxml