विकासको छ वर्ष पछि, स्थिर विश्लेषक PHPStan 1.0 को पहिलो स्थिर रिलीज भयो, जसले तपाईंलाई PHP कोडमा यसलाई कार्यान्वयन नगरी र एकाइ परीक्षणहरू प्रयोग नगरी त्रुटिहरू फेला पार्न अनुमति दिन्छ। परियोजना कोड PHP मा लेखिएको छ र MIT लाइसेन्स अन्तर्गत वितरित।
विश्लेषकले जाँचको १० स्तरहरू प्रदान गर्दछ, जसमा प्रत्येक पछिल्लो स्तरले अघिल्लोको क्षमताहरू विस्तार गर्दछ र थप कडा जाँचहरू प्रदान गर्दछ:
पहिचान गरिएका अन्तर्निहित समस्याहरूको उदाहरणहरू:
- उदाहरण, क्याच, टाईपहिन्ट र अन्य भाषा निर्माणहरूमा प्रयोग गरिएका वर्गहरूको अस्तित्व।
- भनिन्छ विधि र प्रकार्यहरूको अस्तित्व र उपलब्धता, साथै पारित तर्कहरूको संख्या।
- रिटर्न एक्सप्रेशनमा परिभाषित गरिए अनुसार विधिले समान प्रकारको डेटा फिर्ता गर्छ भनी जाँच गर्दै।
- पहुँच भइरहेको गुणहरूको अस्तित्व र दृश्यता, र गुणहरूमा प्रयोग गरिएका घोषित र वास्तविक डेटा प्रकारहरू जाँच गर्दै।
- स्ट्रिङ ढाँचा ब्लकमा sprintf/printf कलहरूमा पास गरिएका प्यारामिटरहरूको संख्या सही छ।
- शाखा सञ्चालकहरू र लूपहरूद्वारा बनाइएका खाता ब्लकहरूलाई लिएर चरहरूको अस्तित्व।
- बेकार प्रकारका कास्टहरू (जस्तै "(स्ट्रिङ) 'foo'") र कडा परीक्षणहरू ("===" र "!==") डेटामा विभिन्न प्रकार र अपरेन्डहरू जुन सधैं गलत फर्काउँछ।
PHPStan 1.0 मा प्रमुख आविष्कारहरू:
- "9" चेक स्तर लागू गरिएको छ, जसले "मिश्रित" प्रकारको प्रयोग जाँच गर्दछ, विभिन्न प्रकारका मापदण्डहरूको प्रकार्यको स्वागतलाई व्यवस्थित गर्नको लागि। स्तर नौले "मिश्रित" को असुरक्षित प्रयोगहरू पहिचान गर्दछ, जस्तै "मिश्रित" प्रकारको मानहरू अर्को प्रकारमा पास गर्ने, "मिश्रित" प्रकारको कल गर्ने विधिहरू, र यसको गुणहरू पहुँच गर्ने किनभने तिनीहरू अवस्थित नहुन सक्छन्।
- @phpstan-pure र @phpstan-impure एनोटेसनहरू प्रयोग गरेर समान प्रकार्य कलहरूको लागि फिर्ता मानहरू समान छन् कि छैनन् भनेर नियन्त्रण गर्नुहोस्।
- ट्राई-क्याच-अन्तमा @throws एनोटेसनहरू प्रयोग गरेर निर्माणमा टाइप विश्लेषण।
- परिभाषित तर प्रयोग नगरिएका आन्तरिक (निजी) गुणहरू, विधिहरू र स्थिरताहरूको पहिचान।
- array_map र usort जस्ता array प्रकार्यहरूमा असंगत कलब्याकहरू पास गर्दै।
- छुटेको टाइपहिन्ट एनोटेसनहरूको लागि प्रकार निरीक्षण।
- PHPDocs सँग मिल्दो प्रकार घोषणाहरू, त्रुटि सन्देशहरूबाट PHPDocs मा प्रयोग गर्न अनुमति दिँदै।
स्रोत: opennet.ru