Zinnector®

واجهة سطر الأوامر (CLI) للمطورين لاستضافة WordPress

يقوم Zinnector® بإنشاء WordPress محليًا دون تثبيت أي شيء سوى Node — دون Docker، ودون MAMP — ثم يتحقق مما قمت ببنائه مقارنةً بفتحة الاستضافة التي توشك على النشر إليها ويخبرك بما لن يتطابق، قبل أن تقوم بالدفع. ثبته باستخدام npm install -g zinnector. إنه مجاني، ومرخص بموجب MIT ومبني على نفس واجهة برمجة التطبيقات العامة مثل كل شيء آخر هنا.

محرر شفرة برمجية في متصفح، مع شجرة ملفات بجانب ملف مفتوح ومؤشر بداخله.

خمسة أوامر، والأوسط هو الأساس

تبدأ معظم واجهات سطر الأوامر (CLI) الخاصة بالاستضافة عند النشر. يبدأ Zinnector® قبل ذلك — فهو يبني الموقع معكم، ثم يتحقق من عملكم مقارنة بالجهاز الذي أنتم على وشك إرساله إليه. تضيع فترات ما بعد الظهيرة في الفجوة بين "كان يعمل على حاسوبي المحمول" و"يعمل على الخادم"، وتلك الفجوة قابلة للقياس.

zinnector جديد

أنشئ بنية أساسية لموقع أو إضافة أو قالب كتل يعمل على الفور. بدون ملفات نائبة وبدون مهام معلقة (TODOs) — يتم تفعيل الإضافة ويمكن اختيار القالب بمجرد إنشائه.

zinnector dev

نسخة WordPress حقيقية على جهازكم في ثوانٍ، تخدم الإضافات والقوالب الخاصة بكم، دون الحاجة إلى Docker ودون وجود PHP في PATH الخاص بكم. اختاروا أي إصدار PHP من 5.2 إلى 8.5 للتطوير عليه.

فحص Zinnector®

الفحص الأولي. يقارن ما بنيته بالموقع المخصص الذي توشك على النشر فيه ويحدد كل عدم تطابق — وكل فحص تعذر إجراؤه — قبل أن ترسل التغييرات.

دفع zinnector

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

zinnector ai

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

جرّب عمله في دقيقتين، دون الحاجة إلى حساب

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

  1. تثبيت

    قم بتشغيل npm install -g zinnector على Node 24 أو أحدث. إذا طبع npm الخطأ EBADENGINE، فإن إصدار Node لديك أقدم من 24 — قم بتثبيت إصدار LTS الحالي من nodejs.org وشغّل التثبيت مرة أخرى.

  2. تحقق من الإصدار

    يقوم الأمر zinnector --version بطباعة رقم الإصدار مثل 0.1.2. عند تشغيله على إصدار Node أقدم من 24، يطبع رسالة تفيد بأن إصدار Node 24 أو أحدث مطلوب، ثم يخرج.

  3. اقرأ المساعدة

    يسرد zinnector --help كل أمر أدناه مع توضيح الغرض منه في سطر واحد. كما يدعم كل أمر خيار --help الخاص به.

  4. إنشاء هيكل موقع

    ينشئ الأمر zinnector new my-site مشروعًا يبدأ على الفور — ملف zinnector.json ودليل شجري لـ wp-content وملف README — ويعرض الأوامر التالية المطلوب تشغيلها.

  5. تشغيل

    cd my-site، ثم zinnector dev. تطلب أول عملية تشغيل مرة واحدة تنزيل بيئة تشغيل WordPress (حوالي 570 ميغابايت، ويتم الاحتفاظ بها في ذاكرة التخزين المؤقت الخاصة بـ CLI، وليس في مشروعكم مطلقًا). تظهر رسالة النجاح بالشكل التالي: “running at http://127.0.0.1:9400”.

  6. افتحه في متصفح

    http://127.0.0.1:9400 هو موقع WordPress جديد؛ يفتح /wp-admin لوحة التحكم مع تسجيل الدخول مسبقًا. ضع إضافة في wp-content/plugins وستجدها متاحة عند إعادة التحميل التالية.

  7. بعد ذلك، مع فتحة استضافة

    zinnector login، وzinnector link، وzinnector check، وzinnector push — تحقق مسبقًا مما أنشأته مقابل الخانة، ثم انشر وراقب اكتمال العملية.

الفحص الأولي، بالتفصيل

لقد قمت بالبناء على PHP 8.3. الفتحة تعمل بالإصدار 8.1. لا شيء يخبرك حتى يصبح الموقع شاشة بيضاء. هذه هي المشكلة التي وُجد هذا الأمر لحلها، وهي المشكلة التي طلب مالك هذه المنصة معالجتها بالاسم. يقرأ Zinnector® كلتا البيئتين ويضعهما جنبًا إلى جنب — ثم يتيح لك النشر على أي حال، لأنه قد يكون لديك سبب لذلك.

PHP، مصنّف بصدق

تُصنَّف فجوة الإصدار الرئيسي على أنها عالية لأنها تؤدي بالتأكيد إلى تعطل الموقع؛ بينما تُصنَّف الفجوة الثانوية بدرجة أقل. فتصنيف كل شيء على أنه حرج يعلّم الأشخاص فقط تجاهل التحذير.

عدد الأقراص والملفات، بشكل منفصل

تتكون شجرة WordPress من عشرات الآلاف من الملفات الصغيرة، ويمكن لموقع أن يستنفد حصته من الـ inode بينما يظل أقل بكثير من الحد الأقصى لمساحة القرص. ويتم فحص كليهما وفقًا لما هو متبقٍ بالفعل في المساحة المخصصة، وليس وفقًا للخطة.

«تعذر التحقق» هي إجابة بحد ذاتها

الفحص الذي يتعذر عليه رؤية موضوعه يُبلغ بأنه لم يتم الفحص، ولا يُعتبر ناجحاً أبداً. يوضح التشغيل السليم عدد العناصر التي تعذر التحقق منها، لأن الإشعار الكاذب بالسلامة التامة هو ما لا يدقق فيه أحد مرتين.

يحذّر ولا يحظر أبدًا

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

بيئتا تشغيل محليتان، وكلاهما حقيقية

تُعد WordPress Playground هي الخيار الافتراضي: تتم ترجمة PHP برمجيًا إلى WebAssembly، والتشغيل داخل Node، بحيث ينتقل جهاز كمبيوتر محمول لا يحتوي إلا على Node مثبتًا عليه من لا شيء إلى WordPress قيد التشغيل في الوقت الذي يستغرقه تقريبًا قراءة هذه الجملة.

عندما تحتاج إلى PHP أصلي — إضافة مثل imagick، أو MySQL حقيقي — مرّر --runtime docker واحصل على حاويات php-fpm و MariaDB بدلاً من ذلك. يخدم كلاهما نفس الملفات من نفس المشروع، لذا فإن التبديل بينهما يغير المحرك ولا شيء آخر.

كل ما تقوم به بالفعل في لوحة التحكم

تم بناء Zinnector® على واجهة برمجة التطبيقات العامة نفسها الخاصة بلوحة التحكم، لذا فإن أي شيء يمكن أن تفعله اللوحة، يمكنه فعله — وكل أمر هو عملية موثقة في مواصفات OpenAPI بدلاً من كونه نقطة نهاية خاصة.

المواقع وعمليات النشر

عرض قائمة بالمواقع، وقراءة كل ما تعرفه المنصة عن موقع محدد، وإعادة النشر، وقراءة سجل النشر وسجلات البناء.

النطاقات، ونظام أسماء النطاقات (DNS) والبريد

عرض النطاقات، وقراءة سجلات DNS وتعديلها مع عرض السجل قبل كتابته، وقراءة خدمات البريد الخاصة بكم.

PHP والحصة وقاعدة البيانات وسجلات الأحداث

بدّل إصدارات PHP، واطّلع على استخدام القرص وinode مقارنة بما تمنحه خطتك، واحصل على روابط أحادية الاستخدام للوصول إلى phpMyAdmin، وتابع سجلات الوصول والأخطاء لحظياً.

WP-CLI والعمليات المجمعة

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

كل أمر، تمامًا كما تسردها --help

القائمة الكاملة، سطر واحد لكل منها. المرجع الكامل — كل علامة، ومثال قابل للتشغيل، وما يطبعه كل أمر — يتم إنشاؤه من واجهة سطر الأوامر (CLI) نفسها وموجود في وثائق المطورين وقاعدة المعرفة، لذلك لا يمكن أن يختلف عن الأداة التي قمت بتثبيتها.

zinnector جديد

أنشئ بنية مشروع WordPress يمكنك تشغيله على الفور.

zinnector dev

قم بتشغيل هذا المشروع محليًا — لا يلزم استخدام Docker.

تسجيل الدخول إلى zinnector

تسجيل الدخول باستخدام مفتاح واجهة برمجة تطبيقات Zinn Digital®.

تسجيل خروج zinnector

نسيان مفتاح API محفوظ.

zinnector whoami

إظهار هوية المستخدم الذي تم توثيق واجهة سطر الأوامر هذه باسمه.

مواقع zinnector

اسرد المواقع التي يمكن لهذا المفتاح رؤيتها.

حالة zinnector

كل ما تعرفه المنصة عن موقع واحد.

مشاركة zinnector

امنح شخصًا واحدًا حق الوصول إلى موقع واحد — مطور، أو مصمم، أو عميل — مع تحديد دور وسبب.

تعاونوا zinnector

اطلع على من تم منحهم حق الوصول إلى موقع ما، وأدوارهم، وما إذا كانوا قد قبلوا بعد أم لا.

إلغاء مشاركة zinnector

قم بإلغاء وصول شخص ما، إما عبر البريد الإلكتروني أو معرّف المنح.

دعوات zinnector

الدعوات التي في انتظارك، وقبول إحداها.

رابط zinnector

وجّه هذا المشروع إلى خانة استضافة (واربط مستودعه).

سحب zinnector

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

مزامنة zinnector

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

موصل zinnector MCP

جسر إلى خادم MCP الخاص بـ Zinn Digital® لتطبيق Claude Desktop وعملاء الذكاء الاصطناعي الآخرين الذين يقومون بتشغيل خوادم محلية فقط.

استنساخ zinnector

أنشئ مشروعًا محليًا من موقع مستضاف في خطوة واحدة: استنسخ مستودعه أو اسحب ملفاته، واكتب ملف المشروع، وكن جاهزًا لتشغيل zinnector dev.

فحص zinnector

قارن هذا المشروع بفتحة النشر التي توشك على النشر إليها.

zinnector push

قم بالفحص المسبق، وادفع التغييرات الخاصة بك، ثم انشر.

zinnector deploy

أعد نشر ما تملكه المنصة بالفعل، دون إجراء دفع.

zinnector ينشر

سجل نشر الموقع.

zinnector php

عرض إصدار PHP الخاص بالموقع أو تغييره.

حصة zinnector

استخدام القرص والملفات وقاعدة البيانات مقارنةً بما تمنحه الخطة.

zinnector db

حجم قاعدة البيانات، وروابط لمرة واحدة للدخول إلى phpMyAdmin ومدير الملفات.

سجلات zinnector

تتبع سجلات الوصول والأخطاء الخاصة بالموقع مباشرةً.

zinnector wp

شغّل أمر WP-CLI مسموحًا به على أحد المواقع.

نسخة احتياطية zinnector

عرض النُسخ الاحتياطية للموقع وإنشاؤها. الأوامر الفرعية: list، now.

نطاقات zinnector

اسرد النطاقات التي يمكن لهذا المفتاح رؤيتها.

zinnector dns

قراءة وتغيير سجلات DNS. الأوامر الفرعية: list، add، rm.

بريد zinnector

عرض خدمات البريد.

zinnector مجمع

تشغيل عملية واحدة عبر مواقع متعددة (cache_purge، malware_scan، sitemap، block_ip).

zinnector ai

اسأل مساعد Zinn Digital®، مع استخدام هذا المشروع كسياق.

الأسئلة

هل يجب أن أكون عميلاً لدى Zinn Digital® لاستخدامه؟

لا. لا يحتاج `zinnector new` و `zinnector dev` إلى أي حساب على الإطلاق — قم بإنشاء هيكل لإضافة أو قالب أو موقع كامل وشغّله محليًا، مجانًا، وللأبد. لا يلزم وجود مفتاح API إلا للأوامر التي تتواصل مع استضافتكم.

هل يتطلب Docker؟

ليس لوقت التشغيل الافتراضي. يقوم WordPress Playground بترجمة PHP برمجياً إلى WebAssembly ويعمل داخل Node، لذا يقوم `zinnector dev` بتشغيل WordPress حقيقي في ثوانٍ دون تثبيت أي شيء آخر. إذا كنتم بحاجة إلى PHP أصلي — لاختبار إضافة مثل imagick أو ionCube — فإن `--runtime docker` يوفر لكم حاويات php-fpm و MariaDB بدلاً من ذلك. كلاهما مدعوم؛ ولا يُعد أي منهما خياراً بديلاً احتياطياً.

ما الذي يقارنه الفحص الأولي في الواقع؟

إصدار PHP المحلي لديكم مقارنة بإصدار الفتحة، وما إذا كان بإمكان الفتحة التبديل إلى الإصدار الذي بنيتم عليه، وما إذا كان إصدار PHP الخاص بالفتحة قد تجاوز نهاية فترة الدعم وما إذا كان الجهاز قد طبقه بالفعل، وحجم مشروعكم وعدد ملفاته مقارنة بالمساحة المتبقية للقرص ونقاط inode، وإصدارات WordPress على كلا الجانبين، وما إذا كانت الفتحة قد انتهت من التهيئة، وما إذا كان هناك مستودع git متصل للنشر منه. أي شيء لم يتمكن من التحقق منه يتم الإبلاغ عنه على أنه غير مفحوص بدلاً من احتسابه كناجح.

هل يمكنه منعي من النشر؟

لا، وذلك أمر متعمد. يطلق الفحص المسبق تحذيرًا ويسمح لك بالمتابعة — ويتجاوز الخيار `--force` أي نتائج للنشر. أنت تعرف عن موقعك أمورًا لا يعرفها أداة الفحص، والأداة التي ترفض النشر هي أداة يتخلص منها المستخدمون بإلغاء تثبيتها.

هل مفتاح API الخاص بي آمن؟

لا تتم قراءة المفتاح مطلقًا من سطر الأوامر — بل من مطالبة أو من stdin الممرر فقط — لذا لا يمكن أن ينتهي به الأمر في سجل واجهة الأوامر الخاصة بك أو في قائمة العمليات. ويتم تخزينه في دليل التكوين الخاص بك مع وضع الملف 600، ويعيد Zinnector® تأكيد هذه الأذونات في كل مرة يقوم فيها بالكتابة.

هل يمكنني استخدامه في CI؟

نعم. اضبط `ZINNECTOR_TOKEN`، وسيقبل كل أمر خيار `--json`. تتجه المخرجات المقروءة بشريًا إلى stderr والبيانات إلى stdout، مما يحافظ على نظافة قنوات التمرير (pipes). ينتهي أمر `zinnector check` برمز غير صفري عند العثور على أي شيء، وبذلك يعمل كبوابة لمسار المعالجة (pipeline gate)، كما يفشل الخيار `--strict` أيضًا عندما يتعذر إجراء مقارنة.

قم بتثبيته وشغّل موقعًا في الدقيقة التالية

قم بتشغيل npm install -g zinnector، أو جربه مرة واحدة باستخدام npx zinnector new my-site. مجاني ومرخص بموجب MIT ومبني على الـ API العام. أنشئ هيكل المشروع، وشغله محليًا بدون Docker، وتحقق منه مسبقًا قبل النشر.

قراءة الوثائق