āĻāĻ¯āĻŧ āĻŦāĻāĻ°ā§āĻ° āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻĒāĻ°ā§, āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ PHPStan 1.0 āĻāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻā§āĻā§, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ PHP āĻā§āĻĄā§ āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻ¨āĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻ¨āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻā§āĻĄ PHP āĻ¤ā§ āĻ˛ā§āĻāĻž āĻāĻŦāĻ MIT āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ 10āĻāĻŋ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻā§āĻāĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸ā§āĻ¤āĻ° āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§āĻāĻŋāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ°āĻ āĻāĻ ā§āĻ° āĻā§āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§:
āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ:
- āĻāĻĻāĻžāĻšāĻ°āĻŖ, āĻā§āĻ¯āĻžāĻ, āĻāĻžāĻāĻĒāĻšāĻŋāĻ¨ā§āĻ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻžāĻˇāĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻ āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦāĨ¤
- āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĨ¤
- āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ¯ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĄā§āĻāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
- āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻ āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦ āĻāĻŦāĻ āĻĻā§āĻļā§āĻ¯āĻŽāĻžāĻ¨āĻ¤āĻž āĻāĻŦāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻā§āĻˇāĻŋāĻ¤ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ¤ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĨ¤
- āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻāĻŋāĻ āĻŦā§āĻ˛āĻā§ sprintf/printf āĻāĻ˛ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¸āĻ āĻŋāĻāĨ¤
- āĻŦā§āĻ°āĻžāĻā§āĻāĻŋāĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻāĻŦāĻ āĻ˛ā§āĻĒ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ āĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋāĻā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦāĨ¤
- āĻ āĻā§āĻā§ āĻāĻžāĻāĻĒ āĻāĻžāĻ¸ā§āĻ (āĻ¯ā§āĻŽāĻ¨ "(āĻ¸ā§āĻā§āĻ°āĻŋāĻ) 'foo'") āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻŦāĻ āĻ āĻĒāĻžāĻ°ā§āĻ¨ā§āĻĄ āĻ¸āĻš āĻĄā§āĻāĻžāĻ° āĻāĻĒāĻ° āĻāĻ ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž ("===" āĻāĻŦāĻ "!==") āĻ¯āĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻŽāĻŋāĻĨā§āĻ¯āĻž āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
PHPStan 1.0-āĻ āĻŽā§āĻ˛ āĻāĻĻā§āĻāĻžāĻŦāĻ¨:
- "9" āĻā§āĻ āĻ¸ā§āĻ¤āĻ°āĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž "āĻŽāĻŋāĻļā§āĻ°" āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§, āĻ¯āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻ āĻā§āĻ¯āĻ°ā§āĻĨāĻ¨āĻž āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§āĨ¤ āĻ˛ā§āĻā§āĻ˛ XNUMX "āĻŽāĻŋāĻļā§āĻ°" āĻāĻ° āĻ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ "āĻŽāĻŋāĻļā§āĻ°" āĻāĻžāĻāĻĒā§āĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¯ āĻāĻžāĻāĻĒā§āĻ° āĻāĻžāĻā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž, "āĻŽāĻŋāĻļā§āĻ°" āĻāĻžāĻāĻĒā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻāĻžāĻ°āĻŖ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨āĻžāĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- @phpstan-pure āĻāĻŦāĻ @phpstan-āĻ āĻļā§āĻĻā§āĻ§ āĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ āĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨āĨ¤
- @throws āĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ°āĻžāĻ-āĻā§āĻ¯āĻžāĻ-āĻ āĻŦāĻļā§āĻˇā§ āĻāĻ āĻ¨ā§ āĻāĻžāĻāĻĒ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĨ¤
- āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ (āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤) āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯, āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ āĻ§ā§āĻ°ā§āĻŦāĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻ¨āĻžāĻā§āĻ¤āĻāĻ°āĻŖāĨ¤
- āĻ ā§āĻ¯āĻžāĻ°ā§ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻŦā§āĻŽāĻžāĻ¨āĻžāĻ¨ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻ¯ā§āĻŽāĻ¨ array_map āĻāĻŦāĻ usortāĨ¤
- āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻāĻžāĻāĻĒāĻšāĻŋāĻ¨ā§āĻ āĻā§āĻāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻāĻĒ āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ā§ˇ
- PHPDocs-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻāĻĒ āĻĄāĻŋāĻā§āĻ˛āĻžāĻ°ā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§ PHPDocs-āĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻŦā§āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru