مرحبا يا هابر! يسعدنا أن نقدم أول إصدار رئيسي لـ 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
، لكن هذا لم يتم حفظه دائمًا. الآن يمكنك تحديد كل شيء من خلال البيانات الوصفية. يدعم الإكمال
التلقائي للمفاتيح في الكائنات التي تنفذ ArrayAccessMetadata كائنات 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 الكامل يعمل بالفعل ، فسيتم فتح الملف فيه.

وضع Zen
يجمع الوضع الجديد بين Distraction Free و Fullscreen للانغماس العميق في الكود.عرض | المظهر | ادخل إلى وضع Zen
واجهه المستخدم
انقسام النافذة النهائية
بدلاً من فتح علامات تبويب جديدة والتبديل بينها ، يمكنك الآن تقسيم الشاشة وفتح عدة جلسات في علامة تبويب واحدة. للقيام بذلك ، حدد انقسام أفقي / عمودي من قائمة سياق المحطة الطرفية .
IntelliJ LightTheme تم تحديث سمة 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 الخاص بك