لماذا تستخدم منسق PHP هذا؟
- تنسيق متوافق مع PSR-12 لقواعد كود PHP الحديثة
- مدعوم بـ Prettier + @prettier/plugin-php لإخراج مستقر وموحد
- خيارات لحجم المسافة البادئة، المسافات مقابل علامات الجدولة، والالتفاف / طول السطر
- يوحد المسافات، المسافات البادئة، المصفوفات، هياكل التحكم والأقواس
- يعمل مع ملفات .php و .phtml و .php5 و .php4 و .inc
- تنسيق سريع في المتصفح مع تراجع تلقائي إلى خلفية آمنة عند الحاجة
- ممتاز لـ Laravel و Symfony و WordPress والأطر المخصصة والتطبيقات القديمة
🔧 كيفية تجميل كود PHP في 4 خطوات for php-formatter
1. الصق أو أسقط الكود الخاص بك
الصق كود PHP الخاص بك في المحرر، أو اسحب وأسقط ملف `.php` / `.phtml` / `.inc`. الأداة تكتشف تلقائيًا بناء جملة PHP وتجهزه للتنسيق.
2. اضبط خيارات التنسيق
اختر حجم المسافة البادئة، سواء استخدام المسافات أو علامات الجدولة، وطول الالتفاف / السطر المفضل. الإعدادات الافتراضية معقولة لمعظم مشاريع نمط PSR-12.
3. انقر على "تنسيق"
اضغط **تنسيق** لتشغيل الكود الخاص بك عبر محرك PHP الخاص بـ Prettier. في الحالات النموذجية، تظهر النتيجة على الفور تقريبًا.
4. راجع، انسخ، واحفظ
راجع الإخراج المنسق، ثم انسخه مرة أخرى إلى محررك أو حمّله كملف `.php`. احفظ النسخة المنظفة للحفاظ على الاختلافات المستقبلية مرتبة.
المواصفات الفنية
المعايير ودعم بناء الجملة
تم ضبط منسق PHP للأطر الحديثة والمكتبات مع الحفاظ على عمل بناء الجملة الكلاسيكي بسلاسة.
| الميزة | مدعوم | ملاحظات |
|---|---|---|
| محاذاة PSR-12 | ✅ نعم | نمط موحد متوافق على نطاق واسع مع PSR-12 وممارسات المجتمع الشائعة. |
| بناء جملة PHP 7+ | ✅ نعم | مساحات الأسماء، تلميحات النوع القياسي، أنواع الإرجاع، الأنواع القابلة للإلغاء، إلخ. |
| ميزات PHP 8+ | ✅ نعم | السمات، الأنواع المتحدة، ترقية المُنشئ، تعبيرات المطابقة، دوال السهم. |
| بناء جملة المصفوفات المختصر | ✅ نعم | يُطبع المصفوفات إلى نمط `[...]` الحديث حيثما كان ذلك مناسبًا. |
| Heredoc / Nowdoc | ✅ نعم | يحافظ على المحتوى مع تنظيف المسافات البادئة المحيطة. |
| PHP + HTML مختلط | ✅ نعم | يمكنه تنسيق قوالب `.php` النموذجية التي تحتوي على HTML مضمن. |
قواعد التنظيف والتخطيط
يركز محرك Prettier لـ PHP على التخطيط فقط - يظل سلوك الكود الخاص بك كما هو.
| المجال | ما الذي يتم تطبيعه؟ | كيف يساعد |
|---|---|---|
| المسافات البادئة | حجم مسافة بادئة متسق باستخدام المسافات أو علامات التبويب حسب إعداداتك | يزيل الانحراف في المسافات البادئة المصنوعة يدويًا بمرور الوقت. |
| المسافات | مسافات حول العوامل والفوارز وبنيات التحكم والكلمات المفتاحية | يجعل التعبيرات والشروط أسهل في القراءة. |
| الأقواس والكتل | وضع ثابت للأقواس للفئات والدوال وبنيات التحكم | يمنع حروب الأنماط ويحافظ على الاختلافات متوقعة. |
| المصفوفات | العناصر في أسطر متعددة عند الحاجة، قواعد فوارز زائدة متسقة | يحسن مصفوفات التكوين الكبيرة والحِمل. |
| الأسطر الفارغة | تجميع معقول بين الدوال والطرق والفئات | يمنح الملفات هيكلًا واضحًا وقابلًا للقراءة. |
نموذج التنفيذ والحدود
مصمم ليكون سريعًا وآمنًا في بيئة المتصفح.
| الجانب | القيمة / السلوك | ملاحظات |
|---|---|---|
| محرك التنفيذ | Prettier + @prettier/plugin-php | يعمل داخل المتصفح كلما كان البرنامج المساعد متاحًا. |
| البديل الاحتياطي | خادم `/api/php-formatter` آمن | يُستخدم فقط إذا تعذر تحميل البرنامج المساعد لـ PHP من جانب العميل. |
| مهلة الانتظار | ~25 ثانية | يتم إلغاء الطلبات إذا استغرق التنسيق وقتاً طويلاً. |
| الحد الأقصى لحجم الإدخال (نص) | ~2 ميجابايت | حد أقصى صارم في منطق المُنسِّق. |
| الحد الأقصى لحجم الملف (رفع) | ~5 ميجابايت | محدد بواسطة إعداد `maxFileSizeBytes` للأداة. |
الخصوصية والأمان
هذه الأداة مخصصة لمقتطفات التطوير اليومية بدلاً من كود الإنتاج شديد الحساسية.
| الجانب | السلوك | |
|---|---|---|
| التنسيق من جانب العميل | المسار المفضل باستخدام وقت تشغيل Prettier في المتصفح. | يتجنب إرسال الكود عبر الشبكة في الظروف العادية. |
| الاحتياطي من جانب الخادم | إذا لم يمكن تحميل إضافة PHP، يتم إرسال الكود عبر HTTPS إلى نقطة نهاية تنسيق مؤمنة. | يتم معالجته كمدخل عابر للتنسيق فقط. |
| التخزين | لا يُقصد التخزين طويل الأمد للمدخلات الخام. | قد يتم جمع مقاييس الأخطاء/الأداء المجمعة فقط. |
| أفضل الممارسات | لا تقم بلصق الأسرار، رموز الوصول أو كلمات المرور في أي مُنسِّق عبر الإنترنت. | احتفظ بالكود الحساس للأمان على الأدوات المحلية وCI. |
تنسيق PHP عبر سطر الأوامر (Prettier & PHP-CS-Fixer)
عندما تعمل داخل مشروع، تكون الأدوات المحلية هي أفضل طريقة لفرض نمط متسق عبر المستودع بأكمله.
Node / npm
تثبيت Prettier مع إضافة PHP
npm install --save-dev prettier @prettier/plugin-phpيضيف Prettier وإضافة PHP الخاصة به إلى مشروعك.
تنسيق ملف PHP واحد
npx prettier --write src/Example.php --parser phpيطبق نفس النمط المستخدم بواسطة هذه الأداة عبر الإنترنت.
تنسيق جميع ملفات PHP في مشروع
npx prettier "src/**/*.php" --parser php --writeيحافظ على تنسيق قاعدة الكود بأكملها بشكل متسق.
PHP-CS-Fixer
تثبيت PHP-CS-Fixer عالمياً باستخدام Composer
composer global require friendsofphp/php-cs-fixerيضيف أداة تصحيح نمط قوية مخصصة لـ PHP إلى مجموعة أدوات سطر الأوامر الخاصة بك.
تشغيل بقواعد PSR-12
php-cs-fixer fix src --rules=@PSR12يطبق PSR-12 على جميع ملفات PHP تحت `src`.
حالات الاستخدام الشائعة لمنسق PHP
Laravel / Symfony / واجهات برمجة التطبيقات الخلفية
ترتيب وحدات التحكم والخدمات وكائنات نقل البيانات قبل إعادة الهيكلة أو مراجعة الكود.
- توحيد تنسيق وحدات تحكم HTTP ومعالجات النماذج.
- تنظيف فئات الخدمات والمستودعات المشتركة بين الفرق.
- ضمان نمط متسق عبر الخدمات المصغرة وواجهات برمجة التطبيقات.
// Before
class OrderController extends Controller{public function store(Request $request){$order=$this->service->create($request->all());return response()->json($order,201);}}
// After
class OrderController extends Controller
{
public function store(Request $request)
{
$order = $this->service->create($request->all());
return response()->json($order, 201);
}
}
WordPress وقواعد التعليمات البرمجية القديمة
جلب مشاريع PHP 5 / 7 القديمة أقرب إلى المعايير الحديثة دون إعادة كتابة كل شيء.
- تجميل كود القوالب والإضافات قبل التصحيح.
- تنظيف المقاطع الفوضوية المنقولة بالنسخ واللصق من الدروس التعليمية.
- الانتقال تدريجياً بالملفات القديمة نحو اصطلاحات PSR-12.
التعليم ومراجعات الكود
استخدم التنسيق للتركيز على المنطق والهندسة المعمارية بدلاً من موضع الأقواس.
- أظهر للطلاب كيف يحسن النمط المتسق قابلية القراءة.
- أرفق أمثلة قبل/بعد في طلبات السحب لتسليط الضوء على التحسينات.
- استخدم كفحص سريع للعقلانية لعينات الكود في منشورات المدونات والوثائق.
// Example exercise: ask students to predict the formatted result
if($user&&$user->isAdmin()){logAction($user,"login");}
❓ Frequently Asked Questions
❓هل تدعم هذه الأداة ميزات PHP 8 الحديثة؟
🔧هل يمكنني تغيير عرض المسافة البادئة أو استخدام المسافات البادئة بدلاً من المسافات؟
📏كيف يتم التعامل مع التفاف الأسطر؟
🔐هل يتم تحميل الكود الخاص بي إلى خوادمك؟
🧮هل سيغير التنسيق طريقة تشغيل كود PHP الخاص بي؟
⚙️كيف أفرض نفس النمط في مشروعي؟
Pro Tips
أضف خطوة تنسيق (Prettier أو PHP-CS-Fixer) إلى خط أنابيب CI الخاص بك حتى لا يصل أي PHP غير مُنسَّق إلى `main`.
قم بتشغيل المُنسِّق قبل فتح طلب سحب للحفاظ على الاختلافات مركزة على تغييرات السلوك، وليس المسافات البيضاء.
لإعادة الهيكلة الكبيرة، قم بتنسيق المشروع بأكمله مرة واحدة على فرع مخصص، ثم ادمجه، ثم قم بإجراء التغييرات المنطقية في طلبات سحب منفصلة.
عالج الأدوات عبر الإنترنت مثل المحطات الطرفية المشتركة: تجنب لصق الأسرار الإنتاجية والمفاتيح الداخلية في أي نموذج ويب.
Additional Resources
Other Tools
- محسن CSS
- محسن HTML
- محسن Javascript
- محسن PHP
- منتقي الألوان
- مستخرج Sprite
- فك تشفير Base64
- تشفير Base64
- منسق Csharp
- منسق CSV
- Dockerfile Formatter
- منسق Elm
- منسق ENV
- منسق Go
- منسق Graphql
- منسق Hcl
- منسق INI
- منسق JSON
- منسق Latex
- منسق Markdown
- منسق Objectivec
- منسق Proto
- منسق Python
- منسق Ruby
- منسق Rust
- منسق Scala
- منسق سكريبت Shell
- منسق SQL
- منسق SVG
- منسق Swift
- منسق TOML
- Typescript Formatter
- منسق XML
- منسق YAML
- منسق Yarn
- مختصر CSS
- Html Minifier
- Javascript Minifier
- مختصر JSON
- مصغر XML
- عارض رؤوس HTTP
- PDF إلى نص
- مختبر Regex
- مدقق ترتيب SERP
- بحث Whois