PhpStorm 2020.1: دعم composer.json وأدوات PHPUnit وتغطية الكود باستخدام PCOV و PHPDBG و Grazie والمزيد



مرحبا يا هابر! يسعدنا أن نقدم أول إصدار رئيسي لـ PhpStorm هذا العام!

تحت القطع ، تحليل مفصل لجميع التغييرات الملحوظة والميزات الجديدة. تحذير - الكثير من الصور.

PhpStorm 2020.1 Toolbox App. 30- . JetBrains .

composer.json


تتوفر الآن جميع الإجراءات للعمل مع التبعيات مباشرة في الملف composer.jsonوالعمل مباشرة في المحرر.

يمكنك إنشاء ملف composer.json جديد من قائمة السياق أو باستخدام مفتاح التشغيل السريع Ctrl(⌘)+N. قالب هذا الملف موجود في التفضيلات / الإعدادات | المحرر | قوالب الملف والرمز .



إدارة التبعيات

لإضافة تبعية ، ما عليك سوى البدء في كتابة اسم المورد والحزمة ، وستظهر قائمة بالإكمال التلقائي مع الخيارات المناسبة. سيتم تقديم الإصدارات المتاحة من هذه الحزمة



في حقل الإصدار . في الوقت الحالي ، يجب إضافة حرف (^) أو رمز آخر لتحديد مجموعة من الإصدارات يدويًا ، ولكن في الإصدارات المستقبلية سنقوم بإصلاح هذا.
بالنسبة لمتطلبات إصدار PHP أو وجود الإضافات ، سيعمل الإكمال التلقائي أيضًا.

تحديث وتثبيت الحزم

إذا composer.lockلم يكن هناك ملف بعد ولم يتم تثبيت الحزم ، فإن PhpStorm سوف يبرز اسم القسم requireو require-dev. لتثبيتها ، يمكنك النقر فوق الزر تثبيت في شريط الأدوات أعلى المحرر. أو استخدم إجراء النقر السريع Alt(⌥)+Enterوحدد تثبيت الحزم.



ولكن إذا لم يتم تثبيت جميع الحزم ، فإن PhpStorm سوف يبرز الحزم المفقودة. ثم Alt(⌥)+Enterيمكنك استدعاء أي منها وتحديد تحديث الحزمة أو تحديث جميع الحزم .

بجانب متطلبات الإصدار المحدد ، سيكون الإصدار الرمادي هو إصدار الحزمة المثبتة بالفعل. وفي مربع الحوار المنبثق للحزم سيكون هناك معلومات من packagist.org حول عدد التنزيلات والنجوم.



يأخذ PhpStorm جميع المعلومات حول الحزم وإصداراتها من packagist.org ويخزنها مؤقتًا.

الإنتقال إلى الملفات والمجلدات

من المؤكد أنك تعرف أنه من خلال النقر Ctrl(⌘)+Clickو Ctrl(⌘)+Bيمكنك الذهاب لتعريف الكيانات أو البحث عن استخدامها.

في composer.jsonهذا ، أيضا ، ستعمل. إذا قمت بالنقر فوق Ctrl(⌘)+Clickحزمة ، سيتم تمييز الدليل المقابل في شجرة المشروع. وإذا كان على ملف ، فسيتم فتحه في المحرر.



يؤدي النقر فوق أي رابط Ctrl(⌘)+Clickأو فتحه Ctrl(⌘)+Bفي composer.jsonالمتوقع إلى فتحه في المستعرض.

إكمال تلقائيفي أقسام التحميل
التلقائي (-dev) يعمل الإكمال التلقائي استنادًا إلى معلومات من الفئات ويعمل هيكل الدليل للمشروع على مساحات الأسماء والمسارات.



Ctrl(⌘)+Clickو Ctrl(⌘)+Bللذهاب إلى الملفات والمجلدات يعمل هنا أيضا.

تحسينات للنصوص البرمجية

أولاً ، تعمل الانتقالات إلى الملفات / المجلدات / الطرق بنفس الطريقة. ثانيًا ، الأسماء المستعارة للفرق مدعومة. وثالثًا ، يمكن تشغيل البرامج النصية من المحرر بالضغط على زر [تشغيل] المقابل لاسم البرنامج النصي.

يؤدي هذا تلقائيًا إلى إنشاء تكوين تشغيل. هذا يعني أنه يمكنك إعادة تشغيل البرنامج النصي باستخدام مفتاح التشغيل السريع Ctrl(⌃)+R، وهو أمر مناسب تمامًا عند تصحيح الأخطاء:



تثبيت أدوات جودة التعليمات البرمجية
إذا كانت هناك تبعيات مطورةFriendsOfPHP/PHP-CS-Fixer، ثم سيتحقق PhpStorm إذا تم تمكين الفحص المناسب وإذا تم تثبيت مجموعة القواعد. إذا لم يكن كذلك ، يمكنك الاتصال Alt(⌥)+Enterلإصلاحه:



تحسينات الاستدلال نوع PHP


محرك الاستدلال النوعي هو أساس PhpStorm ، وفي هذا الإصدار تم إجراء بعض التغييرات الملحوظة.

تمييز علامة إضافيةفار
تعد إضافة العلامات @varطريقة جيدة لإخبار PhpStorm بنوع المتغير. لكننا نعمل باستمرار على تحسين الاستدلال النوعي ، وقد تكون بعض هذه التصريحات زائدة عن الحاجة ، لأن PhpStorm يعرف بالفعل نوع المتغير.

سيتم إبراز مثل هذه الحالات ، ويمكن إزالتها باستخدام الإصلاح السريع Alt(⌥)+Enter-> "إزالةفار : يعد



تعقب الأنواع الفارغة مهمة صعبة ، وكان هناك أماكن لا يمكن لـ PhpStorm التعامل معها. الآن في 2020.1 يعرف PhpStorm متى يمكن أن يكون المتغير خاليًا ومتى لا.

إليك بعض الأمثلة:



الإكمال التلقائي لصفيف تمت تهيئته

لنفترض أن لديك مصفوفة بعناصر معروفة ، ثم حاولت تكرارها لاحقًا. في السابق ، لم يعمل الإكمال التلقائي هنا ، نظرًا لفقدان معلومات النوع. في 2020.1 ، يعمل كل شيء:



الإكمال التلقائي في array_map / array_filter.

نص الإغلاق ، الذي تم تمريره إلى وظائف array_map () و array_filter () ، يعمل الآن للوسيطات.



تغطية الكود باستخدام PCOV و PHPDBG


يمكنك إنشاء تغطية التعليمات البرمجية باستخدام Xdebug . ولكن بما أن هذا عبارة عن مصحح أخطاء بشكل أساسي ، فإنه يحتوي على نفقات لائقة. لتسريع الحصول على تقرير التغطية ، يمكنك استخدام المزيد من الأدوات خفيفة الوزن: ملحق krakjoe / pcov أو PHPDBG المدمج في PHP 5.6+.

كلاهما مدعوم الآن في PhpStorm. تحتاج إلى إنشاء تكوين تشغيل للاختبارات وتحديد برنامج تشغيل التغطية المطلوب في الإعدادات. ثم قم بإجراء الاختبارات مع حساب التغطية بالضغط على الزر :



اقرأ المزيد عن الاختلافات في حساب التغطية بين Xdebug و PCOV و phpdbg في README .

مجموعة أدوات PHPUnit


في PHPUnit 9 الذي تم إصداره مؤخرًا (والإصدار 9.1 بالفعل) ، تمت إزالة العديد من الميزات أو إيقاف العمل بها. لتسريع الترحيل ومنع الأخطاء ، أضفنا مجموعة من عمليات التفتيش والإصلاحات السريعة.



إنشاء اختبار جديد للفصل عن

طريق استدعاء Alt(⌥)+Enterإعلان الفصل واختيار إنشاء اختبار PHP جديد ، يمكنك الحصول على الهيكل العظمي للاختبار بسرعة.



البيانات الوصفية


البيانات الوصفية الموجودة في الملف .phpstorm.meta.phpتسمح لـ PhpStorm بتوفير معلومات إضافية حول مشروعك وبالتالي تحسين إكمال التعليمات البرمجية. على سبيل المثال ، يتم استخدام هذه الميزة في المكون الإضافي Symfony وفي Laravel IDE Helper .

يمكنك معرفة المزيد حول قدرات البيانات الوصفية من تقرير PHP كأداة تطوير لـ PhpStorm على PHP Russia 2019.

أضاف PhpStorm 2020.1 عددًا من التحسينات للبيانات الوصفية.

المعلمة توجيهات مؤشر تجاوز، الخريطة، ونوع

قبل استخدام override()، map()و type()يمكنك تغيير سلوك الوظائف الوسيطة الأولى. في PhpStorm 2020.1 ، يمكنك تحديد فهرس معلمات عشوائية:



الوصول إلى الخصائص من خلال __get

إذا تلقيت قيم الخصائص من خلال السحر __get()، فستفقد معلومات حول النوع. كان من الممكن استخدام علامات إضافية @varأو @property، لكن هذا لم يتم حفظه دائمًا. الآن يمكنك تحديد كل شيء من خلال البيانات الوصفية. يدعم الإكمال



التلقائي للمفاتيح في الكائنات التي تنفذ ArrayAccess

Metadata كائنات ArrayAccess ، ولكنه اقترح نوع القيم فقط. يتم الآن إكمال المفاتيح المحتملة تلقائيًا أيضًا.



عرف نقاط الخروج

وتعتبر PhpStorm ظائف نوع die()و exit()أو رمي استثناءات لتنفيذ كامل. ولكن قد يكون للتطبيقات نقاط خروج أكثر تعقيدًا. على سبيل المثال، بسيطة dd()أو trigger_error وظيفة مع حجة E_USER_ERROR .

في PhpStorm 2020.1 ، يمكنك وضع علامة على الوظائف كنقاط خروج ، وسيؤدي ذلك إلى تعديل تحليل التدفق وفقًا لذلك.



أيقونات الدوال المعاد تعريفها عبر البيانات الوصفية

عكس إعلانات الوظائف التي تم تغيير سلوكها مع الرمز override()، exitPoint()أو expectArguments()سيتم عرض رمز. سيؤدي النقر فوق الرمز إلى فتح ملف .phpstorm.meta.phpيتغير فيه السلوك ، لأنه يمكن أن يكون هناك العديد من الملفات.



يمكن إخفاء الرموز في التفضيلات / الإعدادات | المحرر | عام | أيقونات مزراب .

التعلم الآلي لفرز قائمة الوظائف الإضافية


تمت إضافة ترتيب لخيارات الإكمال التلقائي بناءً على التعلم الآلي.

كيف ترى ML في العمل؟

يتم تعطيل الإكمال التلقائي مع ML بشكل افتراضي. لا نريد أن تسلب الروبوتات عملنا! لتمكينه ، انتقل إلى التفضيلات / الإعدادات | المحرر | عام | إتمام الكود وتمكين الخيارات اقتراحات إتمام الترتيب بناءً على التعلم الآلي و PHP .

إذا قمت أيضًا بتمكين الخيار إظهار تغييرات الموضع في النافذة المنبثقة للإكمال ، فستعرض قائمة الإكمال التلقائي كيف تغير ترتيب العناصر.



نخطط لمنع انتفاضة السيارات لمواصلة العمل في هذا الاتجاه في الإصدارات المستقبلية.

عمليات التفتيش الجديدة


يمكن أن تكون الخاصية الخاصة متغيرًا محليًا.

سيتم إبراز تعريف الخاصية إذا تم استخدامه في طريقة واحدة فقط ويتم الكتابة فوقه فورًا. للإصلاح ، يمكنك استدعاء الإصلاح السريع Alt(⌥)+Enter "استبدال الخاصية بالمتغير المحلي" .



تهيئة خاصية إضافية

افترض أن خاصية خاصة لها قيمة افتراضية في فئة ، ولكن في المنشئ يتم استبدالها على الفور بقيمة أخرى. في هذه الحالة ، تكون القيمة الافتراضية زائدة عن الحاجة وتضيف ضوضاء فقط.

سيتم تمييز مُهيئ غير مستخدم ، ويمكن إزالته بإصلاح سريع Alt(⌥)+Enter "إزالة مُهيئ مكرر" .



تغيير نوع الخاصية في PHP 7.4 إلى القيمة الافتراضية



عامل التشغيل الثلاثي الزائدة

سوف يسلط PhpStorm الضوء على التعبيرات الثلاثية التافهة ومع إصلاح سريع Alt(⌥)+Enterيمكنك استبدالها بتعبيرات أبسط: يمكن أن يؤدي



النقل الزائد عن

طريق المرجع إلى نتائج غير متوقعة ، وهذا أحد أسباب اقتراح نيكيتا بوبوف السماح بالنقل الصريح بالرجوع عند الاتصال وظائف في PHP.

في هذه الأثناء ، سوف يسلط PhpStorm 2020.1 الضوء على المعلمات المعلنة على أنها تم تمريرها حسب المرجع ، ولكن لا يتم استخدامها على هذا النحو. يمكن إزالتها بأمان مع الإصلاح السريع Alt(⌥)+Enter.



سيعمل الشيء نفسه مع المصفوفات التي تحتوي على ارتباط في حلقة foreach:



قم بإزالة PHPDoc الإضافي ، حيث أصبح إعلان النوع فقط الآن بسيطًا جدًا بفضل الإصلاح السريع المقابل.



صحيح ، بشكل افتراضي ، يكون الفحص على مستوى المعلومات ، أي أنه لن يبرز. إذا كنت تريد تمييز كتل PHPDoc المكررة ، ثم لفحص تعليق PHPDoc المكرر في التفضيلات | المحرر | عمليات التفتيش ، قم بتعيين مستوى التحذير الضعيف أو أعلى.

تحديث إعادة هيكلة "طريقة النقل"


في بعض الأحيان قد يكون من الضروري نقل طريقة إلى فئة أخرى. إذا تم استخدام هذه الطريقة عدة مرات في رمز المشروع ، فيمكن لـ PhpStorm المساعدة هنا.

في السابق ، كان عليك أولاً جعل الطريقة ثابتة ، ثم استدعاء إجراء آخر لنقلها. في PhpStorm 2020.1 ، أعيدت صياغة إعادة بناء "طريقة الحركة" في إجراء ذري واحد. تمت إزالة الخطوات والنوافذ المنبثقة الإضافية ، ويتم كل شيء دفعة واحدة.

مرر فوق إحدى الطرق واضغط F6(أو Ctrl+T، 3). ثم حدد الفئة المستهدفة وستنتهي.



لرؤية جميع إعادة البناء المتاحة ، يمكنك النقر فوق Ctrl+Tأي مكان في الرمز.

تصحيح PHP في عميل HTTP


الآن ، لتمكين التصحيح بشكل انتقائي ، لا تحتاج إلى إزعاج مع معلمات الطلب أو تثبيت الامتداد في المتصفح. يكفي إنشاء طلب HTTP في ملف .httpوإرساله باستخدام الأمر PHP Debug المتوفر في القائمة Alt(⌥)+Enterأو بالنقر فوق الرمز. ونتيجة لذلك ، ستتم إضافة ملف تعريف ارتباط تلقائيًا إلى الطلب XDEBUG_SESSION.



وبعض الأشياء الصغيرة لـ PHP


يتم عرض @ العناصر المهجورة على أنها مشطوبة في عرض شجرة الهيكل
Ctrl(⌘)+F12



تمييز العلامات المطابقة <؟ php /؟>



الانتقال إلى قوس الفتح / الإغلاق

Shift+Ctrl+M (⌃+M)



تخصيص Lexer لـ Twig في

بعض الأحيان قد تحتاج إلى تغيير أحرف العلامات لقوالب Twig ، على سبيل المثال ، إذا كنت تستخدم Angular أيضًا ، والذي نفس النحو.
يمكنك القيام بذلك في التفضيلات / الإعدادات | اللغات والأطر | PHP | غصين .

IDE


Grazie Advanced Spelling and Grammar


تم تضمين البرنامج المساعد Grazie في PhpStorm خارج الصندوق ، والذي يتحقق من النص ليس فقط من أجل الأخطاء الإملائية ، ولكن أيضًا من أجل القواعد والنمط. علاوة على ذلك ، يتم دعم 16 لغة ، ويتم إجراء جميع عمليات التحقق محليًا دون إرسال بياناتك إلى أي مكان.



بشكل افتراضي ، يتم تمكين عمليات التحقق لملفات Markdown.
يمكنك أيضًا تضمينها في جميع حرفية السلسلة والتعليقات وكتل PHPDoc وتنفيذ الرسائل.

بالنسبة لـ PHP ، يمكنك التمكين في الإعدادات / التفضيلات | المحرر | تصحيح | النحو .

وضع LightEdit


في بعض الأحيان تحتاج إلى البحث / إصلاح الملف بسرعة وفتح IDE بالكامل لهذا ، يبدو كثيرًا ، ولكنك تريد الحصول على الإضاءة الخلفية والوظائف المعتادة. في مثل هذه الحالات ، نعمل على وضع LightEdit خفيف الوزن.

يعمل مثل هذا: إذا قمت بفتح الملف من سطر الأوامر أو قائمة السياق لنظام التشغيل ، بينما PhpStorm لا يعمل ، سيتم فتح الملف في LightEdit. حسنًا ، إذا كان PhpStorm الكامل يعمل بالفعل ، فسيتم فتح الملف فيه.



JetBrains Mono - الخط الافتراضي




وضع Zen


يجمع الوضع الجديد بين Distraction Free و Fullscreen للانغماس العميق في الكود.
عرض | المظهر | ادخل إلى وضع Zen



واجهه المستخدم


انقسام النافذة النهائية


بدلاً من فتح علامات تبويب جديدة والتبديل بينها ، يمكنك الآن تقسيم الشاشة وفتح عدة جلسات في علامة تبويب واحدة. للقيام بذلك ، حدد انقسام أفقي / عمودي من قائمة سياق المحطة الطرفية .



IntelliJ Light

Theme تم تحديث سمة Light بشكل طفيف وتوحيدها لتبدو متشابهة في جميع أنظمة التشغيل ، وتغير اسمها إلى IntelliJ Light .

تخصيص شريط الحالة

من قائمة السياق ، يمكنك اختيار المعلومات التي سيتم عرضها عليها.



ترتيب


تكوين SSH موحد


في السابق ، إذا تم إعادة استخدام اتصال SSH في النشر أو المترجم عن بُعد أو محطة SSH ، فيجب إعادة تكوينه في كل مرة.

الآن يمكن إضافة / تحرير جميع اتصالات SSH في التفضيلات / الإعدادات | أدوات | تكوين SSH ، ثم استخدمها بشكل متكرر عند الحاجة إليها.



لقد تغير مسار تكوينات IDE


على سبيل المثال ، على نظام macOS:
- ~/Library/Preferences/PhpStorm2019.3
+ ~/Library/Application Support/JetBrains/PhpStorm2020.1


المزيد في المساعدة .

مسار مخصص لحفظ تكوينات التشغيل


سابقًا ، تم تخزين تكوينات التشغيل في مجلد .ideaيضيفه العديد تمامًا إلى .gitignore (أفضل مثل هذا ). الآن يمكنك اختيار أي مسار ومشاركة تكوين التشغيل مع الزملاء من خلال نظام التحكم في الإصدار.

يمكن أن يكون مناسبًا بشكل خاص عند إعداد موظفين جدد: سحب مشروع ، تم فتحه في PhpStorm ، تم إطلاقه بزر واحد.

للقيام بذلك ، في مربع حوار تكوين Run / Debug ، تحتاج إلى تحديد الخيار Store كملف مشروع ، ومن خلال النقر على الترس ، يمكنك تحديد المسار المطلوب في المشروع.



التحكم في الإصدار


التزام جديد


تتوفر نافذة Commit في وضع غير مشروط ويتم عرضها على اليسار. وبالتالي ، لا يمنع العمل على الملفات الأخرى أثناء إعداد الالتزام ، ويتم وضع مزيد من المعلومات حول التغييرات على الشاشة.

يتم تشغيل Commit الجديد افتراضيًا للمستخدمين الجدد ويتم إيقاف تشغيله لأولئك الذين قاموا بالفعل بتثبيت PhpStorm.

ممكن بواسطة خيار استخدام واجهة التزام غير مشروط في التفضيلات / الإعدادات | التحكم في الإصدار | التزم .



تحسينات فرع Git


في الزاوية اليمنى السفلية من نافذة IDE ، يشار إلى فرع Git الحالي. إذا قمت بالنقر فوقه ، فإن VCS | بوابة | فروع .
أضفنا هنا حقل بحث. يقوم زر التحديث بتحديث قائمة الفروع البعيدة. ولكل التزام ، يضاف مؤشر: الوارد (الأزرق) أو الصادر (الأخضر).



إعادة تصميم التفاعلية التفاعلية


يتيح لك Git Rebase إعادة كتابة تاريخ الالتزامات. الآن يمكنك التخلص بسرعة من عمليات التنفيذ "المؤقتة" وتصحيح الرسالة أو ترتيب عمليات التنفيذ. بالطبع ، كل هذا يمكن القيام به من وحدة التحكم يدويًا ، ولكن PhpStorm يسمح لك بمشاهدة ما تم تغييره في تنفيذ معين على الفور.

للبدء ، في محفوظات الالتزامات ، تحتاج إلى تحديد الالتزام الأساسي المطلوب وتحديد rebase بشكل تفاعلي من هنا من قائمة السياق .



أدوات DB


يتضمن PhpStorm تقريبًا جميع ميزات DataGrip خارج الصندوق ، حتى تتمكن من رؤية مراجعة إصدار DataGrip 2020.1 من زملائنا.

الويب


وكما هو الحال دائمًا ، يتم تضمين جميع التحديثات من WebStorm 2020.1 أيضًا في PhpStorm.

يمكن العثور على قائمة كاملة بالتغييرات في ملاحظات الإصدار الكبيرة جدًا .

يمكنك أيضًا مشاهدة نظرة عامة على الإصدار على صفحة " ما الجديد " وإذا لم يكن لديك سوى بضع دقائق ، فإليك مقطع فيديو قصير (باللغة الإنجليزية) مع شرح للميزات الرئيسية للإصدار:



وهذا كل هذا الوقت. شكرا لقراءتك حتى النهاية! سنكون سعداء بالأسئلة والرغبات وتقارير الأخطاء والأفكار العادلة في التعليقات.

اعتني بنفسك!
فريق JetBrains PhpStorm الخاص بك

All Articles