PHPStan 1.0 को रिलीज, PHP कोड को लागी एक स्थिर विश्लेषक

विकासको छ वर्ष पछि, स्थिर विश्लेषक PHPStan 1.0 को पहिलो स्थिर रिलीज भयो, जसले तपाईंलाई PHP कोडमा यसलाई कार्यान्वयन नगरी र एकाइ परीक्षणहरू प्रयोग नगरी त्रुटिहरू फेला पार्न अनुमति दिन्छ। परियोजना कोड PHP मा लेखिएको छ र MIT लाइसेन्स अन्तर्गत वितरित।

विश्लेषकले जाँचको १० स्तरहरू प्रदान गर्दछ, जसमा प्रत्येक पछिल्लो स्तरले अघिल्लोको क्षमताहरू विस्तार गर्दछ र थप कडा जाँचहरू प्रदान गर्दछ:

  • आधारभूत जाँचहरू, अज्ञात वर्गहरू परिभाषित गर्दै, प्रकार्यहरू र विधिहरू ($this), अपरिभाषित चरहरू, र तर्कहरूको गलत संख्या पास गर्दै।
  • सम्भावित अपरिभाषित चरहरू, अज्ञात जादुई विधिहरू र __call र __get सँग वर्गहरूको गुणहरू पहिचान गर्दै।
  • सबै अभिव्यक्तिहरूमा अज्ञात विधिहरूको पत्ता लगाउने, $this मार्फत कलहरूमा सीमित छैन। PHPDocs जाँच गर्दै।
  • फिर्ता प्रकारहरू जाँच गर्दै र गुणहरूमा प्रकारहरू तोक्ने।
  • "मृत" (कहिल्यै बोलाइएन) कोडको आधारभूत पहिचान। कलहरूको उदाहरणहरू पहिचान गर्नुहोस् जुन सधैं गलत फर्काउँछ, "अन्य" ब्लकहरू जुन फायर हुँदैन, र फिर्ता पछि कोड।
  • विधि र प्रकार्यहरूमा पास गरिएका तर्कहरूको प्रकारहरू जाँच गर्दै।
  • हराएको प्रकार जानकारी एनोटेसन बारे चेतावनी।
  • गलत युनियन प्रकारहरूको बारेमा चेतावनी जसले दुई वा बढी प्रकारहरूको सङ्कलनलाई परिभाषित गर्दछ।
  • कल गर्ने विधिहरू र "नलिएबल" प्रकारहरू भएका गुणहरू पहुँच गर्ने बारे चेतावनी।
  • "मिश्रित" प्रकारको प्रयोग जाँच गर्दै।

    पहिचान गरिएका अन्तर्निहित समस्याहरूको उदाहरणहरू:

    • उदाहरण, क्याच, टाईपहिन्ट र अन्य भाषा निर्माणहरूमा प्रयोग गरिएका वर्गहरूको अस्तित्व।
    • भनिन्छ विधि र प्रकार्यहरूको अस्तित्व र उपलब्धता, साथै पारित तर्कहरूको संख्या।
    • रिटर्न एक्सप्रेशनमा परिभाषित गरिए अनुसार विधिले समान प्रकारको डेटा फिर्ता गर्छ भनी जाँच गर्दै।
    • पहुँच भइरहेको गुणहरूको अस्तित्व र दृश्यता, र गुणहरूमा प्रयोग गरिएका घोषित र वास्तविक डेटा प्रकारहरू जाँच गर्दै।
    • स्ट्रिङ ढाँचा ब्लकमा sprintf/printf कलहरूमा पास गरिएका प्यारामिटरहरूको संख्या सही छ।
    • शाखा सञ्चालकहरू र लूपहरूद्वारा बनाइएका खाता ब्लकहरूलाई लिएर चरहरूको अस्तित्व।
    • बेकार प्रकारका कास्टहरू (जस्तै "(स्ट्रिङ) 'foo'") र कडा परीक्षणहरू ("===" र "!==") डेटामा विभिन्न प्रकार र अपरेन्डहरू जुन सधैं गलत फर्काउँछ।

    PHPStan 1.0 मा प्रमुख आविष्कारहरू:

    • "9" चेक स्तर लागू गरिएको छ, जसले "मिश्रित" प्रकारको प्रयोग जाँच गर्दछ, विभिन्न प्रकारका मापदण्डहरूको प्रकार्यको स्वागतलाई व्यवस्थित गर्नको लागि। स्तर नौले "मिश्रित" को असुरक्षित प्रयोगहरू पहिचान गर्दछ, जस्तै "मिश्रित" प्रकारको मानहरू अर्को प्रकारमा पास गर्ने, "मिश्रित" प्रकारको कल गर्ने विधिहरू, र यसको गुणहरू पहुँच गर्ने किनभने तिनीहरू अवस्थित नहुन सक्छन्।
    • @phpstan-pure र @phpstan-impure एनोटेसनहरू प्रयोग गरेर समान प्रकार्य कलहरूको लागि फिर्ता मानहरू समान छन् कि छैनन् भनेर नियन्त्रण गर्नुहोस्।
    • ट्राई-क्याच-अन्तमा @throws एनोटेसनहरू प्रयोग गरेर निर्माणमा टाइप विश्लेषण।
    • परिभाषित तर प्रयोग नगरिएका आन्तरिक (निजी) गुणहरू, विधिहरू र स्थिरताहरूको पहिचान।
    • array_map र usort जस्ता array प्रकार्यहरूमा असंगत कलब्याकहरू पास गर्दै।
    • छुटेको टाइपहिन्ट एनोटेसनहरूको लागि प्रकार निरीक्षण।
    • PHPDocs सँग मिल्दो प्रकार घोषणाहरू, त्रुटि सन्देशहरूबाट PHPDocs मा प्रयोग गर्न अनुमति दिँदै।

    स्रोत: opennet.ru

  • एक टिप्पणी थप्न