لقد صنعت نصًا بنفسي لنشر الموقع للإنتاج. لماذا كنت بحاجة لعرض ما يحدث. ولجعله أكثر وضوحًا ، قررت عرضه بالألوان. ومع ذلك ، لم أستطع العثور على شيء مناسب. على الأكثر ، تعرض المكتبة نصًا ملونًا ، لكنها لم تدعم الحشو. لذلك ، قمت بعمل مكتبتي الخاصة لهذا الغرض. ربما شخص ما سيكون مفيدا. مكتبة صغيرة (لكنها عملية) لإخراج النص الملون إلى وحدة التحكم مع دعم المسافة البادئة في هذا النموذج
Console::indent(2)->color('brown')->bgcolor('magenta')->writeln(' Habr!');

- التثبيت
- استخدام
- المسافة البادئة
- الأنماط
- تسجيل
- السكر النحوي
التثبيت
يمكنك استخدام الملحن للتثبيت
composer require shasoft/console
أو تحميل من جيثب
استخدام
قائمة بجميع الألوان المدعومة. أسماء الأعمدة هي ألوان الخلفية ، وأسماء الصفوف هي ألوان نصية.

إخراج نص اللون
- وظيفة اللون ( القيمة ) - ضبط لون النص
- دالة bgcolor ( القيمة ) - اضبط لون الخلفية
- وظيفة الكتابة ( value1 ، value2 ، ... ) - تعرض القيمة على الشاشة. إذا لم تكن القيمة عبارة عن سلسلة ، فسيتم تحويلها إلى سلسلة باستخدام دالة php var_export ( القيمة ، صواب )
- وظيفة إعادة تعيين () - إعادة تعيين الألوان إلى القيم الافتراضية
- وظيفة setDefault () - تعيين الألوان الافتراضية. القيم الافتراضية: لون الخلفية = أسود ، لون النص = أبيض
- أدخل الوظيفة ( $ resetColor = صواب). بشكل افتراضي ، تعيد استدعاء دالة إعادة تعيين الألوان إلى قيمها الافتراضية. لاحظ أنه لا يتم عرض السطر حتى يتم استدعاء الدالة enter (). هذا لأن المكتبة تدعم الحشو.
- وظيفة writeln ( ... ) - كتابة ( ... ) + أدخل ()
use Shasoft\Console\Console;
المسافة البادئة
للعمل مع المسافة البادئة ، استخدم دالة المسافة البادئة ( قيمة المسافة البادئة [، القيمة المطلقة ]) - إذا تم تحديد المعلمة الثانية وكانت = صواب ، فإن المسافة البادئة مطلقة. خلاف ذلك ، المسافة البادئة هي النسبية. للحصول على المسافة البادئة الحالية ، تحتاج إلى استدعاء الدالة المسافة البادئة () بدون معلمات.
مثال:
use Shasoft\Console\Console; Console::indent(0,true);
= 2 indent(1) = 3 = 2 indent(-1) = 2 = 2 indent(10) = 10 = 2 indent(1) = 1
الاستنتاج: 
- وظيفة setTabSize ( حجم علامة التبويب ) - تعين حجم علامة التبويب. الافتراضي = 3
- وظيفة setSpace ( رمز ) - لتعيين حرف علامة التبويب. الافتراضي = '' (الفضاء)
يتم تطبيق الدالة المسافة البادئة على LINE الإخراج وسوف تتغير القيمة حتى يتم استدعاء الدالة enter (). أي هذا الكود سوف يطبع سطر المسافة البادئة 3
Console::indent(0,true)->color('red')->indent(1)->bgcolor('blue')->indent(1)->write(' 3')->indent(1)->enter();
الأنماط
يمكنك تحديد الأنماط. نمط الخطأ الافتراضي هو "خطأ"
- وظيفة SetStyle ( اسم النمط ، لون النص = فارغة ، لون الخلفية = خالية) - تعيين معلمات النمط
- نمط الوظيفة ( اسم النمط ) - استخدم النمط المحدد
مثال للاستخدام:
Console::indent(1,true)->style("error")->writeln('- ');
الاستنتاج: 
تسجيل
هناك وظائف خاصة لتسجيل التحكم.
- وظيفة setLogLevel ( قيمة $ = فارغة) - ضبط / الحصول على مستوى التسجيل العالمي. الافتراضي = 0
- دالة logLevel ( قيمة $ = فارغة) - ضبط / الحصول على مستوى التسجيل. الافتراضي = 0
يتم عرض القيم باستخدام وظيفة الكتابة () فقط إذا كان مستوى التسجيل الحالي أقل من مستوى التسجيل العام.
مثال:
Console::setLogLevel(0)->logLevel(1)->writeln(' , = 1 0'); Console::setLogLevel(2)->logLevel(1)->writeln(', = 1 - 2'); Console::setLogLevel(2)->logLevel(3)->write(' ')->logLevel(1)->write(' ')->enter();
السكر النحوي
من أجل عدم كتابة اللون ("الأحمر") -> يمكن كتابة bgcolor ("الأخضر") في شكل قصير
Console::red()->bg_green()->writeln(' .');
يمكن تعيين لون الخلفية بواسطة الوظيفة دون تسطير. ومع ذلك ، فهي تفصل اللون بصريًا عن البادئة ، وهي في رأيي مريحة للغاية.
صفحة المكتبة
محدث : بما أنهم أشاروا إلى خطأ في اسم دالة التعريف بدلاً من المسافة البادئة ، فقد أصلحته حتى لا أحرج أولئك الذين يعرفون اللغة الإنجليزية جيدًا :)