
مرحبا بالجميع! يسرنا أن نقدم لك الإصدار الرئيسي الثاني من PhpStorm هذا العام!
يمكن الاطلاع على نظرة عامة على الإصدار في صفحة " ما الجديد ". وتحت الخفض ، تحليل مفصل لجميع التغييرات الملحوظة والميزات الجديدة. (الحذر - الكثير من الصور!)
يمكنك تنزيل الإصدار الجديد على موقع الويب أو استخدام تطبيق Toolbox . كما هو الحال دائمًا ، تتوفر تجربة لمدة 30 يومًا. يمكن استخدام الإصدار الكامل من قبل حاملي اشتراك نشط في حزمة PhpStorm أو All Products ، بالإضافة إلى الطلاب والمطورين المجانيين لمشاريع مفتوحة المصدر.
فب 7.4: الخصائص المكتوبة
PHP 7.4 يعد بأن يكون الإصدار الأكثر روعة والأكثر ثراءً بالميزات منذ PHP 7.0! انظر إلى جميع طلبات RFC المقبولة فيها .
الميزة الأكثر توقعًا هي ، بالطبع ، الخصائص المكتوبة ، و PhpStorm 2019.2 يدعمها بالفعل! بما في ذلك الإضاءة الخلفية والإخراج ونوع القرار ، وكذلك جميع أنواع الشيكات.
إذا حاولت وضع شيء ما في العقار ، فسوف يحذرك PhpStorm فورًا بشأنه.

ولكن من أجل الاستعداد للانتقال إلى PHP 7.4 ، والذي سيتم إصداره في أواخر نوفمبر ، يتوفر لدى PhpStorm إصلاحات سريعة. لإعلان نوع ما ، يمكنك الضغط على Alt+Enter
في خاصية دون كتابة وتحديد إضافة نوع معلن للحقل . سيحدد PhpStorm نوع الخاصية استنادًا إلى المعلومات الموجودة في PHPDoc ، أو القيمة الافتراضية ، أو تعريف نوع الوسيطة إذا تم حقن الخاصية من خلال مُنشئ.

؟؟ = عامل التشغيل (تعيين التناسق الفارغ)
المشغل تعيين الشيكات الفارغة الجديد مفيد جداً للتعبيرات الضخمة.
في PhpStorm ، بالطبع ، يتم دعم بناء الجملة ، ولكن لا يزال هناك حل سريع Alt+Enter
أجل استبدال ??
حيثما كان ذلك ممكنا:

عامل تخفيف الضغط (...) في المصفوفات
يدعم PHP فتح الحجج باستخدام عامل التشغيل …
منذ الإصدار 5.6. في الإصدار القادم من PHP ، يمكن استخدام المشغل في المصفوفات:

سيقوم PhpStorm بتحليل استخدام المشغل للتأكد من صحته والتأكد من قيامك بفك حزم الصفائف أو الكائنات القابلة للإرسال فقط ولا تحاول القيام بالخطأ بشيء لا يدعمه مترجم PHP:

في الإصدار التالي من PhpStorm 2019.3 ، نخطط لتنفيذ الدعم الكامل والإصلاحات السريعة لجميع ميزات PHP 7.4 الجديدة ، بما في ذلك وظائف السهم ، ومحددات في الأرقام الحرفية ، إلخ.
لصناعة السيارات في حقن التعبيرات العادية في PHP
في الإصدارات السابقة من PhpStorm ، لم يتم تمييز التعبيرات المعتادة في كود PHP افتراضيًا وعرضها مثل الجمل العادية. بالطبع ، يمكنك تطبيق لغة RegExp يدويًا ، لكنك لن تقوم بذلك خلال المشروع.
يضيف PhpStorm 2019.2 الدعم الكامل للعاديين في PHP! هذا يعني أنه في حالة استخدام وظائف preg_*,
في الكود preg_*,
سيتم تمييز القوالب والتحقق من صحتها.

علاوة على ذلك ، الآن يمكنك اختبار التعبير العادي مباشرة في IDE! حرك مؤشر الماوس فوق القالب ، واضغط على Alt+Enter
واتصل بـ Check RegExp .

تكرار رمز تسليط الضوء على الطاير
العثور على التكرارات في PhpStorm موجود منذ بعض الوقت ، في القائمة Code → Locate Duplicates. إذا لم تكن قد جربته بعد ، فجربه - وتفاجأ بعدد التكرارات التي يمكن أن تكون في المشروع!
في هذا الإصدار ، وصل تحليل الازدواجية إلى مستوى جديد ويعمل على الطيران مباشرة في المحرر. إذا قمت بنسخ نفس القطع مرارًا أو كتبتها عن طريق الخطأ ، فستعرفها على الفور.
يمكنك الانتقال إلى نسخة مكررة أخرى أو عرض كل شيء في قائمة في نافذة منفصلة:

بالمناسبة ، هؤلاء هم المرشحون الجيدين لإعادة استخراج المباني.
يسمى التفتيش الجديد جزء الشفرة المكررة ويتم تمكينه افتراضيًا. يمكن ضبط عتبة الحساسية في التفضيلات | محرر | التفتيش | عام | جزء رمز المكررة -> PHP . وفي التفضيلات | محرر | التكرارات ، يمكنك تعيين العناصر التي يتم تجاهلها عند البحث عن التكرارات ، على سبيل المثال ، يمكنك تجاهل أسماء مختلفة من المتغيرات أو الأساليب أو الخصائص ، وكذلك القيم الثابتة.
دعم تنسيق PHPT
هل ترغب في المساهمة في PHP نفسها والانضمام إلى PHP Internals؟ أفضل طريقة هي البدء بالوثائق والاختبارات! لحسن الحظ ، لا تحتاج إلى معرفة C. لهذا ، تتم كتابة اختبارات PHP في ملفات .phpt خاصة. في الواقع ، هذا ملف نصي ، مقسم إلى عدة أقسام ، قد يحتوي بعضها على كود PHP.
لذلك ، في PhpStorm 2019.2 يوجد أيضًا دعم لملفات phpt! يتم تمييز الأقسام ، يتم تنفيذ PHP و INI تلقائيًا عند الضرورة ، وتعمل التحويلات إلى الملفات الخارجية في الأقسام المقابلة.

مزيد من المعلومات حول اختبارات الكتابة لـ PHP هنا: PHP TestFest Tutorials و PHP Internals Book و qa.php.net .
تشغيل الملحن من خلال أي مترجم PHP
في السابق ، لتشغيل الملحن ، كنت بحاجة دائمًا إلى مترجم PHP محلي. المشكلة هي أنه قد لا يكون موجودًا على الإطلاق أو أن البيئة قد لا تتوافق مع الإنتاج. الآن في PhpStorm 2019.2 ، يمكنك تشغيل الملحن من خلال أي مترجم تم تكوينه في IDE. على سبيل المثال ، من خلال Docker أو Docker-compose أو Vagrant أو ، مثلاً ، خادم بعيد عبر SSH.
لتجربة هذه الميزة ، حدد مترجم عن بعد في التفضيلات | اللغات والأطر | فب | الملحن.

حدد مترجمًا حاليًا أو أضف واحدًا جديدًا!
إصلاحات سريعة
نقسم القائمة إلى عدة أسطر والعكس صحيح
وفقًا لـ PSR-2 ، يجب تقسيم السطر الذي يزيد طوله عن 80 حرفًا إلى عدة أسطر ، وكل منها أقصر من 80 حرفًا. لذلك ، إذا كان لديك صفيف كبير أو الوسيطات / معلمات الوظيفة لا تناسب الشاشة ، فيمكنك الضغط على Alt+Enter
عليها وتحديد قيم مفصولة بفواصل في أسطر متعددة:

إذا فجأة ، ونتيجة لإعادة البناء ، تصبح القائمة أقصر وتناسبها في سطر واحد ، فإن الإجراء العكسي متاح أيضًا: ضم القيم المفصولة بفواصل في سطر واحد .
بالمناسبة ، قد تحتاج هنا إلى ضبط إعدادات نمط الشفرة بسرعة. لكي لا تبحث عن الخيارات الضرورية لفترة طويلة ، حدد هذا الرمز ، اضغط على Alt+Enter
واتصل بضبط إعدادات نمط الرمز . سيقدم PhpStorm تغيير الخيارات ذات الصلة بالخطوط المحددة فقط:

تبديل البناء
قمنا بتطبيق القدرة على إضافة فروع بسرعة للتبديل التصاميم. اضغط على Alt+Enter
في تعبير الحالة بدون النص الأساسي واتصل بفرع "التبديل" .
لا تنسَ تحرير الفرع الذي تم نسخه ، وإلا فسيقوم PhpStorm بتمييز القطعة المكررة:

سوف يحذر PhpStorm 2019.2 أيضًا في حالة عدم وجود فرع افتراضي في switch
، ويمكنك أيضًا إضافته باستخدام إصلاح سريع.
سلسلة التلاعب
سوف PhpStorm مساعدة في عمليات سلسلة الروتينية. كل ما عليك القيام به مع السلسلة - تقسيمها إلى قطع ، وتغيير علامات الاقتباس ، أو تحويل السلسلة إلى sprintf
أو الاستيفاء ، أو أي شيء آخر - اضغط على Alt+Enter
في السلسلة وحدد الإجراء المطلوب من القائمة.
في هذا الإصدار ، أضفنا بضع رقائق جديدة إلى هذه القائمة.
افترض أن لديك تعبير طويل في sprintf
، وأنك بحاجة إلى إضافة معلمة أخرى بدلاً من سلسلة فرعية. حدده ، واضغط على Alt+Enter
، وحدد استخراج جزء السلسلة المحدد كوسيطة دالة التنسيق ، وسيقوم PhpStorm بوضع المعلمة في المكان المناسب:

يمكنك أيضًا فصل السلسلة الفرعية بالتسلسل:

معاينة للبحث الهيكلي
يعد البحث الإنشائي أو SSR للاختصار أداة قوية تتيح لك البحث عن أجزاء من التعليمات البرمجية ليس فقط كنص ، ولكن كأشجار بناء جملة صغيرة ، مع الإشارة إلى أنواع العقدة أو عوامل تصفية أخرى. جربه: تحرير -> بحث -> البحث هيكليا ...
تكمن مشكلة البحث الهيكلي في أن وصف نمط البحث يمكن أن يكون مهمة لا نظير لها. في PhpStorm 2019.2 ، لحسن الحظ ، يمكنك الآن رؤية تسليط الضوء في الوقت الحقيقي في المحرر. ليست هناك حاجة لتشغيل البحث مرارًا وتكرارًا لتصحيح القالب.
تخيل ، على سبيل المثال ، أنك تريد البحث عن جميع الاستدعاءات لطريقة معينة لفئة ما ، ولكن فقط تلك التي يتم فيها تمرير كائن من فئة معينة أخرى كمعلمة. سيكون من الصعب العثور على هذا من خلال البحث المنتظم ، ولكن مع SSR - مرة واحدة!

عميل HTTP
دعم شكل حليقة
توفر جميع أدوات تطوير المستندات والوثائق تقريبًا الآن القدرة على نسخ استعلام كسلسلة حليقة.
الآن يمكن استخدام هذا الخط في PhpStorm. قم بإنشاء ملف بالملحق .http أو ملف خدش HTTP جديد باستخدام اختصار لوحة المفاتيح Cmd+Shift+N (Ctrl+Shift+Alt+Insert)
، ثم قم بلصق سلسلة الاستعلام cURL. سيتم تحويله تلقائيًا إلى استعلام كامل ، وبعد ذلك يمكنك تجربة الرؤوس ومعلمات الاستعلام الأخرى بسهولة.

عميل HTTP يخزن ملفات تعريف الارتباط
لنفترض أنك قمت باختبار خدمة وقمت بطلب المصادقة ، ثم اتصل في الطلب التالي بنقطة نهاية خاصة. سابقًا ، سيتم فقد ملف تعريف ارتباط يحتوي على معلومات الجلسة من الطلب الأول. وفي عام 2019.2 ، يتم تخزين جميع ملفات تعريف الارتباط وإرسالها في طلبات لاحقة.

إذا كنت لا تريد حفظ ملفات تعريف الارتباط ، فاستخدم علامة @no-cookie-jar
لطلب معين.
التحكم في الإصدار
طريقة جديدة للالتزام دون حوار
افترض أنك قمت بتغيير عدة ملفات في مجلدات مختلفة من المشروع. لإلزامهم ، انتقل إلى علامة التبويب " التغييرات المحلية " في نافذة "التحكم في الإصدار" ، وحدد الملفات الضرورية واتصل بمربع حوار الالتزام. في هذه المرحلة ، يتم حظر كل شيء بواسطة نافذة منبثقة ، ولا يمكنك رؤية المشروع.
في PhpStorm 2019.2 ، يمكنك الالتزام مباشرةً من علامة التبويب التغييرات المحلية .
الآن ، بالعمل على الالتزام ، يمكنك عرض المشروع بالكامل ، والتاريخ ، وعمومًا ، القيام بأي شيء في IDE.

تم تعطيل الميزة بشكل افتراضي. لتجربته ، حدد "الالتزام من التغييرات المحلية دون إظهار مربع حوار" في التفضيلات | التحكم في الإصدار | حوار الالتزام.
تذكير الملفات ذات الصلة
عند إجراء التزام ، يمكن لـ PhpStorm 2019.2 أن يخبرك بإضافة ملفات تستخدم للتغيير بشكل متكرر مع الملفات التي حددتها بالفعل للالتزام.

تحسين العمل مع .gitignore
يدعم PhpStorm .gitignore خارج المربع ويسلط الضوء على الملفات التي تم تجاهلها في عرض Project .
أصبح من الأسهل قليلاً إضافته إلى .gitignore
. يمكن القيام بذلك في إطار "التحكم في الإصدار" عن طريق الاتصال بـ " إضافة إلى .gitignore" من قائمة السياق على الملفات التي لم تتم إضافتها بعد إلى نظام التحكم في الإصدار.

يحتوي ملف .gitignore
الآن على إتمام المسار ، وبواسطة Cmd+click
سيتم تمييز الملف في عرض Project .

يمكنك إخفاء أعمدة المؤلف أو البيانات أو التجزئة في السجل.

مقارنة الحالة الحالية بأي فرع
للقيام بذلك ، ما عليك سوى الاتصال بأمر Show Diff with Working Tree من نافذة Git Branches المنبثقة ، والتي تظهر بالنقر فوق اسم الفرع الحالي في الركن الأيمن السفلي.

تاريخ الدليل من مشاهدة المشروع
يمكنك تحديد عدة مجلدات في Project View ومشاهدة محفوظات التغيير الخاصة بهم باستخدام Git | إظهار المحفوظات من قائمة السياق.

عامل ميناء
انتقلنا Docker إلى نافذة الخدمات الجديدة. الغرض من هذه النافذة هو جمع جميع الاتصالات وعمليات التشغيل في مكان واحد. حتى الآن ، بشكل افتراضي ، يتضمن PhpStorm Docker واتصالات قاعدة البيانات هناك. يمكنك أيضًا إضافة أي تكوينات تشغيل / تصحيح إلى نافذة الخدمات . يتوفر هذا في التكوينات المتاحة في قسم الخدمات في Run | تحرير التكوينات ...
يتم عرض جميع الخدمات كنقاط ، ولكن يمكن جعل كل منها علامة تبويب منفصلة عن طريق استدعاء " إظهار" في علامة تبويب جديدة أو ببساطة سحب العقدة بعنوان " خدمات" .

عرض نظام حاوية عامل الميناء
يمكنك التنقل بين محتويات الحاوية في علامة التبويب " الملفات" .

المحرر
اكتمال رمز الكتابة
إذا كتبت فجأة funtcion
أو fnction
بدلاً من function
، فهذا ليس مخيفًا ، لأن الوظيفة الإضافية ستعمل على أي حال ، لأنها تتعرف على هذا النوع من funtcion
fnction
.

يعمل هذا بجميع اللغات ولجميع الشخصيات - الكلمات الرئيسية ، والفصول ، والوظائف ، والخصائص ، والأساليب ، إلخ.
تكوين السلوك "نقل علامة الإقحام إلى الكلمة التالية"
يمكنك اختيار مكان وضع المؤشر عند التنقل خلال الكلمات ، راجع قسم حركة الإقحام في التفضيلات | محرر | العامة.
< 
تجاوز الأقواس وعلامات الاقتباس عند الضغط على Tab
يتم تمكين الشريحة القديمة الآن افتراضيًا. عندما تكتب علامة تبويب وتضغط عليها ، فبدلاً من إضافة حرف علامة تبويب ، سيتحرك المؤشر إلى ما بعد علامات الاقواس والأقواس. لتعطيل هذه الميزة ، قم بإلغاء تحديد القفز خارج قوس الإغلاق / الاقتباس مع علامة تبويب عند كتابة خانة الاختيار في التفضيلات | محرر | عام | مفاتيح ذكية

يتم لف التعليمة البرمجية المميزة بعلامات اقتباس أو الأقواس تلقائيًا
يتم الآن تمكين ميزة مفيدة للغاية بشكل افتراضي. عند النقر فوق عرض أسعار (أو قوس) لتحديد جزء من التعليمات البرمجية ، ستتم إضافة علامات الاقتباس (أو الأقواس) تلقائيًا في بداية ونهاية التحديد.

إذا لم تعجبك هذا السلوك ، فيمكنك إيقاف تشغيله عن طريق تحديد التحديد المحيطي عند كتابة عرض أسعار أو دعامة في التفضيلات | محرر | عام | مفاتيح ذكية
تخطيط افتراضي جديد على ماك
لقد قمنا بتغيير التنسيق الافتراضي على نظام التشغيل MacOS من نظام التشغيل Mac OS X إلى نظام التشغيل macOS 10.5+. قمنا أيضًا بإعادة تسمية التنسيقات: يُطلق على Mac OS X 10.5 الآن الافتراضي لـ macOS ، أما Mac OS X القديم فيُعرف الآن باسم IntelliJ IDEA Classic.
تسليط الضوء على بناء الجملة لأكثر من 20 لغة
إذا كان مشروعك يحتوي على ملفات بلغات البرمجة بخلاف PHP و JavaScript ، فسوف يفاجأ PhpStorm 2019.2 بسرور تسليط الضوء على بناء الجملة لبيثون وروبي وغو ومجموعة كاملة من اللغات الأخرى. هذا يعمل خارج الصندوق ولا يتطلب أي إعدادات إضافية.
مع هذا ، نريد تحسين تجربة استخدام PhpStorm للمستخدمين الذين يحتاجون في بعض الأحيان إلى النظر في التعليمات البرمجية بلغات أخرى. لا يزال PhpStorm بيئة تطوير PHP وويب بشكل أساسي ، لذلك لا نخطط لتوسيع دعم اللغات الأخرى خارج نطاق التمييز.

يعتمد تمييز بناء الجملة للغات الإضافية على قواعد TextMate. انظر القائمة الكاملة للغات المدعومة من الصندوق في التفضيلات | محرر | حزم TextMate .
مخطوطات شل
في PhpStorm 2019.2 ، قمنا بتطبيق دعم مكثف للبرامج النصية للصدفة ، بما في ذلك إضافات المسار وإعادة تسمية إعادة المعالجة وإعادة إنشاء الكود ( Cmd+N/Alt+Insert)
ومجموعة من القوالب المباشرة ( Cmd+J/Ctrl+J)
.

نفذت أيضا التكامل مع العديد من الأدوات الخارجية.
للبحث عن مشاكل محتملة في البرامج النصية ، سيقترح PhpStorm تثبيت Shellcheck ، الذي يجد الكثير من المشاكل ويوفر إصلاحات سريعة لها.
أيضًا في PhpStorm 2019.2 ، يتكامل مع أداة mvdan / sh لتنسيق البرامج النصية للأصداف . عند استدعاء رمز الإصلاح لأول مرة ، سيطلب منك IDE تثبيته ثم تنسيقه بشكل صحيح.
وأخيرًا ، هناك تكامل مع موقع Explainshell الإلكتروني. يمكنك تحديد أي أمر ، اضغط على Alt+Enter
وحدد Explain shell . سيتم إعادة توجيه IDE إلى Explainshell ، حيث يمكنك معرفة معنى المجموعة المحددة. عندما تحوم فوق أمر مباشرة في IDE ، يتم عرض المساعدة أيضًا.

EditorConfig
بإضافة ملف .editorconfig ، تجعل التطوير في الفريق أكثر متعة ، لأن خيارات نمط معينة ستعمل بنفس الطريقة للجميع بغض النظر عن المحرر المستخدم.
في السابق ، في PhpStorm ، كان مطلوبًا لتثبيت المكون الإضافي EditorConfig ، ولكن في عام 2019.2 كان متاحًا خارج الصندوق ولا يلزم اتخاذ خطوات إضافية.
يمكنك ضبط إعدادات مختلفة للمجلدات الفرعية المختلفة في المشروع. فقط قم بإنشاء ملفات .editorconfig
في المجلدات الضرورية - يمكن أن يكون هناك العديد منها في المشروع.
يمكنك أيضًا ضبط خيارات PhpStorm في ملف .editconfig!
بالإضافة إلى الخيارات القياسية لـ EditorConfig ، يمكنك تكوين جميع خيارات النمط الخاصة بـ PhpStorm تقريبًا. في السابق ، كان يمكن تكوينها فقط من واجهة المستخدم. تتم الإشارة إلى هذه الخيارات بواسطة البادئة ij_
لتختلف عن تلك القياسية.

إذا قمت بإنشاء ملف .editorconfig جديد من Project View ، فسوف يطالبك PhpStorm باختيار الخيارات المراد تضمينها في الملف الذي تم إنشاؤه. سيتم إضافتها علق بها ، ويمكن أن تكون غير الضرورية وتغييرها.

مظهر
مزيد من المعلومات في Project View
يمكنك تمكين عرض حجم الملف وتاريخ التعديل في عرض المشروع باستخدام View -> In-place Description .

نوع جديد من تلميح الأدوات التفتيش
تلميح الأدوات الآن لا يصف المشكلة فحسب ، بل يقدم أيضًا الإصلاح الأول من القائمة. لتطبيقه على الفور ، حتى بدون إشارة أو نقرة ، اضغط على Alt+Shift+Enter
. للاطلاع على جميع الإصلاحات المتاحة ، اضغط على Alt+Enter
.

تحديث واجهة المستخدم على ويندوز
عرض بدون إطار جديد على نظام التشغيل Windows 10:

يشمل PhpStorm ، كما هو الحال دائمًا ، جميع التحديثات من WebStorm ومن DataGrip. يمكن العثور على قائمة كاملة بالتغييرات في ملاحظات الإصدار الكبيرة جدًا.
وأخيراً ، فيديو قصير (باللغة الإنجليزية) مع عرض للسمات الرئيسية للإصدار:
هذا كل شيء لمرة واحدة. شكرا لك على القراءة حتى النهاية! أسئلة ، رغبات ، تقارير الأخطاء والأفكار فقط تعبر عن التعليقات! سنكون سعداء للرد.
فريق JetBrains الخاص بك