شروع کار با PHPIsights


PHPInsights یک بسته آهنگساز است که توسط Nuno Maduro ایجاد شده است و ابزاری فوق العاده برای شروع تجزیه و تحلیل کیفیت کد برنامه های PHP شما است.
چه در ابزارهای کیفیت کد حرفه ای باشید و چه یک مبتدی کامل - PHPInsights منحنی یادگیری ثابتی دارد که می توانید با بهبود دانش خود به سرعت با آن سازگار شوید. خارج از جعبه، با Laravel، Symfony، Yii، WordPress، Magento 2 و موارد دیگر کار می کند.
به شما این امکان را می دهد تا بینشی در مورد کیفیت کد، سبک کدنویسی، معماری برنامه و پیچیدگی کد خود به دست آورید.
برای شروع کار با این بسته، تنها کاری که باید انجام دهید این است که دستور Quick composer را اجرا کنید:
آهنگساز نیاز nunomadoro/phpinsights --dev
سپس تنظیم میشوید، زیرا خارج از جعبه، نیازی به پیکربندی ندارد. می توانید دایرکتوری های خاصی را با استفاده از خط فرمان با اجرای:
./vendor/bin/phpinsights
این از طریق یک سری از پیش فرض اجرا می شود. "بو می کشد" تا چند چیز اساسی را برای شما تحلیل کند. خروجی ای به شکل زیر دریافت خواهید کرد:
89.7% 87.5% 94.1% 90.4%
سبک معماری پیچیدگی کد
مقیاس امتیاز: ◼ 1-49 ◼ 50-79 ◼ 80-100
[ کد ] 89.7 امتیاز در 367 خط
نظرات ................................................. ..... 64.6 %
کلاس ها ................................................. ...... 12.3 درصد
کارکرد ................................................. ..... 1.1 %
در سطح جهانی ................................................. ..... 22.1 %
[ پیچیدگی ] 87.5 امتیاز با میانگین پیچیدگی سیکلوماتیک 1.38
[ معماری ] 94.1 امتیاز در 28 فایل
کلاس ها ................................................. ...... 75.0 %
رابط های ................................................... .... 0.0 %
در سطح جهانی ................................................. ..... 25.0 %
صفات ................................................ ........ 0.0 %
[ MISC ] 90.4 امتیاز در سبک کدنویسی و 0 مشکل امنیتی با آن مواجه شده است
از اینجا میتوانید اینتر را فشار دهید تا مشکلات کدی که ممکن است گزارش شود را ببینید، سپس دوباره Enter را فشار دهید تا مشکلات معماری گزارش شده را مشاهده کنید و در نهایت دوباره Enter را برای مشاهده مشکلات سبک کد فشار دهید.
در مرحله بعد، میتوانیم تحلیل کنیم که چگونه میتوانیم کد خود را بر اساس اجرای "sniffs" بهبود دهیم. این را می توان با پیکربندی پیکربندی PHPInsights، سفارشی کردن آنچه اجرا می شود و چند گزینه دیگر انجام داد. برای شروع، یک phpinsights.php
در ریشه پروژه خود ایجاد کنید، سپس می توانیم سفارشی سازی آنچه را که قصد داریم اجرا کنیم آغاز کنیم.
اعلام کنید ( tip_types = 1 );
بازگشت [
"از پیش تعیین شده" => "پیش فرض" ،
]؛
بسته به چارچوب/پلتفرمی که استفاده میکنید، گزینههای مختلفی برای پیشتنظیم داریم. برای نشان دادن اینکه چگونه این کار می کند، من به تدریج فایل پیکربندی خود را همانطور که هر قسمت را توضیح می دهم ایجاد می کنم - تا بتوانید سفری را که ممکن است طی کنید را ببینید.
شما می توانید از laravel
، symfony
، magento2
، drupal
یا default
برای از پیش تعیین شده خود استفاده کنید - من از Laravel استفاده خواهم کرد.
اعلام کنید ( tip_types = 1 );
بازگشت [
"از پیش تعیین شده" => لاراول ،
]؛
ممکن است بخواهید دایرکتوری هایی را در برنامه خود حذف کنید که نمی خواهید "بوی" یا تجزیه و تحلیل شوند. شما می توانید این موارد را با گفت ن یک گزینه پیکربندی exclude
اضافه کنید.
اعلام کنید ( tip_types = 1 );
بازگشت [
"از پیش تعیین شده" => لاراول ،
"حذف" => [
'پایگاه داده/*' ،
]،
]؛
میتوانید بینشهای خاصی را در فایل پیکربندی خود پیکربندی کنید، که به شما امکان میدهد گزینههایی را برای مواردی مانند طول خط تنظیم کنید.
اعلام کنید ( tip_types = 1 );
استفاده کنید PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff .
بازگشت [
"از پیش تعیین شده" => لاراول ،
"حذف" => [
'پایگاه داده/*' ،
]،
"پیکربندی" => [
LineLengthSniff ::class => [
'LineLimit' => 120 ،
'absoluteLineLimit' => 160 ،
]،
]،
]؛
اگر اکنون PHPInsights را مجدداً اجرا کنیم، آن را با پیکربندی خود اجرا خواهیم کرد، که بیشتر مختص مشخصات پیکربندی شده ما خواهد بود.
تجزیه و تحلیل شما به قسمت های مهم تقسیم می شود تا بتوانید روی آنها تمرکز کنید و از کد شروع می شود. با تجزیه و تحلیل ساختار و کیفیت کد شما، این به خوبی در وبسایت PHPInsights مستند شده است که در صورت تمایل به غیرفعال کردن یا پیکربندی هر یک از کلاسهای بینش که در برابر کد شما اجرا میشوند، اطلاعات و بینشهای موجود را به شما نشان میدهد.
بعدی معماری برنامه شما خواهد بود که نسبت به چیزی مانند Deptrac عمق کمتری دارد، اما چند حوزه خاص را برای اطمینان از ثبات و استانداردها بیشتر از قوانین معماری پوشش می دهد.
سپس به پیچیدگی کد شما میپردازیم، که بینش کوچکتری است. این "پیچیدگی سیکلوماتیک" شما را محاسبه می کند، جایی که هر چه امتیاز کمتر باشد، درک کد شما آسان تر است. کد می تواند از نظر عملکرد پیچیده باشد در حالی که هنوز درک آن آسان است.
در نهایت، Style کد شما را تحلیل می کند، که کمی شبیه به Easy Coding Standards یا PSR-2 یا PSR-12 است. باز هم، مستندات مربوط به این بینش گسترده است، با مثال هایی از اینکه چگونه می توانید بینش های خاص را پیکربندی کنید تا کد خود را دقیقاً همانطور که می خواهید دریافت کنید.
برخلاف آموزش من در لاراول پینت، من پیکربندی پیش فرضی برای PHPInsights ندارم، زیرا هر بار که از آن استفاده می کنم - باید آن را به طور خاص برای پروژه یا تیم پیکربندی کنم. من اخیراً از Nuno به عنوان نگهبان این پروژه در کنار کریس مسئولیت را بر عهده گرفتم، و ما گفتگوهای زیادی در مورد چگونگی بهبود این بسته در حرکت رو به جلو و اینکه آینده بسته چگونه خواهد بود داشتیم. گفتگوهای بسیار هیجان انگیزی وجود دارد، و امیدواریم امسال بیشتر در مورد آن صحبت کنیم.
ارسال نظر