Window.pipedriveLeadboosterConfig = { القاعدة: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', الإصدار: 2, } ؛(الدالة () { var w = نافذة إذا كان (w.LeadBooster) { console.warn('LeadBooster موجود بالفعل') } وإلا { { w.LeadBooster = { q: [], على: دالة (ن، ح) { { هذا.q.push({ t: 'o'، n: n، n: n، h: h }) }, الزناد: الدالة (n) { هذا.q.push({ t: 't'، n: n: n }) }, } } })() تطوير PHP. مكوّن وحدة تحكم سيمفوني - نصائح وحيل - The Codest
The Codest
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • الصناعات
    • التكنولوجيا المالية والمصرفية
    • E-commerce
    • أدتك
    • التكنولوجيا الصحية
    • التصنيع
    • الخدمات اللوجستية
    • السيارات
    • إنترنت الأشياء
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
السهم الخلفي العودة إلى الوراء
2022-04-14
تطوير البرمجيات

تطوير PHP. مكون وحدة تحكم سيمفوني - نصائح وحيل

The Codest

سيباستيان لوكزاك

PHP قائد وحدة PHP

تم إنشاء هذه المقالة بهدف أن تظهر لك النصائح والحيل الأكثر فائدة واسترجاعًا حول تطوير وحدة تحكم Symfony Console.

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

مقدمة

كثيراً ما تسمع
​

يستخدم PHP فقط لإنشاء صفحات الويب

الصورة

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

كل من PHP تدعم اللغة وبيئتها بشكل مثالي اتصال HTTP الذي، إلى جانب استخدام بيئة CLI، يجعل من الممكن إنشاء روبوتات الويب أو برامج زحف الويب أو الأدوات التي تزامن البيانات في البيئات الخارجية بسرعة.
​
لدعم ذلك لدي بعض الإحصائيات التي توضح أن مكون وحدة التحكم في إطار عمل سيمفونيالذي يتيح سهولة الوصول إلى سطر الأوامر، وهو من بين أكثر 5 برامج استخدامًا وتنزيلًا سيمفوني الحزم على الإطلاق.

​
الصورة

​

​
في هذه المرحلة، نود أن نشارككم بعض الحيل التي يمكن لكل مطور PHP يجب أن تعرفها عند الكتابة الكود في PHP التي من المفترض أن تعمل في CLI.
​

جدول اختيار تفاعلي مع مصدر بيانات مخصص

​
الصورة
​

يمكن تحقيق عرض الجدول مع القدرة على اختيار الإدخالات بطريقة سهلة باستخدام سيمفوني الأمر:

// src/Arc/App/Command/TestCommand.php

    الدالة المحمية execute(InputInterface $input، OutputInterface $output): int
    {
        $io = جديد SymfonyStyle($input, $output);
        $io->title("مثال جدول التحديد التفاعلي");

        $able = $io->إنشاء جدول();
        $able-> ضبطHeaderTitle("مثال جدول التحديد التفاعلي");
        $able->ضبط الصفوف(iterator_to_array($This->tagsTableRows()));
        $able->تجديد();
        $io->newLine();

        إرجاع الأمر::نجاح;
    } 

​
في المثال أعلاه نستفيد من مولدات PHP كمصدر للبيانات - مما يساعد في قابلية التوسع في المستقبل. مولد بيانات بسيط للمثال أعلاه:

    الدالة المحمية TagsTableRows(): مولد
    {
        $apiTapiTapiTagsResponse = $apiTapiTagsResponse = $apiTapiTagsResponse = $abiTapiTagsResponse->someInjectedService->getTags();
        قبل كل ($apiTapiTapiTagsResponse ك $apiTapiTagResponse) {
            ينتج عنه [ $apiTapiTagTagResponse->getName()، $apiTapiTagTagResponse->getId() ];
        }
    }

والنتيجة النهائية هي جدول يتم تقديمه في CLI.
​
الصورة
​

لجعلها تفاعلية نحتاج إلى استخدام QuestionHelper، الذي تم توفيره كغلاف حول سيمفوني ستايل الإخراج.

  (...)
    $choice = جديد ChoiceQuestion(
        السؤال: 'أي اختيار تختار؟
        الاختيارات: array_reduce(
            array: $rows,
            رد الاستدعاء: دالة($carry, $item) {
                $carry[] = $item[0];

                إرجاع $carry;
            }
        )
    );
    $answer = $io-> اسأل سؤالاً($choice);
   (...)

ونتيجة لذلك، نحصل على حقل اختيار تفاعلي مع عرض جدول من نفس المصدر.
​

استخدم دائماً المطالبة المخفية لبيانات المستخدم الحساسة

​
الصورة
​

إخفاء المطالبة مع توفير بيانات حساسة هو ممارسة شائعة ويمكن تحقيقها بسهولة في سيمفوني وحدة التحكم.
يمكنك استخدام الغلاف المدمج في سيمفوني ستايل من خلال المثال التالي:

  (...)
    الدالة المحمية execute(InputInterface $input، OutputInterface $output): int
    {
        $io = جديد SymfonyStyle($input, $output);
        $io-> عنوان("طلب بيانات حساسة من المستخدم");
        $io->طلب المخفي(
            سؤال: "أدخل مفتاح API الخاص بك هنا",
            أداة التحقق: دالة($answer) { إرجاع (42 = = strlen($answer))؟ $answer؛ } }
        );

        إرجاع الأمر::نجاح;
    }

تصميم أشرطة التقدم الخاصة بك

​
الصورة
​

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

(...)
 الدالة المحمية execute(InputInterface $input, OutputInterface $output): int
 {
 $io = جديد SymfonyStyle($input, $output);
 $io->title("مثال على شريط التقدم المصمم");

 $progressBar = شريط تقدم جديد($io, 10000);
 $P65TprogressBar-> ضبط التنسيق('%current%/%TTP64Tmax% [r%] %percent:3s%%
 
 $P65TprogressBar->بدء();
 بالنسبة إلى ($i = 0؛ $i advance();
 usleep(420);
 }

 $P65TprogressBar-> إنهاء();
 $io->newLine();

 إرجاع الأمر::نجاح;
 }

يمكنك استخدام أي شيء تقريبًا كمنسّق طالما أن جهازك الطرفي قادر على عرضه. رسمي سيمفوني الوثائق
​

تقديم اقتراحات لأوامر وحدة التحكم الخاصة بك

​
الصورة
​

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

(...)
    العامة الدالة العامة إكمال(CompletionInput $input، CompletionSuggestions $suggestions): باطل
    {
        إذا كان ($input->mustSuggestSuggestArgumentValuesFor(argumentName: 'someArgument')) {
            $P62Tsuggestions->suggestValues(['someSuggestion', 'otherSuggestion']);
        }
    }

اطبع في أي مكان تريد

​
سيمفوني 5.1 طريقة جديدة للتعامل مع موضع المؤشر في تطبيقات CLI. فمنذ ذلك الحين، أصبح من الممكن القراءة والكتابة في مكان محدد على الشاشة باستخدام المؤشر الفصل:

(...)
    protected function execute(InputInterface $input, OutputInterface $output): int
    {
        $io = new SymfonyStyle($input, $output);
        $io->title("Cursor example");
​
        $cursor = new Cursor($io);
        $cursor->clearScreen();
        for ($x = 0; $x <= 10; $x++) {
            for ($y = 0; $y <= 10; $y++) {
                $cursor->moveToPosition($x, $y);
​
                if ($y === $x) {
                    $io->write(".");
                }
            }
        }
        $io->write("Hello, World!");
        $io->newLine();
​
        return Command::SUCCESS;
    }

الصورة
هذه القائمة القصيرة من الحيل ليست سوى غيض من فيض. إمكانيات وحدة تحكم سيمفوني لا حصر لها، كما يتضح من المشاريع العديدة مثل Psalm أو PHPStan أو Composer التي تعتمد على PHP ويستخدمها الملايين من مطورو PHP في جميع أنحاء العالم.

راية التعاون

مقالات ذات صلة

تطوير البرمجيات

سببان يمنعانك من استخدام PHP

بصفتي مطور PHP، ما زلت أتذكر أيام PHP4، وأول تطبيق GC (اختياري!) في PHP5، وعشتُ _ضجة_ ظهور PHP7 و...

The Codest
سيباستيان لوكزاك PHP قائد وحدة PHP
تطوير البرمجيات

توظيف مطورين داخليين مقابل مطورين خارجيين

التوظيف داخلياً أم خارجياً؟ إنها معضلة كبيرة! اكتشف مزايا outsourcing أو بناء فريق داخلي في المقالة التالية.

The Codest
غريغورز روزموس قائد وحدة جافا

اشترك في قاعدة معارفنا وابقَ على اطلاع على آخر المستجدات في قطاع تكنولوجيا المعلومات.

    نبذة عنا

    The Codest - شركة دولية لتطوير البرمجيات لها مراكز تقنية في بولندا.

    المملكة المتحدة - المقر الرئيسي

    • المكتب 303 ب، 182-184 شارع هاي ستريت نورث E6 2JA
      لندن، إنجلترا

    بولندا - مراكز التكنولوجيا المحلية

    • مجمع مكاتب فابريتشنا المكتبي، أليجا
      بوكوجو 18، 31-564 كراكوف
    • سفارة الأدمغة، كونستروكتورسكا
      11, 02-673 02-673 وارسو، بولندا

      The Codest

    • الصفحة الرئيسية
    • نبذة عنا
    • الخدمات
    • دراسات الحالة
    • اعرف كيف
    • الوظائف
    • القاموس

      الخدمات

    • استشاري
    • تطوير البرمجيات
    • تطوير الواجهة الخلفية
    • تطوير الواجهة الأمامية
    • Staff Augmentation
    • مطورو الواجهة الخلفية
    • مهندسو السحابة
    • مهندسو البيانات
    • أخرى
    • مهندسو ضمان الجودة

      الموارد

    • حقائق وأساطير حول التعاون مع شريك خارجي لتطوير البرمجيات
    • من الولايات المتحدة الأمريكية إلى أوروبا: لماذا تقرر الشركات الأمريكية الناشئة الانتقال إلى أوروبا؟
    • مقارنة مراكز تطوير التكنولوجيا في الخارج: تك أوفشور أوروبا (بولندا)، آسيان (الفلبين)، أوراسيا (تركيا)
    • ما هي أهم التحديات التي تواجه CTOs ومديري تكنولوجيا المعلومات؟
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • شروط استخدام الموقع الإلكتروني

    جميع الحقوق محفوظة © 2025 بواسطة The Codest. جميع الحقوق محفوظة.

    arArabic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek arArabic