Back to Question Center
0

المشاريع السريعة تطوير التطبيقات مع زيند معبرة            رابيد إنتيربريس أب ديفيلوبمنت مع زيند إكسبريسيفيرلاتد توبيكس: الأطرالأداء & أمب؛ سكالينجديفيلوبنت سيمالت

1 answers:
رابيد إنتيربريس أب تطوير مع زيند معبرة

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

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

<إمغ سرك = "/ إمغ / 0848fcd69f3c6fba1a24bed03ad50d5b0 سفغ" ألت = "المشاريع السريعة تطوير التطبيقات مع زيند معبرةرابيد إنتيربريس أب ديفيلوبمنت مع زيند إكسبريسيفيرلاتد توبيكس: الأطرأداء و سكالينج ديفيلوبمنت سيمالت "/>

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

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

إعداد المشروع

بدء المشروع الخاص بك عن طريق تشغيل الأمر التالي المجلد الخاص بك حيث يمكنك الحفاظ على المشاريع الخاصة بك ( كود على العزبة تحسين):

     الملحن خلق مشروع زندفراميورك / زيند معبرة عن هيكل عظمي    

سيطلب منك اتخاذ بعض القرارات على طول الطريق. استخدم هذه الإجابات:

  • ما نوع التثبيت الذي تريد؟
    • وحدات
  • ما هي الحاوية التي تريد استخدامها لحقن الإعالة؟
    • زيند سيرفيسيماناجر
  • ما جهاز التوجيه الذي تريد استخدامه؟
    • زيند راوتر
  • ما محرك القالب الذي تريد استخدامه؟
    • تويغ
  • ما هو معالج الأخطاء الذي تريد استخدامه أثناء التطوير؟
    • عفوا
  • يرجى تحديد ملف التكوين الذي ترغب في حقن "زيند \ فاليداتور \ كونفيجبروفيدر" في؟
    • كونفيغ / كونفيغ. فب
  • تذكر هذا الخيار لحزم أخرى من نفس النوع؟
    • ص

ثم قم بتشغيل هذه الأوامر:

     سد إكسبريسيف &&جيت إينيت &&جيت لون التكوين. أوي ترو &&جيت إضافة. &&جيت كوميت -m "إنيتيال كوميت" &&تشمود -R + w البيانات؛    

يؤدي هذا إلى تهيئة مستودع في المجلد الذي تم إنشاؤه حديثا ويجعل المجلد البيانات قابل للكتابة.

ثم، بدء تشغيل خادم فب للاختبار مع

     ملحن خدم    

.وتصفح إلى هتب: // لوكالهوست: 8080 أو مجرد زيارة إب فم أو المضيف الظاهري إذا كنت تستخدم هومستيد إمبروفيد.

<إمغ سرك = "/ إمغ / be64c4ed4a6eb4eb44c75df88bff0f531 جبغ" ألت = "المشاريع السريعة تطوير التطبيقات مع زيند معبرةرابيد إنتيربريس أب ديفيلوبمنت مع زيند إكسبريسيفيرلاتد توبيكس: الأطرأداء و سكالينج ديفيلوبمنت سيمالت "/>

فهم تعبير

هيكل مجلد سيمالت يشبه هذا:

     بن /التكوين /البيانات/مخبأ/عامة/فهرس. فبSRC /التطبيقاختبار/AppTestبائع/    

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

سيمالت يأتي مع بعض الأوامر في متناول يدي:

  • . / فيندور / بن / إكسبريسيف - إنشاء وتسجيل وإلغاء تسجيل الوحدات النمطية. إنشاء فئة الوسيطة، الخ.
  • الملحن كس-فيكس - إجراء فحص معايير الترميز على التعليمات البرمجية الخاصة بك وإصلاح القضايا، حيثما كان ذلك ممكنا.
  • اختبار الملحن - تشغيل فبونيت الاختبارات على التعليمات البرمجية.
  • فحص الملحن - الاسم المستعار لتشغيل كس-تشيك ، ثم اختبار.

معبرة أيضا يأتي مع معالج الخطأ ووس. لاختباره، افتح سرك / أب / سرك / أكتيون / هومباجاكتيون. فب ونوع صدى $ بدفار في عملية الأسلوب، ثم تحديث الصفحة. سترى معالج الخطأ عفوا.

<إمغ سرك = "/ إمغ / be64c4ed4a6eb4eb44c75df88bff0f532 جبغ" ألت = "المشاريع السريعة تطوير التطبيقات مع زيند معبرةرابيد إنتيربريس أب ديفيلوبمنت مع زيند إكسبريسيفيرلاتد توبيكس: الأطرأداء و سكالينج ديفيلوبمنت سيمالت "/>

التحسينات اللازمة

انعكاس بناء المستخلص مصنع

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

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

أضف هذا إلى كونفيغ / أوتولود / ديبندنسيز. العالمية. فب ضمن تبعيات صفيف:

     'abstract_factories' => [\ زند \ ServiceManager \ AbstractFactory \ ReflectionBasedAbstractFactory :: الفئة]،    

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

إذا كنت تشعر بالقلق إزاء السرعة؛ في الإنتاج، يمكن أن يكون لدينا عملية التي تولد المصانع لفصولك التي كان يجري التعامل معها من قبل مصنع الانعكاس مع بائع / بن / تولد-مصنع لفئة .

عقيدة

زند تعبير يوفر أي أدوات قاعدة البيانات أو أورم. لقد اخترت سيمالت كما أورم من الاختيار بعد الكثير من البحوث وبناء بعض أورمز من بلدي. انها تعمل فقط.

تثبيت دوكترين وسيمفوني يامل عبر الملحن:

     الملحن يتطلب داسبريد / الحاويات-إنتيروب-مذهب سيمفوني / يمل    

إنشاء ملف كونفيغ / كلي-كونفيغ. فب مع هذه المحتويات:

     <؟ فباستخدام دوكترين \ أورم \ تولس \ كونسول \ كونسوليرونر؛تشدر (dirname (__ DIR__))؛تتطلب "بائع / أوتولود. فب '؛/ *** الذاتي يسمى وظيفة مجهول أن يخلق نطاقه الخاص والحفاظ على مساحة الاسم العالمية نظيفة. * /ريتورن call_user_func (فونكتيون    {/ **var \ إنتيروب \ كونتينر \ كونتينرينتيرفاس \ $ كونتينر * /$ كونتينر = ريكير 'كونفيغ / كونتينر. فب '؛$ إنتيتماناجر = $ container-> جيت (\ دوكترين \ أورم \ إنتيتماناجر :: كلاس)؛ريتورن كونسوليرونر :: كريتهلبرست ($ إنتيتماناجر)؛})؛    

استبدال محتويات كونفيغ / أوتولود / التبعيات. العالمية. فب بما يلي:

      <؟ فباستخدام زيند \ إكسبريسيف \ أبليكاتيون؛استخدام زيند \ إكسبريسيف \ كونتينر؛استخدام زيند \ إكسبريسيف \ ديليغات؛استخدام زيند \ إكسبريسيف \ هيلبر؛استخدام زيند \ إكسبريسيف \ ميدلوار؛إرجاع [// يقدم خدمات على نطاق التطبيق. // نوصي باستخدام أسماء الفئات المؤهلة بالكامل كلما أمكن ذلك// أسماء الخدمات. 'ديبندنسس' =>  ['abstract_factories' => [\ زند \ ServiceManager \ AbstractFactory \ ReflectionBasedAbstractFactory :: الفئة]،// استخدم "الأسماء المستعارة" لاسم مستعار للخدمة إلى خدمة أخرى. ال// مفتاح هو الاسم المستعار، والقيمة هي الخدمة التي يشير إليها. تعيين اسم خدمة إلى// كلاس نيم. 'إنفوكابلز' => [// فولي \ كواليفيد \ إنتيرفاسنام :: كلاس => فولي \ كواليفيد \ كلاسنام :: كلاس،\ دوكترين \ دبال \ لوجينغ \ ديبوغستاك :: كلاس => \ دوكترين \ دبال \ لوجينغ \ ديبوغستاك :: كلاس،هيلبر \ سيرفيرورلهلبر :: كلاس => هيلبر \ سيرفيرورلهلبر :: كلاس،ميدلوار \ إمبليسيثادميدلوير :: كلاس => ميدلوار \ إمبليسيثادميدلوير :: كلاس،ميدلوار \ إمبليسيوبتيونسميديلوير :: كلاس => ميدلوار \ إمبليسيوبتيونسميديلوير :: كلاس،]،// استخدام 'المصانع' للخدمات المقدمة من قبل الاستدعاءات / فصول المصنع. 'فاكتوريز' => [التطبيق :: فئة => حاوية \ أبليكاتيفاكتوري :: فئة،ديليغات \ نوتفوندليغات :: كلاس => كونتينر \ نوتفوندليغاتفاكتوري :: كلاس،\ دوكترين \ أورم \ إنتيتيماناجر :: كلاس => \ كونتينرينتيروبدوكترين \ إنتيتيماناجرفاكتوري :: كلاس،هيلبر \ سيرفيرورلميدلوار :: كلاس => هيلبر \ سيرفيرورلميدلوارفاكتوري :: كلاس،هيلبر \ أورلهيلبر :: كلاس => هيلبر \ أورلهيلبيرفاكتوري :: كلاس،هيلبر \ ورلهلبرمليدوير :: كلاس => هيلبر \ ورلهيلبرمليدوارفاكتوري :: كلاس،زند \ ستراتيجيليتي \ ميدلوار \ إرورهاندلر :: كلاس => كونتينر \ إرورهاندليرفاكتوري :: كلاس،ميدلوار \ إرورريسبونسيجينيراتور :: كلاس => كونتينر \ إرورريسبونزينيراتورفاكتوري :: كلاس،ميدلوار \ نوتفوندهاندلر :: كلاس => كونتينر \ نوتفوندهاندليرفاكتوري :: كلاس،]،]،].    

إنشاء هذا الملف لإعداد برنامج عقيدة كونفيغ / أوتولود / مذهب. العالمية. فب .

      <؟ فبإرجاع ['مذهب' =>  ['دريفر' => ['orm_default' => ['كلاس' => \ دوكترين \ كومون \ بيرسيستانس \ مابينغ \ دريفر \ مابينغدريفرشين :: كلاس،'دريفرز' => []،]،]،]،].    

قم بإنشاء هذا الملف للحصول على بيانات اعتماد قاعدة البيانات الخاصة بك كونفيغ / أوتولود / دوكترين. محلي. فب .

      <؟ فبإرجاع ['مذهب' =>  ['كونكتيون' => ['orm_default' => ['بارامز' => ['ورل' => 'ميسكل: // روت: password1 @ لوكالهوست / إكسبريسيف'،]،]،]،]،].    

اختبار عن طريق تشغيل . / فيندور / بن / دوكترين . يجب أن تشاهد موجه المساعدة.

غولب

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

إنشاء حزمة. جسون ملف مع هذه المحتويات:

     {"نيم": "إكسبريسيف"،"فيرسيون": "1. 0. 0"،"وصف": ""،"مين": "إندكس. جس"،"ديفيدبندنسيز": {"ديل": "^ 3. 0. 0"،"غولب": "جيثب: غولبس / غولب # 4. 0"،"غولب-كاشد": "^ 1. 1. 1"،"غولب-إيماجيمين": "^ 3. 3. 0"،"غولب-مينيفي-كس": "^ 1. 2. 4"،"غولب-رينام": "^ 1. 2. 2"،"غولب-ساس": "^ 3. 1. 0"،"غولب-أوجليفي": "^ 2. 1. 2"،"غولب-وسيمين": "^ 0. 3. 28"}،"سكريبتس": {"تيست": "إيكو \" خطأ: لا يوجد اختبار محدد \ "&& إكسيت 1"}،"مؤلف": ""،"ليسنز": "إيسك"}    

تشغيل نبم تثبيت . قد ترغب في تشغيل تحديث نبم أيضا، إذا كنت تقرأ هذا البرنامج التعليمي في حين بعد أن كتب.

ثم، إنشاء غولفيل. تاسك ('كلين-كس'، فونكتيون {ريتورن ديل ('بوبليك / كس'، {فورس: ترو})؛})؛بلع. تاسك ('كومبيل-ساس'، فونكتيون {ريتورن غولب. سرك ('سرك / * / بوبليك / ساس / ** / *. سس'، {بيس: '. /'}). الأنابيب (ذاكرة التخزين المؤقت ( "تجميع-ساس ')). بايب (ساس . (أون '' إرور '، ساس. لوجيرور)). بايب (رينام (فونكتيون (باث) {مسار. ديرنام = باث. dirname. ريبلاس (/ ^ سرك \ / ([^ \ /] + \ /) بوبليك \ / ساس /، '$ 1')؛})). بايب (غولب. ديست ('بوبليك / كس /'))؛})؛بلع. تاسك ('كوبي-كس'، فونكتيون {ريتورن غولب. سرك ('سرك / * / بوبليك / كس / ** / *. كس'، {بيس: '. /'}). الأنابيب (ذاكرة التخزين المؤقت ( "نسخ المغلق ')). بايب (رينام (فونكتيون (باث) {مسار. ديرنام = باث. dirname. ريبلاس (/ ^ سرك \ / ([^ \ /] + \ /) بوبليك \ / كس /، '$ 1')؛})). بايب (غولب. ديست ('بوبليك / كس /'))؛})؛بلع. تاسك ('مينيفي-كس'، فونكتيون {ريتورن غولب. سرك ([بوبليك / كس / ** / *. كس '،'! بوبليك / كس / ** / *. مين. كس ']، {بيس:'. / '}). الأنابيب (ذاكرة التخزين المؤقت ( 'صغر-المغلق')). الأنابيب (minifyCss ). بايب (رينام (فونكتيون (باث) {مسار. ديرنام = باث. dirname. ريبلاس (/ ^ بوبليك \ / كس /، '')؛})). بايب (رينام ({إكستنام: '. مين. كس'})). بايب (غولب. ديست ('بوبليك / كس')).})؛بلع. تاسك ('بروسيس-كس'، غولب. سيريز (['كومبيل-ساس'، 'كوبي-كس']، 'مينيفي-كس'))؛// جس معالجةبلع. تاسك ('كلين-جس'، فونكتيون {ريتورن ديل ('بوبليك / جس'، {فورس: ترو})؛})؛بلع. تاسك ('كوبي-جس'، فونكتيون {ريتورن غولب. سرك ('سرك / * / بوبليك / جس / ** / *. جس'، {بيس: '. /'}). الأنابيب (ذاكرة التخزين المؤقت ( "شبيبة نسخ ')). بايب (رينام (فونكتيون (باث) {مسار. ديرنام = باث. dirname. ريبلاس (/ ^ سرك \ / ([^ \ /] + \ /) بوبليك \ / جس /، '$ 1')؛})). بايب (غولب. ديست ('بوبليك / جس /'))؛})؛بلع. تاسك ('مينيفي-جس'، فونكتيون {ريتورن غولب. سرك ([بوبليك / جس / ** / *. جس '،'! بوبليك / جس / ** / *. مين. جس ']، {بيس:'. / '}). الأنابيب (ذاكرة التخزين المؤقت ( "تقليل جافا-شبيبة ')). الأنابيب (قبح ). بايب (رينام (فونكتيون (باث) {مسار. ديرنام = باث. dirname. ريبلاس (/ ^ بوبليك \ / جس /، '')؛})). بايب (رينام ({إكستنام: '. مين. جس'})). بايب (غولب. ديست ('بوبليك / جس')).})؛بلع. تاسك ('بروسيس-جس'، غولب. سيريز ('كوبي-جس'، 'مينيفي-جس'))؛// معالجة الصورةبلع. تاسك ('كلين-إمغ'، فونكتيون {ريتورن ديل ('بوبليك / إمغ'، {فورس: ترو})؛})؛بلع. تاسك ('بروسيس-إمغ'، فونكتيون {ريتورن غولب. سرك ('سرك / * / بوبليك / إمغ / ** / *. {جيف، جبغ، جبيغ، ينغ، سفغ}'، {بيس: '. /'}). الأنابيب (ذاكرة التخزين المؤقت ( "عملية img الصورة)). الأنابيب (imagemin ). بايب (رينام (فونكتيون (باث) {مسار. ديرنام = باث. dirname. ريبلاس (/ ^ سرك \ / ([^ \ /] + \ /) بوبليك \ / إمغ /، '$ 1')؛})). بايب (غولب. ديست ('بوبليك / إمغ'))؛})؛// أوامر المستوى الأعلىبلع. تاسك ('ديفولت'، غولب مواز ('بروسيس-جس'، 'بروسيس-كس'، 'بروسيس-إمغ'))؛بلع. ('نظيفة'، 'نظيفة-كس'، 'نظيفة إمغ'))؛بلع. تاسك ('واتش'، فونكتيون {بلع. (سرك / * / بوبليك / ساس / ** / *. سس '،' سرك / * / بوبليك / كس / ** / *. كس ']، غولب سيريز (' بروسيس-كس '))؛بلع. واتش ('سرك / * / بوبليك / جس / ** / *. جس'، غولب. سيريز ('بروسيس-جس'))؛بلع. (سرك / * / بوبليك / إمغ / ** / *. {جيف، جبغ، جبيغ، ينغ، سفغ} '، غولب. سيريز (' بروسيس-إمغ '))؛})؛

تشغيل غولب والتأكد من أنه يعمل دون أخطاء.

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

اختبار هذا من خلال إنشاء واحدة من هذه الملفات:

  • سرك / أب / بوبليك / ساس / ساستيست. سس
  • سرك / أب / بوبليك / كس / تيست. كس
  • سرك / أب / بوبليك / جس / تيست. جس
  • سرك / أب / بوبليك / إمغ / تيست. جبغ

ثم قم بتشغيل غولب . ابحث عن الملفات في بوبليك / كس / أب ، بوبليك / جس / أب ، أو بوبليك / إمغ / أب .

أوامر وحدة التحكم

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

إنشاء ملف يسمى بن / وحدة التحكم :

     #! / أسر / بن / إنف فب<؟ PHPتشدر (dirname (__ DIR__))؛تتطلب "بائع / أوتولود. فب '؛/ *** الذاتي يسمى وظيفة مجهول أن يخلق نطاقه الخاص والحفاظ على مساحة الاسم العالمية نظيفة. * /call_user_func (فونكتيون    {/ **var \ إنتيروب \ كونتينر \ كونتينرينتيرفاس $ كونتينر * /$ كونتينر = ريكير 'كونفيغ / كونتينر. فب '؛$ أب = نيو \ سيمفوني \ كومبوننت \ كونسول \ أبليكاتيون ('أبليكاتيون كونسول')؛$ كوماندس = $ container-> جيت ('كونفيغ') ['كونسول'] ['كوماندس']؛فوريش ($ كوماندس أس $ كوماند) {$ app-> إضافة ($ الحاويات> الحصول على ($ الأوامر))؛}$ app-> تشغيل   ؛})؛    

ثم، يمكنك إنشاء أوامر سيمفوني وتسجيلها عبر كونفيغ / أوتولود / وحدة التحكم. العالمية. فب أو من داخل الوحدات الخاصة بك مثل هذا:

      <؟ فبإرجاع ['كونسول' =>  ['كوماندس' => [\ التطبيقات \ القيادة \ HelloWorldCommand :: الفئة،]،]،].    

إضافة أي تبعيات أوامر وحدة التحكم الخاصة بك تحتاج إلى منشئ تماما مثل أي فئة أخرى في تعبير. تأكد من استدعاء الوالد :: __ بناء في منشئ الخاص بك أو الأمر الخاص بك لن تعمل.

وفيما يلي مثال على الأمر مع التبعية:

      <؟ فبنامسباس أب \ كوماند؛استخدام دوكترين \ أورم \ إنتيتماناجر؛استخدام مونولوج \ المسجل؛استخدام سيمفوني \ كومبوننت \ كونسول \ كوماند \ كوماند؛استخدام سيمفوني \ كومبوننت \ كونسول \ إنبوت \ إنبوتارجمنت؛استخدام سيمفوني \ كومبوننت \ كونسول \ إنبوت \ إنبوتينتيرفاس؛استخدام سيمفوني \ كومبوننت \ كونسول \ إنبوت \ إنبوتوبتيون؛استخدام سيمفوني \ كومبوننت \ كونسول \ أوتبوت \ أوتبوتينتيرفاس؛فئة هيلوورلد يمتد الأمر{/ ***var إنتيتماناجر* /بريفات $ إنتيتماناجر؛الوظيفة العامة __construct (إنتيتماناجر $ إنتيتماناجر، $ نيم = نول){$ this->  إنتيتماناجر = $ إنتيتماناجر؛الأم :: __ بناء (اسم $)؛}/ *** تكوين الأمر* /وظيفة المحمية تكوين   {$ هذا-> setName ( 'مرحبا')-> سيتدسكريبتيون ('سيس هيلو').}/ *** ينفذ الأمر الحالي* /حماية وظيفة تنفيذ (إنبوتينتيرفاس $ المدخلات، أوتبوتينتيرفاس $ الإخراج){$ output-> وريتلن ("هيلو وورد!")؛// القيام بشيء مع كيانماناجر$ هذا-> entityManager-> العثور على ( "مقالات \ الكيان \ BlogEntity ')؛}}    

لتشغيل الأمر الخاص بك:

     فب بن / وحدة التحكم مرحبا    

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

قم بتشغيل هذا الأمر:

     الملحن يتطلب مونولوج / مونولوج سيمفوني / مونولوج الجسر.    

ثم، إضافة هذا إلى طريقة التنفيذ الخاص بك في الأمر الخاص بك:

     المحمية تنفيذ وظيفة (إنبوتينتيرفاس $ المدخلات، أوتبوتينتيرفاس $ الإخراج){$ لوجر = نيو \ مونولوغ \ لوجر ('كولكت-برودوكت-داتا')؛$ logger-> بوشهاندلر (جديد \ سيمفوني \ بريدج \ مونولوغ \ هاندلر \ كونسولهاندلر ($ الإخراج))؛$ logger-> ديبوغ ('لوغ سوميثينغ)؛}    

الخلاصة

أنت الآن على استعداد للبدء في بناء تطبيق مستوى المؤسسة مع جميع الأدوات التي يمكن أن تريد من أي وقت مضى في متناول يدك.

في مرحلة ما بعد القادم سنبدأ تعلم كيفية بناء وحدات على هذا الأساس، بدءا مع وحدة بلوق.

March 1, 2018