يقوم Rector على الفور بترقية وإعادة بناء كود PHP الخاص بتطبيقك. يمكن أن يساعدك في مجالين رئيسيين:
يدعم Rector الآن الترقيات من PHP 5.3 إلى 8.4 والمشاريع الكبرى مفتوحة المصدر مثل Symfony وPHPUnit وDoctrine. هل تريد أن تكون دائمًا على أحدث PHP و Framework دون جهد ؟
استخدم Rector للتعامل مع الترقيات الفورية نيابةً عنك.
هل لديك جودة التعليمات البرمجية التي تحتاجها، ولكنك تواجه صعوبة في الحفاظ عليها مع المطورين الجدد في فريقك؟ هل ترغب في رؤية مراجعات التعليمات البرمجية الذكية حتى عندما ينام كل المطورين الكبار؟
أضف Rector إلى CI الخاص بك واسمح له بإعادة بناء الكود الخاص بك بشكل مستمر والحفاظ على جودة الكود عالية.
اقرأ منشور مدونتنا لمعرفة كيفية إعداد إعادة الهيكلة الآلية.
composer require rector/rector --dev
هناك طريقتان رئيسيتان لاستخدام ريكتور:
لاستخدامها، قم بإنشاء rector.php
في الدليل الجذر الخاص بك:
vendor/bin/rector
وتعديله:
use Rector Config RectorConfig ;
use Rector TypeDeclaration Rector Property TypedPropertyFromStrictConstructorRector ;
return RectorConfig:: configure ()
// register single rule
-> withRules ([
TypedPropertyFromStrictConstructorRector::class
])
// here we can define, what prepared sets of rules will be applied
-> withPreparedSets (
deadCode: true ,
codeQuality: true
);
ثم يجفف رئيس الجامعة:
vendor/bin/rector process src --dry-run
سيُظهر لك Rector اختلافات الملفات التي سيغيرها . لإجراء التغييرات، قم بإسقاط --dry-run
:
vendor/bin/rector process src
هل أنت فضولي لمعرفة كيفية عمل Rector داخليًا، وكيفية إنشاء القواعد الخاصة بك واختبارها، ولماذا تم إنشاء Rector؟ اقرأ Rector - قوة إعادة الهيكلة الآلية التي ستأخذك خطوة بخطوة عبر إعداد Rector وكيفية إنشاء القواعد الخاصة بك.
يتمتع مجتمع Rector بالقوة بفضل المشرفين النشطين الذين يعتنون بمجموعات Rector لمشاريع معينة.
ومن بين هذه المشاريع تنتمي:
Rector هي أداة نقوم بتطويرها ومشاركتها مجانًا، حتى يتمكن أي شخص من أتمتة عملية إعادة البناء الخاصة به. ولكن ليس لدى الجميع عشرات الساعات لفهم مدى تعقيد شجرة بناء الجملة المجردة في وقتهم الخاص. ولهذا السبب نقدم الدعم التجاري - لتوفير وقتك .
هل ترغب في تطبيق Rector على قاعدة التعليمات البرمجية الخاصة بك ولكن ليس لديك الوقت الكافي للتعامل مع مشروعك؟ استأجرنا للوصول إلى هناك بشكل أسرع.
راجع دليل المساهمة أو انتقل إلى مستودع التطوير rector/rector-src.
يمكنك استخدام خيار --debug
، الذي سيطبع مخرجات الاستثناءات المتداخلة:
vendor/bin/rector process src/Controller --dry-run --debug
أو مع Xdebug:
--xdebug
عند تشغيل Rector vendor/bin/rector process src/Controller --dry-run --xdebug
للمساعدة في تصحيح الأخطاء البسيط، يوفر Rector مساعدين لطباعة عقد AST بشكل جميل:
use PhpParser Node Scalar String_ ;
$ node = new String_ ( ' hello world! ' );
// prints node to string, as PHP code displays it
print_node ( $ node );
يستخدم Rector محلل nikic/php، المبني على تقنية تسمى شجرة بناء الجملة المجردة (AST). لا يعرف AST شيئًا عن المسافات، وعند كتابته في ملف، فإنه ينتج تعليمات برمجية سيئة التنسيق في كل من التعليقات التوضيحية PHP وdocblock.
سيعمل Rector في الوضع المتوازي في معظم الأوقات مع معظم أنظمة التشغيل. على نظام التشغيل Windows، قد تواجه مشكلات غير قابلة للحل على الرغم من اتباع دليل استكشاف الأخطاء وإصلاحها الموازي. في مثل هذه الحالة، تحقق مما إذا كنت تستخدم Powershell 7 (pwsh). قم بتغيير المحطة الطرفية الخاصة بك إلى موجه الأوامر (cmd) أو bash لنظام التشغيل Windows.
يحتاج مشروعك إلى أداة قياسية للتشفير ومجموعة من قواعد التنسيق، حتى يتمكن من جعل كود إخراج Rector جميلًا ولامعًا مرة أخرى.
نحن نستخدم ECS مع هذا الإعداد.
عندما تقوم بتطبيق تغييرات على ملفات ذات محتوى PHP + HTML، قد تحتاج إلى التحقق يدويًا من الملف الذي تم تغييره بعد تطبيق التغييرات.