راهنمای استاندارد های کد نویسی برای توسعه دهندگان

همان‌طور که می‌دانید برنامه نویسی پلاگین های اپچار بر پایه وردپرس انجام می‌شود و در وردپرس کدنویسی از استایل ها و استاندارد های خاصی پیروی می‌کند تا نگه داری و توسعه پلاگین ها را ساده سازد. بدین منظور ما به شما ابزار ها و افزونه ایی را معرفی می‌کنیم تا بتوانید فرآیند کد نویسی خود را ساده سازی و مطابق استاندارد های وردپرس تنظیم کنید.

Lint چیست و چرا باید از آن استفاده کنیم؟ #

«لینت کردن» کلمه مورد استفاده برای توصیف پروسه های نرم‌افزاری ای است که کیفیت کد شمارا آنالیز کرده و با استاندارد های کدنویسی مطابق سازی می‌کند.

اهمیت لینت در ساده سازی پیدا کردن ایرادات و مشکلات برنامه نویس است. قطعا برای توسعه دهنده ای که ساعت مشغول کد نویسی بوده رخ دادن چندین اشتباه در کد امری عادی به حساب می‌آید. شما با لینت کردن کد خود می‌توانید از رخ دادن اشتباهات رایج برنامه نویسی در کار خود جلوگیری کرده و همچنین تمامی کد خود را با یک سبک و سیاق بنویسید.

لینت کردن به تیم های توسعه دهنده نیز کمک می‌کند که تمامی بخش های کد آن ها به صورت یک پارچه و با کیفیت و خوانا توسعه یابد و از تمامی باگ های مربوط به سینتکس نیز جلوگیری می‌کند.

آشنایی با استاندارد های کدنویسی در وردپرس #

در زمان نوشته شدن در این مقاله وردپرس بر 31% اینترنت امروز کنترل دارد و هزاران برنامه نویس از جای جای کره خاکی درحال توسعه این اوکسیستم هستند که بسیاری از آن ها شامل توسعه دهندگان پلاگین ها و تم ها می‌شود.

همین مسئله باعث به وجود آمدن استایل های مختلف کدنویسی در تمامی اکوسیستم می‌شود به صورتی که این مسئله در نهایت به میلیون ها خط متفاوت و مختلف تبدیل شده و پویایی اکوسیستم را نابود می‌سازد.

دلیل وجود استاندارد های کدنویسی وردپرس نیز همین مسئله است. این قوانین باعث می‌شود که تمامی توسعه دهندگان جامعه وردپرس بتوانند به صورت یکپارچه و بدون تفاوت کدنویسی کنند. و در نهایت به نظر برسد که تمامی کد ها توسط یک نفر نوشته شده است. اگر شما تا به حال اقدام به توسعه یک پلاگین وردپرس یا یک پوسته کرده باشید احتمالا با بخش خوبی از این قوانین آشنا هستید. اما راه حل ما در اپچار کار شما را برای رعایت کردن این قوانین بسیار ساده می‌کند.

هدف این پست آموزش استفاده و پیکربندی کردن ابزارهایی است که انجام این فرآیند را برای شما اتوماتیک می‌کند.

چه چیزهایی را میتوانیم Lint کنیم؟ #

استاندارد های کدنویسی وردپرس برای زبان های PHP, HTML, CSS , JavaScript وجود دارد و با استفاده از لینتر می‌توانیم تمامی این زبان ها را با استاندارد های کدنویسی وردپرس هماهنگ سازیم.

 PHP CodeSniffer چیست #

PHP CodeSniffer موتور اصلی PHP Linter ما است که توسط دو اسکریپت مجزا کار میکند

phpcs

این دستور به صورت اتوماتیک تخلف کد از استاندارد های کدنویسی را شناسایی و گزارش می‌کند.

phpcbf

این کامند به صورت اتوماتیک تمامی خطاهای استاندارد های کدنویسی را برطرف می‌کند.  

نصب و فعال سازی Linter و & PHP CodeSniffer #

نیازمندی ها #

PHP 7 #

برای استفاده از این نرم‌افزار ها ابتدا نیاز به نصب PHP ورژن 5.4 یا بالاتر داریم. PHP بر روی بعضی از توزیع های لینوکس و مک از پیش نصب شده است که با کامنت زیر نسبت به چک کردن آن اقدام نمایید. php -v در صورتی که ورژن نصبی PHP خود را مشاهده نکردید باید به نصب آن اقدام نمایید.

 

پس از نصب PHP بهتر از از وارد شدن آدرس آن در PATH سیستم عامل خود اطمینان حاصل کنید.

PEAR #

برای نصب افزونه های php ابزار هایی وجود دارند که میتوانید از آن ها استفاده کنید که بهترین آنها PEAR به نظر می‌رسد که از طریق دو دستور زیر در CMD یا Terminal سیستم عامل قابل نصب می‌باشد.

curl -O https://pear.php.net/go-pear.phar
php -d detect_unicode=0 go-pear.phar
دستور اول پروسه نصب PEAR را شروع کرده و دومی از نصب صحیح آن اقدام به پیکربندی آن می‌نماید.
پس از وارد کردن دستور دوم باید در جواب سوال اول sytem را وارد کرده تا با عکس زیر مواجه شوید.
برای تغییر مقادیر می‌توانید شماره موردنظر خورد را وارد کرده و یا کلید Enter را بفشارید.
در صورتی که بر روی ویندوز اقدام به نصب PEAR می‌کنید ابتدا گزینه 13 را انتخاب کرده و اقدام به وارد کردن آدرس محل PHP که عموما در آدرس C:\PHP است نمایید.

پس از زدن گزینه Enter نصب PEAR پایان خواهد یافت.

Composer #

برای نصب Composer کافی است به لینک زیر رفته و اقدام به نصب این افزونه php از طریق دانلود فایل نصبی در ویندوز و یا وارد کردن دستورات زیر در لینوکس است.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

در صورتی که در حین نصب، سیستم عامل درخواست ایجاد تغییرات در فایل PHP.ini را نمود این اجازه را بدهید.

 آموزش کامل نصب Composer

Git #

برای نصب Git در ویندوز از این لینک اقدام به دانلود فایل نصبی و نصب آن کنید. براص نصب Git در مک از دستور زیر استفاده کنید $ brew install git Git در تمامی نسخه های لینوکس از پیش نصب شده است. ولی در صورت اجرا نشدن آن می‌توانید از این لینک اقدام به نصب آن نمایید.

نصب Code Sniffer #

برای نصب Code Sniffer با استفاده از دستور زیر اقدام به نمایید.
composer create-project wp-coding-standards/wpcs --no-dev
دستور بالا استاندارد های ودپرس را همراه با Code Sniffer نصب می‌کند که از طریق کامند های phpcs و phpcbf می‌توان اقدام به نصب آن نمود. برای دسترسی به این کامند ها باید آدرس wpcs/vendor/bin را به PATH سیستم خود اضافه کنید. برای دانلود اضافه کردن استاندارد های وردپرس با استفاده از git کامند زیر را وارد کنید.
git clone -b master https://github.com/WordPress/WordPress-Coding-Standards.git wpcs
و سپس از طریق دستور زیر آن را وارد موتور phpcs نمایید.
phpcs --config-set installed_paths /wpcs

پس از آن از طریق دستور زیر، استاندارد های کدنویسی وردپرس را به عنوان استاندارد اصلی Code Sniffer تنظیم می‌کنیم.

phpcs --config-set default_standard WordPress
سپس میتوانید از طریق دستور زیر از نصب درست این ابزار مطمئن شوید.
phpcs -i
همانطور که مشاهده می‌کنید، WordPress به انتهای استاندارد ها اضافه شد است.

نحوه استفاده #

برای اجرا کردن Code Sniffer بر روی کد های خود دستور را به شکل زیز نوشته و اجرا کنید.
phpcs --standard=WordPress /Path/To/File/Filename.php
نتایج شما به شکل زیر خواهد بود.
------------------------------------------------------------------------------------------
FOUND 8 ERRORS AND 10 WARNINGS AFFECTING 11 LINES
------------------------------------------------------------------------------------------
 24 | WARNING | [ ] error_reporting() can lead to full path disclosure.
 24 | WARNING | [ ] error_reporting() found. Changing configuration at runtime is rarely
    |         |     necessary.
 37 | WARNING | [x] "require_once" is a statement not a function; no parentheses are
    |         |     required
 39 | WARNING | [ ] Silencing errors is discouraged
 39 | WARNING | [ ] Silencing errors is discouraged
 42 | WARNING | [x] "require_once" is a statement not a function; no parentheses are
    |         |     required
 46 | ERROR   | [ ] Inline comments must end in full-stops, exclamation marks, or
    |         |     question marks
 46 | ERROR   | [x] There must be no blank line following an inline comment
 49 | WARNING | [x] "require_once" is a statement not a function; no parentheses are
    |         |     required
 54 | WARNING | [x] "require_once" is a statement not a function; no parentheses are
    |         |     required
 63 | WARNING | [ ] Detected access of super global var $_SERVER, probably needs manual
    |         |     inspection.
 63 | ERROR   | [ ] Detected usage of a non-validated input variable: $_SERVER
 63 | ERROR   | [ ] Missing wp_unslash() before sanitization.
 63 | ERROR   | [ ] Detected usage of a non-sanitized input variable: $_SERVER
 69 | WARNING | [x] "require_once" is a statement not a function; no parentheses are
    |         |     required
 74 | ERROR   | [ ] Inline comments must end in full-stops, exclamation marks, or
    |         |     question marks
 92 | ERROR   | [ ] All output should be run through an escaping function (see the
    |         |     Security sections in the WordPress Developer Handbooks), found
    |         |     '$die'.
 92 | ERROR   | [ ] All output should be run through an escaping function (see the
    |         |     Security sections in the WordPress Developer Handbooks), found '__'.
------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 6 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------------------

با استفاده از کامنت زیر می‌توانید تعدادی از ایرادات را به صورت اتوماتیک رفع کنید.

phpcbf --standard=WordPress /Path/To/File/Filename.php

استفاده از PHPCS و استاندارد های کدنویسی وردپرس در کد ادیتورها #

Atom #

برای استفاده از phpcs در این کد ادیتور باید اقدام به نصب افزونه های Linter و دو افزونه دیگر نمایید. برای نصب این افزونه ها از دستورات زیر استفاده کنید.

apm install linter
apm install linter-ui-default
apm install linter-phpcs
apm install intentions
apm install busy-signal

و یا از طریق لینک های زیر اقدام به نصب نمایید:

 

سپس با وارد شدن به تنظیمات Linter-phpcs آدرس phpcs را وارد نمایید.

سپس Linter به صورت زیر ایرادات کد شما را گزارش می‌کند.

VsCode #

اقدام به نصب افزونه phpcs از لینک زیر کنید. دقت کنید که تمامی مراحل را انجام دهید.

 

پس از نصب این افزونه کد ادیتور شما به صورت خودکار با استفاده از phpcs ایرادات شما را گزارش می‌دهد.

 Sublime Text #

اقدام به نصب دو افزونه زیر از طریق پکیج کنترل نمایید.

 

سپس از قابلیت های phpcs در کد ادیتور خود بهره مند شوید.

لینک های مفید #

قدرت گرفته از BetterDocs

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *