در سال 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 رو بازنویسی میکنه. حالا این خط دوم چی میگه؟ میاد میگه امکان نمایش خطاهایی که دارم رو فعال کن(عدد یک معنی فعال کردن رو میده) چه نوع خطاهایی؟ اینا همونایی هستند که در خط اول مشخص کردیم.
علیرضا۰۲ آذر ۱۳۹۹، ۱۲:۳۳
سلام. لطفاً در صورت امکان این متد رو توضیح بدید، مخصوصاً خط دوم رو نفهمیدم که چکاره است :