2016-05-17 2 views
12

मैं Symfony coding standards के लिए ग्रहण PHP कोड फ़ॉर्मेटर को कैसे अनुकूलित करूं?सिम्फनी कोडिंग मानकों के लिए एक्लिप्स PHP कोड फॉर्मेटर एडाप्टर करें

विशेष रूप से मैं spaces around concatenation operator से छुटकारा पाना चाहता हूं जो कोड फ़ॉर्मेटर किसी भी डिफ़ॉल्ट प्रोफाइल के साथ लिखने के रूप में जोड़ता है।

$a = $b->bar.'*'.$c->baz; // not $b->bar . '*' . $c->baz 

कोड फ़ॉर्मेटर export and import a profile in XML करने की अनुमति देता है, लेकिन यह स्पष्ट नहीं है उस में जो निर्देश ऊपर रिक्त स्थान के लिए जिम्मेदार है।


यह slightly modified PSR-2 profile देखें, मैंने बिना किसी सफलता के शुरुआती बिंदु के रूप में उपयोग किया।

+1

ग्रहण में यह कैसे करना है, लेकिन अगर आप संस्करण नियंत्रण के रूप में गिट का उपयोग नहीं करते हैं, तो आप कुछ पूर्व-प्रतिबद्ध हुक का लाभ उठा सकते हैं जो आपके लिए इसे ठीक कर देगा ([सीएस-फ़िक्सर] पर एक नज़र डालें (https://github.com/FriendsOfPHP/PHP-CS-Fixer)) या आप इसे मैन्युअल रूप से चला सकते हैं – DonCallisto

+0

@DonCallisto cs-fixer ठीक और अच्छा है, लेकिन क्या मैंने आईडीई से भी ऐसा किया है? – sanmai

+0

मुझे वास्तव में पता नहीं है, मैं PHPStorm का उपयोग करता हूं (वह, मेरे लिए, बहुत बेहतर है) :) btw मुझे वास्तव में यह नहीं पता कि यह सीधे PHPStorm में कैसे है, लेकिन एक फिक्सर रखना सुरक्षित है क्योंकि आप हमेशा संशोधित कर सकते हैं अपने विचार का आधार टेम्पलेट – DonCallisto

उत्तर

2

अपने प्रोफ़ाइल विन्यास, खाली स्थान के टैब में, आप सही का निशान की जरूरत है: ऑपरेटर से पहले> द्विआधारी ऑपरेटर ऑपरेटर के बाद> द्विआधारी ऑपरेटर

दुःख की बात है इस स्ट्रिंग पर केवल संयोजन ऑपरेटर को प्रभावित नहीं करता, अन्य ऑपरेटर हो जाएगा बिना रिक्त स्थान के।

एक फॉर्मेटर का उद्देश्य सभी ऑपरेटरों को एक ही प्रारूप के साथ रखना है, इसलिए यह समझ में आता है क्योंकि the dot is an operator दस्तावेज़ों के अनुसार।

+0

इस कारण को स्वीकार नहीं किया जा सकता है मुझे अन्य ऑपरेटरों के आस-पास की जगहों को बरकरार रखने की आवश्यकता है। – sanmai

+0

मैंने खुद को एक ही दुविधा के साथ पाया – Paul

0

आप शायद यह नहीं सोचेंगे कि यह एक जवाब है, लेकिन इसे वैसे भी पोस्ट करना।

सिम्फनी कोडिंग मानकों में कोई चीज़ नहीं बदलेगी कि आपकी परियोजना कैसे काम करती है, और न ही यदि आप इसका अनुसरण करते हैं तो यह तेज़ी से कर देगा।
अंत में, यह आपका सर्वर है जो नौकरी कर रहा है, और यह PHP स्वीकार करता है इससे कोई फर्क नहीं पड़ता कि जब तक कोई त्रुटि नहीं होती है तब तक यह कैसे बनाया जाता है।

संरचनात्मक कोडिंग मानक अधिकतर आपके कोड को पढ़ने के लिए आसान बनाने के लिए यहां है, और बुनियादी गलतियों से बचने में आपकी सहायता करता है।

नामकरण सम्मेलन, सेवाओं में शामिल, किसी भी PHP प्रोजेक्ट में मूलभूत है।

और आप जल्दी ही पर्याप्त है कि क्या, आप phpdoc (पूर्व: ParamConverter) का उपयोग करने के लिए है कोई फर्क नहीं पड़ता देखेंगे

अंत में, यह अगर आप if (1==1) या if(1 == 1) बारे में कोई फर्क नहीं पड़ता, और न ही खुले Braket रखने करता है अगली पंक्ति पर (मैं इसे एक ही पंक्ति पर रखता हूं)।
इतनी देर तक कि आपका कोड साफ़ है और आप इसे आसानी से समझ सकते हैं, यह सबसे महत्वपूर्ण बात है।
अगर आप किसी की तरह हैं तो मुझे एक पंक्ति (सच्ची कहानी) पर सबकुछ पता है और कोड करें, तो आप खराब हो गए हैं।

अपने प्रश्न के संबंध में, ग्रहण केवल वही करने के लिए पर्याप्त लचीला नहीं है जो आप चाहते हैं।
और यह संभवतः कभी नहीं होगा, क्योंकि यह मुफ़्त है, इसे समर्पित करने के लिए कोई भी भुगतान नहीं किया जाता है।

मैं एक अच्छा आईडीई खोजने कुछ साल बिताए ...
और मैं एक ही सलाह मैं 2 साल पहले मिल गया के साथ सलाह देंगे और यह कि कुछ अन्य लोगों के रूप में अच्छी तरह का सुझाव, JetBrains से PhpStorm का प्रयोग करेंगे।

यदि आप छात्र या शिक्षक होने के नाते होते हैं, तो आप इसे मुफ्त में प्राप्त कर सकते हैं।
अन्यथा, आपको इसके लिए भुगतान करना होगा, लेकिन ईमानदार होने के लिए, व्यक्तिगत ग्राहक लाइसेंस काफी सस्ता/वर्ष है।

मैं यह भी जोड़ूंगा कि एक अच्छा और पूर्ण आईडीई होने से आपको अपनी खराब कोडिंग आदतों में सुधार करने में मदद मिलेगी।
मुझे यकीन है कि अधिकांश PhpStorm उपयोगकर्ता PhpStorm निरीक्षण उपकरण के साथ सही बुरी आदतों की संख्या की गणना नहीं कर सकते हैं।

आशा है कि आपको यह उत्तर संतोषजनक लगेगा।

2

अफसोस की बात यह है कि संपादन स्रोत के बिना यह संभव नहीं है। आप अपने स्वयं के स्रोत कोड को बदल सकते हैं या ऐसा करने के लिए एक फीचर अनुरोध पूछ सकते हैं, जिसे कोई नहीं जानता कि कोई ऐसा करेगा या नहीं।

यहां संपादन योग्य प्राथमिकताएं हैं और मुझे कहीं भी दिखाई नहीं देता है।

https://github.com/eclipse/pdt/blob/master/plugins/org.eclipse.php.formatter.core/src/org/eclipse/php/formatter/core/CodeFormatterPreferences.java

+1

ठीक है, शायद मुझे यह पता लगाना होगा कि कोई स्रोत से एक्लिप्स पीडीटी कैसे बनाता है ... केवल अगर मैं इससे बच सकता हूं। – sanmai

2

मैं ग्रहण का उपयोग नहीं करते, हालांकि, इस काम करना चाहिए:

Symfony के coding standards के अनुसार:

Symfony मानकों PSR-0, PSR- में परिभाषित किया गया इस प्रकार है 1, पीएसआर -2 और पीएसआर -4 दस्तावेज।

इसका मतलब है कि आपको ग्रहण के लिए केवल एक पीएसआर कोड फॉर्मेटर ढूंढना होगा।

यहाँ PSR के लिए एक ग्रहण फ़ॉर्मेटर है:

मैं भी एक गैर ग्रहण उपकरण जो लिनक्स पर चलता है का उपयोग किया है: PHP Coding Standards Fixer। यह बहुत साफ है और सिम्फनी समर्थन शामिल है।

Documentation पता चलता है कि कुछ इस तरह काम करना चाहिए:

$ php php-cs-fixer.phar fix /path/to/project [email protected] 

और, एक छोटे से अधिक है कि PHP Coding Standards Fixer शामिल एक ग्रहण प्लगइन को खोजने के लिए मुझे नेतृत्व खोद कर, मामले में आप सिर्फ आदेश का उपयोग नहीं करना चाहते हैं लाइन।

+0

मैं इसे देख लूंगा, लेकिन अब तक यह उतना ही दिखता है जितना मैं उपयोग करता हूं - जो कॉन्सटेनेशन ऑपरेटर के आस-पास की जगह जोड़ता है। – sanmai

+0

मैं पहले से ही सीएस-फिक्सर का उपयोग कर रहा हूं। मुझे ग्रहण में यह करने की ज़रूरत है। – sanmai

+0

मैं एक ग्रहण प्लगइन से जुड़ा हुआ है जो सीएस-फिक्सर को बंडल करता है। परवाह किए बिना शुभकामनाएँ। – smcjones

संबंधित मुद्दे