در سال 2015 و هنگامی که Visual Studio Code برای اولین بار توسط مایکروسافت عرضه شد، شاید کمتر کسی انتظار داشت که این ویرایشگر برای برنامه نویسی با زبان php نیز طراحی شده باشد. تا آن زمان phpstorm بهترین انتخابی بود که هر توسعه دهنده ی php میتوانست داشته باشد، چراکه تقریبا تمامی نیازها را برطرف میساخت. اما phpstorm منابع زیادی را در کامپیوتر اشغال میکرد. پس برنامه نویسانی که به دنبال محیط سبکتر بودند، به سراغ ویژوال استودیو کد رفتند.
ویژوال استودیو کد (که به اختصار VS Code نیز نامیده میشود) یکی از بهترین و محبوبترین ویرایشگرهای برنامه نویسی است که بر روی هر سیستم عاملی قابل استفاده است. ویژوال استودیو کد، نسخه ی سبکتر شده ی نرم افزار ویژوال استودیو (Visual Studio) است و به صورت متن باز و رایگان در اختیار کاربران قرار گرفته است.
VS Code دارای افزونههای زیادی است که به آنها اکستنشن (extensions) نیز گفته میشود. در این مقاله میخواهیم با برخی از افزونههای مفید ویژوال استودیو کد برای توسعه دهندگان php آشنا شویم.
نصب Extensions
جستجو و نصب افزونهها در ویژوال استودیو کد بسیار آسان است. کافی است یکی از مراحل زیر را طی کنید:
با کلیک بر روی آیکون Extensions در نوار Activity در سمت چپ ویژوال استودیو کد، میتوانید افزونه ی موردنظر خود را انتخاب و نصب کنید. همچنین اگر کلیدهای ترکیبی cmd + shift + x (روی مک) یا ctrl + shift + x (روی ویندوز) را فشار دهید، پنل View: Extensions ظاهر میشود. سپس برای نصب هر افزونه ی دلخواه کافی است تا روی دکمه Install آن کلیک کنید.
از Command Palette نیز میتوان برای نصب افزونهها به صورت هم زمان استفاده کرد. در این روش ابتدا با cmd + shift + p (برای مک) یا ctrl + shift + p برای ویندوز این بخش را باز کرده و سپس عبارت «Install extensions» را تایپ کنید و گزینه Extensions: Install Extensions را انتخاب نمایید.
توجه داشته باشید که در برخی موارد، بعد از نصب یک افزونه ی جدید، باید VS Code را restart کنید تا افزونه فعال شود. به همین دلیل توصیه میشود که بعد از هر نصب، یک بار ویرایشگر خود را باز و بسته کنید.
افزونه ی PHP Intelephense
مهمترین افزونه ی ویژوال استودیو کد برای php، افزونه ی PHP Intelephense است. این افزونه در اصل یک auto completer یا کامل کننده ی کد است و در انتخاب متغیرها، توابع و ... به شما پیشنهادهای لازم را میدهد. نصب این افزونه برای توسعه دهندگان php از واجبات است و بدون آن با سختیهای زیادی در کدنویسی روبه رو خواهند شد.
افزونههای مشابه دیگر عبارتند از:
Custom Snippet Pack: اسنیپتها (Snippets) کلمات کلیدی هستند که اگر آنها را تایپ کنید و سپس دکمه ی Return را فشار دهید، بخشی از کد به صورت خودکار در فایل نوشته میشود. برای مثال، اگر در این افزونه حرف "c" را تایپ کنید و Return را بزنید، یک کلاس php به صورت کامل و در یک لحظه در فایل شما نوشته میشود.
PHP Storm Snippet: این افزونه نیز دارای میانبرهایی برای حلقه هایی مانند foreach میباشد و شامل دستورات بیشتری است. این امکانات بسیار مفید هستند و به سرعت بخشیدن به کدنویسی توسعه دهندگان کمک میکنند. برای دیدن جدول کامل میانبرها، میتوانید به صفحه ی افزونه مراجعه کنید.
افزونه ی PHP Debug
اگرچه ویژوال استودیو کد در محیط خود امکان دیباگ را برای توسعه دهندگان برقرار کرده است، اما به این معنا نیست که از همه ی زبانهای برنامه نویسی پشتیبانی میکند. php یکی از زبان هایی است که باید به صورت جداگانه برای آن پکیج نصب کنید تا بتوانید راحتتر عملیات دیباگ و بررسی کدهای نوشته شده را انجام دهید.
برای استفاده از PHP Debug، لازم است تا XDebug را نیز روی وب سرور خود نصب کنید. برای این کار میتوانید از راهنمای تصویری سایت کدوال کمک بگیرید.
افزونه ی GitLens
این افزونه مختص php نیست و برای کار با گیت ایجاد شده است. با استفاده از GitLens میتوانید بفهمید که خط موردنظر از کد توسط چه کسی و در چه تاریخی تغییر کرده است. همچنین میتوانید در تاریخچه Commitها را بررسی کنید. از امکانات دیگر این افزونه میتوان به موارد زیر اشاره کرد:
علامت گذاری کدهایی که هنوز Commit نشده اند.
نشان دادن مسیرها به شکل سفارشی
امکانات زیادی وجود دارد که باعث میشوند هنگام کار با این افزونه (به خصوص در دورکاری و کارهای تیمی) از کدنویسی لذت ببرید.
افزونه ی DocBlocker
افزونه ی DocBloker در اصل مخصوص بلوکهای کامنت گذاری است:
/**
*
*
*
*/
این افزونه برای قراردادن بلوک هایی مانند مثال بالا به کد (هر جایی که به کامنت نیاز دارید) به کار میرود و بسیار سریع عمل میکند. ویژگی منحصر به فرد و متمایز کننده ی DocBloker استفاده از برچسب هایی مانند author، @method، @group@ و return@ است. شما میتوانید به سرعت این برچسبها را در بخشهای موردنظر خود قرار دهید، فقط کافی است تا علامت @ را با صفحه کلید خود تایپ کرده و برچسب را از فهرست کرکره ای انتخاب کنید. در زیر مثال دیگری از DocBlocker آوردیم که چگونگی استفاده از برچسبها را نشان میدهد:
استفاده از این نوع کامنت گذاری به فهم بهتر کد کمک میکند و باعث تمیزترشدن نوشتار و خوانایی بیشتر آن میشود.
افزونه ی phpfmt – PHP formatter
از آنجا که همه ی برنامه نویسان عاشق کدنویسی سریع هستند، همیشه نمیتوان تضمین کرد که خطوط کدهای نوشته شده به شکل صحیح تنظیم شده و دارای حاشیه ی مناسب هستند.
با افزونه ی PHP formatter، دیگر لازم نیست نگران باشید. با استفاده سریع از CTRL + ALT + F، این افزونه به طور جادویی فایل PHP را به یک فایل با فرمت نوشتاری زیبا تبدیل میکند. همچنین میتوانید افزونه را برای اجرای قالب بندی دلخواه خود پیکربندی کرده و هر بار که فایل را ذخیره میکنید از آن استفاده کنید.
با این حال، دقت کنید که برای استفاده از PHP formatter باید مسیر ماشین PHP که قرار است با آن کار کنید، را در تنظیمات و در VSCode مشخص نمایید.
افزونه ی PHP Getter & Setter
همان طور که از نام این افزونه مشخص است، PHP Getter & Setter به توسعه دهندگان کمک میکند تا راحتتر از توابع دریافت و تنظیم در کدهای خود استفاده کنند. برای ایجاد این توابع کافی است که بر روی متغیری که میخواهید توابع getter و setter را برای آن تنظیم کنید، کلیک راست کرده و پیشنهادهای موردنظر را انتخاب کنید. در این صورت این توابع به صورت خودکار به کد شما اضافه خواهند شد.
PHP Getter & Setter توسعه ی php به صورت شی گرا را برای شما سریعتر میکند. نمونه ای از آنچه که افزونه به کد شما اضافه میکند، عبارت است از:
/**
* Get the value of myVar
*/
public function getMyVar()
{
return $this->myVar;
}
/**
* Set the value of myVar
*
* @return self
*/
public function setMyVar($myVar)
{
$this->myVar = $myVar;
return $this;
}
افزونه ی Import Checker
یکی از مواردی که هنگام استفاده از فریم ورکهای php مانند Laravel زیاد دیده میشود، فراخوانی کلاسها در بالای فایل برای استفاده از آنهاست. بسیار پیش آمده است که به مرور زمان، یک لیست بی نظم از کلاسها در هر فایل داشته باشید که برخی از آنها اصلا مورد استفاده قرار نگرفته باشند.
افزونه ی Import Checker کلاس هایی را که در فایل شما استفاده نشده اند، شناسایی میکند، آنها را با رنگ روشن نمایش میدهد و با این روش آنها را برای حذف برجسته میکند. این افزونه یک ابزار تمیزکننده برای کد شما است و به کاهش حجم کد و پاک سازی کدهای نامربوط و غیرضروری کمک میکند.
افزونه ی PHP Files
ویژوال استودیو کد یک ویرایشگر خالی از ایراد نیست، برای همین افزونههای زیادی برای آن ایجاد شده اند. پس از نصب افزونه ی PHP Files، به سه نوع فایل از پیش قالب بندی شده، یعنی کلاس (class)، رابط (interface) و ویژگی (trait) دسترسی خواهید داشت. پس از انتخاب هر یک از این موارد به عنوان نوع فایل خود، تنها کاری که باید انجام دهید این است که نام فایل را انتخاب کنید. فایل موردنظر ایجاد میشود و شامل برخی کدهای از پیش آماده شده است.
یکی از نکات جالب این است که هنگام تعیین نامهای رابط ها، امکان جداکردن آنها با ویرگول وجود دارد و در صورت لزوم میتوانید این بخشها را پر کرده و از آنها استفاده کنید.
جمع بندی
در مقاله بهترین افزونههای ویژوال استودیو کد برای php آشنا شدیم. این ویرایشگر در جامعه ی برنامه نویسی و به خصوص طراحی و توسعه ی وب بسیار محبوب است و طرفداران زیادی دارد. VS Code بسیار سریع است و با استفاده از افزونههای زیاد آن میتوانید سرعت و دقت کدنویسی خود را افزایش دهید. همچنین در صورت تمایل میتوانید آن را سفارشی کرده و از کدنویسی در محیط ویرایشگر لذت ببرید. اگر یک برنامه نویس php هستید و تصمیم گرفتید که با VS Code برنامه ی خود را توسعه دهید، حتما از بهترین افزونههای ویژوال استودیو کد برای php که در این مقاله معرفی کردیم استفاده کنید.
اگر سوال یا تجربه ای در کار با افزونهها دارید آن را با ما و سایر کاربران سون لرن به اشتراک بگذارید.
اگر به یادگیری بیشتر در زمینه ی PHP علاقه داری، با شرکت در دوره ی آموزش PHP حرفه ای در کمتر از یک سال به یک متخصص PHP تبدیل میشوی که آماده ی استخدام، دریافت پروژه، کسب درآمد و یادگیری مباحثی مثل لاراول هستی.
نحوه ی فعال سازی php formatter رو میشه توضیح بدید؟
اینکه نوشتید : برای استفاده از PHP formatter باید مسیر ماشین PHP که قرار است با آن کار کنید، را در تنظیمات و در VSCode مشخص نمایید.
نازنین کریمی مقدم۲۸ اسفند ۱۴۰۲، ۲۰:۱۲
درود
برای فعال سازی دقیق این افزونهها چون دائما در حال آپدیت هستند، بهتره که به داکیومنت خود سازنده مراجعه کنید:
https://github.com/vysker/vscode-php-formatter/wiki
درود.
اول اینکه لطفا سوالات خودتون رو در پستهای مرتبط بپرسید تا سریعتر و دقیقتر پاسخ داده بشه. (مثل پستهای آموزشی php در وبسایت)
حالا پاسخ سوالتون:
احتمالا میدونید که سطح خطاها در زبان PHP فرق میکنه. تابع error_reporting در خط اول یه ورودی میگیره که باهاش میتونید سطح خطاهای اسکریپت خودتون رو مدیریت کنید. الان اینجا ورودی E_ALL داده شده، یعنی تمامی ارورها و هشدارهایی که در PHP قابل پشتیبانی هست و ممکنه در روند اجرا بهشون بربخورید برای کدتون بررسی و نشون داده میشه (میشه به جای E_ALL از مقدار -1 هم استفاده کرد همین کارو میکنه)
اما مثلا اگر ورودی تابع E_WARNING بود هشدارها رو نمایش میداد.
ini_set در خط دوم هم میاد تنظیمات فایل php.ini رو بازنویسی میکنه. حالا این خط دوم چی میگه؟ میاد میگه امکان نمایش خطاهایی که دارم رو فعال کن(عدد یک معنی فعال کردن رو میده) چه نوع خطاهایی؟ اینا همونایی هستند که در خط اول مشخص کردیم.
علیرضا۰۲ آذر ۱۳۹۹، ۱۲:۳۳
سلام. لطفاً در صورت امکان این متد رو توضیح بدید، مخصوصاً خط دوم رو نفهمیدم که چکاره است :