Back to Question Center
0

জেন্ড এক্সপ্রেশন সহ দ্রুত এন্টারপ্রাইজ অ্যাপ্লিকেশন ডেভেলপমেন্ট            জেন্ড এক্সপ্রেসওয়েলের সাথে র্যাপিড এন্টারপ্রাইজ অ্যাপ ডেভেলপমেন্ট: ফ্রেমওয়ার্কস পারফর্ম্যান্স & স্কিলিং উন্নয়ন সমলয়

1 answers:
জেন্ড এক্সপ্রেসিকে র্যাপিড এন্টারপ্রাইজ অ্যাপ্লিকেশন ডেভেলপমেন্ট

আপনি যদি কখনও একটি Zend সেমিট দ্রুত শুরু করেছি, আপনি সম্ভবত Zend Semalt কাজ না করেছি। দ্রুত শুরু ঐতিহাসিক কিছু কিন্তু দ্রুত হয়েছে, এবং সুদ হারান এবং পরবর্তী জিনিস উপর সরানো সহজ।

জেন্ড এক্সপেরিভটি এই অভিজ্ঞতার উপর ব্যাপকভাবে জোর দেয় যা উইজার্ড চালিত কম্পোজার তৈরি-প্রকল্প কমান্ড। যাইহোক, এটি এখনও সেট আপ করতে ভয়ঙ্কর হতে পারে কারণ সামনে আপ করতে অনেক অপশন আছে। এই টিউটোরিয়াল আপনাকে দ্রুত পরিকল্পনা জন্য আমার প্রস্তাবিত সেটআপ মাধ্যমে গাইড করে যা
একটি এন্টারপ্রাইজ স্তর উত্পাদন, শক্তসমর্থ আবেদন

জেন্ড এক্সপ্রেশন সহ দ্রুত এন্টারপ্রাইজ অ্যাপ্লিকেশন ডেভেলপমেন্টজেন্ড এক্সপ্রেসওয়েলের সাথে র্যাপিড এন্টারপ্রাইজ অ্যাপ ডেভেলপমেন্ট:
ফ্রেমওয়ার্কস পারফর্ম্যান্স এবং স্কেলিং ডেভেলপমেন্ট সেমিট

এই টিউটোরিয়ালটি আপনার পরিবেশ স্থাপনের বিষয়ে নয়, তাই আমি অনুমান করতে যাচ্ছি যে আপনার হোম ওয়াইট্ডের মতো ভালো পরিবেশ রয়েছে।

আপনি যদি মিমোল্ট বা বিচ্ছিন্ন ভার্চুয়াল পরিবেশের সাথে পরিচিত না হন, তবে এখানে আমাদের দোকানের উপলব্ধ ধারণার মাধ্যমে আপনাকে গাইড করার জন্য আমাদের একটি চমৎকার বই পেয়েছি।

প্রকল্প সেটআপ

নিম্নোক্ত কমান্ডটি অনুসরণ করে আপনার প্রকল্পটি শুরু করুন যেখানে আপনি আপনার প্রকল্পগুলি রাখেন সেই ফোল্ডারটি ( হোমস্টেডে কোড ):

     কম্পোজার তৈরি-প্রকল্প zendframework / zend-expressive- কঙ্কাল অভিব্যক্তিগত    

আপনাকে পথের মধ্যে কয়েকটি সিদ্ধান্ত নিতে অনুরোধ করা হবে। এই উত্তর ব্যবহার করুন:

  • আপনি কি ধরনের ইনস্টলেশন চান?
    • মডুলার
  • নির্ভরতা ইনজেকশন জন্য কোন ধারক আপনি ব্যবহার করতে চান?
    • জেন্ড সার্ভিস ম্যানেজার
  • আপনি কোন রাউটার ব্যবহার করতে চান?
    • জেন্ড রাউটার
  • কোন টেমপ্লেট ইঞ্জিন আপনি ব্যবহার করতে চান?
    • টুইগ
  • ডেভেলপমেন্টের সময় কোন ত্রুটি হ্যান্ডলার ব্যবহার করতে চান?
    • ওওফ
  • দয়া করে কোন কনফিগ ফাইল নির্বাচন করুন যা আপনি 'Zend' ভ্যালিডেটর \ কনফিগপ্রাইভারকে ইনজেক্ট করতে চান?
    • config / config। php
  • একই ধরণের অন্য প্যাকেজগুলির জন্য এই বিকল্পটি মনে রাখবেন?
    • y

তারপর, এই কমান্ডগুলি চালান:

     সিডি অভিব্যক্তি &&git init &&জিআইটি কনফিগ রং ui সত্য &&git যোগ করুন &&git commit -m "প্রাথমিক কমিটি" &&chmod -R + w তথ্য;    

এই নতুন তৈরি ফোল্ডারে একটি সংগ্রহস্থল শুরু করে এবং তথ্য ফোল্ডার লিখনযোগ্য করে তোলে।

তারপর, পরীক্ষার জন্য একটি php সার্ভার শুরু

     সুরকার পরিবেশন করা    

.এবং http: // localhost: 8080 এ ব্রাউজ করুন অথবা যদি আপনি হোমস্টেড উন্নত ব্যবহার করেন তবে শুধু ভিএম এর আইপি বা ভার্চুয়াল হোস্টে যান।

জেন্ড এক্সপ্রেশন সহ দ্রুত এন্টারপ্রাইজ অ্যাপ্লিকেশন ডেভেলপমেন্টজেন্ড এক্সপ্রেসওয়েলের সাথে র্যাপিড এন্টারপ্রাইজ অ্যাপ ডেভেলপমেন্ট:
ফ্রেমওয়ার্কস পারফর্ম্যান্স এবং স্কেলিং ডেভেলপমেন্ট সেমিট

এক্সপ্রেসিকে বোঝা

মিমাংসা ফোল্ডার কাঠামো এই মত দেখতে:

     বিন /কনফিগ /ডেটা /ক্যাশে /সর্বজনীন /সূচি। পিএইচপিsrc /অ্যাপপরীক্ষা /AppTestবিক্রেতা /    

এর অধিকাংশই স্ব-ব্যাখ্যামূলক। এক্সপ্রেসিকে একটি অ্যাপ ডিফল্ট মডিউল প্রদান করে। আপনি এখানে আপনার সমস্ত কোড রাখতে পারেন, অথবা আপনি বড় বৈশিষ্ট্যগুলি নির্মাণ করে আলাদা মডিউলগুলি তৈরি করুন।

মিষ্টি কিছু সহজ আদেশ আসে:

  • । / বিক্রেতা / বিন / প্রকাশক - মডিউলগুলি তৈরি করুন, নিবন্ধন করুন এবং নিবন্ধন করুন একটি মধ্যম শ্রেণীর তৈরি, ইত্যাদি.
  • সুরকার সিএস-ফিক্স - কোড কোডিং মানগুলি আপনার কোডটি পরীক্ষা করে দেখুন এবং যেখানে সমস্যাগুলি সমাধান করুন।
  • সুরকার - আপনার কোডে PHPUnit পরীক্ষা চালান।
  • সুরকার - চলমান জন্য alias সিএস-চেক , তারপর পরীক্ষা।

এক্সপ্রেসওয়েও ওপস ত্রুটি হ্যান্ডলার সঙ্গে আসে। এটি পরীক্ষা করতে, খোলা src / অ্যাপ্লিকেশন / src / ক্রিয়া / হোম পেজ এ্যাকশন। php এবং টাইপ echo $ badVar প্রসেস পদ্ধতিতে, তারপর পৃষ্ঠাটি রিফ্রেশ করুন। আপনি ওওফস হ্যান্ডলার দেখতে পাবেন।

জেন্ড এক্সপ্রেশন সহ দ্রুত এন্টারপ্রাইজ অ্যাপ্লিকেশন ডেভেলপমেন্টজেন্ড এক্সপ্রেসওয়েলের সাথে র্যাপিড এন্টারপ্রাইজ অ্যাপ ডেভেলপমেন্ট:
ফ্রেমওয়ার্কস পারফর্ম্যান্স এবং স্কেলিং ডেভেলপমেন্ট সেমিট

প্রয়োজনীয় উন্নতি

প্রতিফলন ভিত্তিক আবরক ফ্যাক্টরি

জেন্ড এক্সপ্রেসভটি নির্ভরতা মিমল্টের জন্য জেন্ড সার্ভিস ম্যানেজার ব্যবহার করে। ডিফল্ট সেটআপে, আপনাকে কনফিগারেশন যোগ করতে হবে এবং সম্ভাব্য প্রতিটি লেখার জন্য একটি ফ্যাক্টরি শ্রেণী তৈরি করতে হবে। এই দুবার সম্পর্কে এটি করার পরে বোঝা বোধ।

এটি এড়ানোর জন্য, আমরা জেড মিমোল্টের সাথে প্রদত্ত প্রতিফলন ভিত্তিক বিমূর্ত কারখানাটি সক্ষম করবো।

এই যুক্ত করুন config / autoload / নির্ভরতা। গ্লোবাল। নির্ভরতা মধ্যে php অ্যারে:

     'abstract_factories' => [\ পার্সি-জাতির প্রাচীন শাস্ত্রগ্রন্থ \ ServiceManager \ AbstractFactory \ ReflectionBasedAbstractFactory :: শ্রেণী],    

এখন, যখনই আপনি একটি ক্লাসে কাজ করছেন এবং একটি নির্ভরশীলতা প্রয়োজন, আপনার কন্সট্রাকটরে এটি যোগ করুন। প্রতিফলন বিমূর্ত কারখানা আপনার বর্গ কি প্রয়োজন এবং স্বয়ংক্রিয়ভাবে পরিষেবা ধারক থেকে এটি দখল দেখতে হবে। আপনি কেবলমাত্র ব্যতিক্রমী কন্টেইনার দ্বারা প্রদত্ত ডিফল্ট পরিষেবা থেকে আলাদা কিছু প্রয়োজন যেখানে ব্যতিক্রমী ক্ষেত্রে কারখানাগুলি তৈরি করতে হবে।

আপনি যদি গতি সম্পর্কে উদ্বিগ্ন থাকেন; উত্পাদনে, আমরা একটি প্রক্রিয়াকরণ করতে পারি যা আপনার ক্লাসগুলির জন্য কারখানার উৎপাদিত হয় যা প্রতিফলন কারখানা দ্বারা পরিচালিত হচ্ছে বিক্রেতা / বিন / জেনারেশন-কারখানার জন্য-শ্রেণী

মতবাদ

জেন্ড এক্সপ্রেসিকে কোনও ডাটাবেস টুলিং বা ORM প্রদান করে না। আমি অনেক গবেষণা এবং আমার নিজের কয়েক ORMs নির্মাণের পরে পছন্দ হিসাবে আমার ORM হিসাবে মিমিলেস নির্বাচন করেছি। এটা শুধু কাজ করে

কনসোফারের মাধ্যমে মতবাদ এবং Symfony Yaml ইনস্টল করুন:

     রচনাকারীকে দসপ্রীড / কনটেইনার-ইন্টারপ-থিতন্ডিক সিমফনি / ইয়ামল প্রয়োজন    

একটি ফাইল তৈরি করুন config / cli-config। এই বিষয়বস্তু নিয়ে php :

       {/ ** @ভার \ ইন্টারপ কন্টেইনার \ কনটেইনার ইনফ্রেফস \ $ কনটেইনার * /$ ধারক = প্রয়োজন 'config / ধারক পিএইচপি ';$ সত্তা = ম্যানেজার = $ কন্টেইনার-> (\ ডক্টরিন \ ORM \ EntityManager :: class) পান;রিটার্ন কনসোলরুনার :: তৈরি হেলপারসেট ($ সত্তামনাজার);});    

কনফিগ / অটললোড / নির্ভরতাগুলির বিষয়বস্তু প্রতিস্থাপন করুন। গ্লোবাল। নিম্নলিখিত সঙ্গে php :

        ['abstract_factories' => [\ পার্সি-জাতির প্রাচীন শাস্ত্রগ্রন্থ \ ServiceManager \ AbstractFactory \ ReflectionBasedAbstractFactory :: শ্রেণী],// অন্য একটি সেবা থেকে অন্য নামের একটি নামের নাম 'aliases' ব্যবহার করুন। দ্য// কী উপনাম নাম, মানটি এমন একটি পরিষেবা যা এটি নির্দেশ করে. একটি পরিষেবা নাম ম্যাপ// শ্রেণির নাম. 'invokables' => [// সম্পূর্ণভাবে \ যোগ্য \ ইন্টারফেসনাম :: শ্রেণী => সম্পূর্ণ \ যোগ্য \ ClassName :: শ্রেণী,\ Doctrine \ DBAL \ লগিং \ DebugStack :: class => \ Doctrine \ DBAL \ লগিং \ DebugStack :: class,সহায়ক \ ServerUrlHelper :: class => সাহায্যকারী \ ServerUrlHelper :: শ্রেণী,মিডিলওয়্যার \ ইমপ্লিক্ড হেডমেল্লার্ড :: শ্রেণী => মিডিলারড্ \ ইমপ্লিটেটহাইটমাইলেল্ড :: ক্লাস,মিডিলওয়্যার \ ইমপ্লিক্টওপেশন্সমেল্লার্ড :: শ্রেণী => মিডিলারড্ \ ইমপ্লিটপোস্টপোস্টসমেল্লার্ড :: ক্লাস,],// কলব্যাক / ফ্যাক্টরি ক্লাস দ্বারা সরবরাহিত পরিষেবাগুলির জন্য 'কারখানা' ব্যবহার করুন। 'কারখানা' => [আবেদন :: শ্রেণী => কনটেইনার \ ApplicationFactory :: ক্লাস,প্রতিনিধি \ NotFoundDelegate :: শ্রেণী => কনটেইনার \ NotFoundDelegateFactory :: ক্লাস,\ Doctrine \ ORM \ EntityManager :: class => \ ContainerInteropDoctrine \ EntityManagerFactory :: ক্লাস,সহায়ক \ ServerUrlMiddleware :: শ্রেণী => সাহায্যকারী \ ServerUrlMiddlewareFactory :: ক্লাস,সাহায্যকারী \ UrlHelper :: শ্রেণী => সাহায্যকারী \ UrlHelperFactory :: শ্রেণী,সাহায্যকারী \ UrlHelperMiddleware :: শ্রেণী => সাহায্যকারী \ UrlHelperMiddlewareFactory :: ক্লাস,Zend \ Stratigility \ Middleware \ ErrorHandler :: class => কনটেইনার \ ErrorHandlerFactory :: ক্লাস,Middleware \ ErrorResponseGenerator :: শ্রেণী => কনটেইনার \ ত্রুটি রিসপন্স জেনারেটরফ্যাক্টরি :: ক্লাস,মিডিলওয়্যার \ NotFoundHandler :: শ্রেণী => কনটেইনার \ NotFoundHandlerFactory :: ক্লাস,],],];    

Doctrine ড্রাইভার সেট আপ করার জন্য এই ফাইলটি তৈরি করুন config / autoload / doctrine। গ্লোবাল। php

        ['ড্রাইভার' => ['orm_default' => ['বর্গ' => \ মতবাদ \ প্রচলিত / দৃঢ়তা \ ম্যাপিং \ ড্রাইভার \ ম্যাপিং ড্যারভার চেইন :: শ্রেণী,'ড্রাইভার' => [],],],],];    

আপনার ডাটাবেস প্রমাণপত্রাদি জন্য এই ফাইলটি তৈরি করুন config / autoload / doctrine স্থানীয়। php

        ['সংযোগ' => ['orm_default' => ['params' => ['url' => 'mysql: // root: password1 @ স্থানীয় হোস্ট / এক্সপোসিভ',],],],],];    

চলমান দ্বারা পরীক্ষা । / বিক্রেতা / বিন / মতবাদ আপনি সাহায্য প্রম্পট দেখতে হবে।

গুলপ

Gulap হল ফ্রন্টএন্ড ওয়ার্কফ্লো জন্য পছন্দ আমার বর্তমান হাতিয়ার। অনেক আছে, উপলব্ধ অনেক ফ্রন্টএন্ড বিল্ড সরঞ্জাম। দেখুন আপনি যদি চান, তবে আপনি চকচকে নতুন জাভাস্ক্রিপ্ট লাইব্রেরির সমুদ্রের মধ্যে হারিয়ে যেতে পারে। আমি এখানে জড়িত পেতে চাই না যেহেতু এই পিএইচপি টিউটোরিয়ালটি আরএসএস এর তুলনায় বেশি, তবে আমি দেখাব কিভাবে গুপটি জেন্ড এক্সপ্রেসিকে কাজ করার জন্য কনফিগার করা উচিত।

একটি প্যাকেজ তৈরি করুন। json এই বিষয়গুলির সাথে ফাইল:

     {"নাম": "অভিব্যক্তিগত","সংস্করণ": "0 - promoção ray ban original. 0. 0","বিবরণ": "","প্রধান": "সূচক। জেএস","ডিভাইডেনপয়েন্টেন্স": {"del": "^ 3 .0 0","গোলাপ": "জিথাব: গোলপজ / গোলাপ # 4।","গোলাপ-ক্যাশেড": "^ 1। 1. 1","গোলাপ-ইমেমমিন": "^ 3। 3. 0","গ্লুপ-মিনিফাই-সিএসএস": "^ 1। 24","গোলাপ-নামকরণ": "^ 1। 2. 2","গোলাপ-সাস": "^ 3। 1. 0","গোলাপ-বাদহীন": "^ 2. 1. 2","গোলাপ-ইউসেমিন": "^ 0 3. 28"},"স্ক্রিপ্ট": {"পরীক্ষা": "প্রতিধ্বনিত \" ত্রুটি: কোন পরীক্ষা নির্দিষ্ট না \ "এবং & প্রস্থান 1"},"লেখক": "","লাইসেন্স": "আইএসসি"}    

রান npm ইনস্টল । আপনি এন পি এম আপডেট চালাতে চাইলেও, লিখিত হওয়ার পরেও আপনি এই টিউটোরিয়ালটি পড়ছেন।

তারপর, একটি gulpfile তৈরি করুন. টাস্ক ('পরিষ্কার-CSS', ফাংশন {ফেরত ডেল ('পাবলিক / CSS', {force: true});});নি: শ্বাসে। টাস্ক ('কম্পাইল-সাস', ফাংশন {গাল ফিরে src ('src / * / public / sass / ** / *। scss', {বেস: '। /'})। নল (ক্যাশে ( 'কম্পাইল-Sass'))। পাইপ (sass । উপর ('ত্রুটি', sass। logError))। পাইপ (নাম পরিবর্তন (ফাংশন (পাথ) {পথ। dirname = পথ dirname। প্রতিস্থাপন (/ ^ src \ / ([^ \ /] + \ /) জন \ / sass /, '$ 1');}))। পাইপ (গুলপ ডিস্ট ('পাবলিক / CSS /'));});নি: শ্বাসে। টাস্ক ('কপি- css', ফাংশন {গাল ফিরে src ('src / * / public / css / ** / * .css', {বেস: '। /'})। নল (ক্যাশে ( 'কপি-CSS'))। পাইপ (নাম পরিবর্তন (ফাংশন (পাথ) {পথ। dirname = পথ dirname। প্রতিস্থাপন (/ ^ src \ / ([^ \ /] + \ /) জন \ / CSS /, '$ 1');}))। পাইপ (গুলপ ডিস্ট ('পাবলিক / CSS /'));});নি: শ্বাসে। টাস্ক ('minify-css', ফাংশন {গাল ফিরে src (['পাবলিক / CSS / ** / * .css', '! পাবলিক / CSS / ** / *। min। css'], {বেস: '। /'})। নল (ক্যাশে ( 'অল্প করা-CSS'))। নল (minifyCss )। পাইপ (নাম পরিবর্তন (ফাংশন (পাথ) {পথ। dirname = পথ dirname। প্রতিস্থাপন (/ ^ পাবলিক \ / CSS /, '');}))। পাইপ (নামকরণ করুন ({extname: '। min। css'}))। পাইপ (গুলপ ডিস্ট ('পাবলিক / CSS'));});নি: শ্বাসে। টাস্ক ('প্রসেস-সিএসএস', গোলাপ সিরিজ (['কম্পাইল-সাস', 'অনুলিপি-সিএসএস'], 'মাইনিফেটি-সিএসএস'));// জেসস প্রসেসিংনি: শ্বাসে। টাস্ক ('পরিষ্কার- js', ফাংশন {ফেরত ডেল ('পাবলিক / জেএস', {force: true});});নি: শ্বাসে। টাস্ক ('কপি-জেস', ফাংশন {গাল ফিরে src ('src / * / public / js / ** / *। js', {বেস: '। /'})। নল (ক্যাশে ( 'কপি-JS'))। পাইপ (নাম পরিবর্তন (ফাংশন (পাথ) {পথ। dirname = পথ dirname। প্রতিস্থাপন (/ ^ src \ / ([^ \ /] + \ /) জন \ / js /, '$ 1');}))। পাইপ (গুলপ ডিস্ট ('পাবলিক / জেএস /'));});নি: শ্বাসে। টাস্ক ('minify-js', ফাংশন {গাল ফিরে src (['পাবলিক / জেএস / ** / *। জেএস', '! পাবলিক / জেএস / ** / *। মিনিট। জেএস'], {বেস: '। /'})। নল (ক্যাশে ( 'অল্প করা-JS'))। নল (কুতসিত করান )। পাইপ (নাম পরিবর্তন (ফাংশন (পাথ) {পথ। dirname = পথ dirname। প্রতিস্থাপন (/ ^ জন \ / জেএস /, '');}))। পাইপ (পুনরায় নামকরণ করুন ({extname: '। min। js'}))। পাইপ (গুলপ ডিস্ট ('পাবলিক / জেএস'));});নি: শ্বাসে। টাস্ক ('প্রক্রিয়া- js', গোলাপ সিরিজ ('অনুলিপি- js', 'minify-js'));// চিত্র প্রক্রিয়াকরণনি: শ্বাসে। টাস্ক ('clean-img', ফাংশন {ফেরত দেল ('পাবলিক / img', {force: true});});নি: শ্বাসে। টাস্ক ('প্রক্রিয়া- img', ফাংশন {গাল ফিরে src ('src / * / public / img / ** / *। {gif, jpg, jpeg, png, svg}', {বেস: '। /'})। নল (ক্যাশে ( 'প্রক্রিয়া চিত্র'))। নল (imagemin )। পাইপ (নাম পরিবর্তন (ফাংশন (পাথ) {পথ। dirname = পথ dirname। প্রতিস্থাপন (/ ^ src \ / ([^ \ /] + \ /) জন \ / img /, '$ 1');}))। পাইপ (গুলপ ডিস্ট ('পাবলিক / আইএমজি'));});// শীর্ষ স্তরের কমান্ডনি: শ্বাসে। টাস্ক ('ডিফল্ট', গোলাপ। সমান্তরাল ('প্রক্রিয়া- js', 'process-css', 'process-img'));নি: শ্বাসে। টাস্ক ('পরিষ্কার', গোলাপ। সমান্তরাল ('পরিষ্কার-জেএস', 'পরিষ্কার-CSS', 'পরিষ্কার-আইএমজি'));নি: শ্বাসে। টাস্ক ('ঘড়ি', ফাংশন {নি: শ্বাসে। ঘড়ি (['src / * / public / sass / ** / *। scss', 'src / * / public / css / ** / * .css'], গোলাপ সিরিজ ('process-css'));নি: শ্বাসে। দেখুন ('src / * / public / js / ** / *। js', গোলাপ সিরিজ ('process-js'));নি: শ্বাসে। ঘড়ি ('src / * / public / img / ** / *। {gif, jpg, jpeg, png, svg}', গোলাপ সিরিজ ('প্রক্রিয়া- img'));});

রান গোলাপ এবং এটি ত্রুটি ছাড়াই রান নিশ্চিত করা

এখন আপনি গোলাপ চালাতে পারেন sass সংকলন, CSS minify, js minify এবং আপনার সব মডিউল জুড়ে ইমেজ অপটিমাইজ। আপনি Gulp ঘড়ির সাথে এটি অনুসরণ করতে পারেন এই সব স্বয়ংক্রিয়ভাবে প্রক্রিয়া হিসাবে তারা পরিবর্তন করা হয়। ক্যাশ গুলিপ মডিউলে নিশ্চিত হয় যে শুধুমাত্র পরিবর্তিত ফাইলগুলি প্রক্রিয়াকরণ করা হয় তাই এটি খুব দ্রুত পরিবর্তন করা উচিত।

এই ফাইলগুলির মধ্যে একটি তৈরি করে পরীক্ষা করুন:

  • src / অ্যাপ্লিকেশন / পাবলিক / sass / sasstest স্কস
  • src / অ্যাপ্লিকেশন / পাবলিক / CSS / পরীক্ষা CSS
  • src / অ্যাপ্লিকেশন / পাবলিক / জেএস / পরীক্ষা জেএস
  • src / অ্যাপ্লিকেশন / পাবলিক / img / test jpg

এবং তারপর চালানো গোলাপ পাবলিক / CSS / অ্যাপ , পাবলিক / জেএস / অ্যাপ , অথবা পাবলিক / আইএমজি / অ্যাপ এ ফাইলগুলি দেখুন.

কনসোল কমান্ডগুলি

এবং শেষ, কিন্তু স্পষ্টতই না কম, আপনি কনসোল কমান্ড চালানোর একটি উপায় প্রয়োজন হবে। আমরা এই জন্য Symfony এর কনসোল ব্যবহার করব, যা ইতিমধ্যে Zend Semalt সঙ্গে জাহাজ যাতে আমরা এটি প্রয়োজন ম্যানুয়াল প্রয়োজন।

নামক একটি ফাইল তৈরি করুন বিন / কনসোল :

     #! / Usr / bin / env php  {/ ** @ভার \ ইন্টারপ কনটেইনার \ কনটেইনার ইনফটারফেস $ কন্টেইনার * /$ ধারক = প্রয়োজন 'config / ধারক পিএইচপি ';$ app = নতুন \ Symfony \ Component \ কনসোল অ্যাপ্লিকেশন ('অ্যাপ্লিকেশন কনসোল');$ কমান্ড = $ কন্টেইনার-> পান ('কনফিগ') ['কনসোল'] ['কমান্ড'];ফরচ ($ কমান্ড $ কমান্ড হিসাবে) {$ 'অ্যাপ্লিকেশান> যুক্ত করুন ($ container-> পেতে ($ কমান্ড));}$ 'অ্যাপ্লিকেশান> রান   ;});    

তারপর, আপনি Symfony কমান্ড তৈরি করতে পারেন এবং তাদের config / autoload / console এর মাধ্যমে নিবন্ধন করতে পারেন। গ্লোবাল। php বা এই মত আপনার মডিউল মধ্যে:

        ['কমান্ড' => [\ অ্যাপ \ কমান্ড \ HelloWorldCommand :: বর্গ,],],];    

কোনও নির্ভরশীলতা যোগ করুন আপনার কনসোলের কমান্ডটি কন্সট্রাকটরের সাথে তুলনা করুন যেমন এক্সপ্রেসভের অন্য কোন ক্লাস। আপনার কন্সট্রাকটরে পিতা বা মাতাঃ __ কন্সট্রাক্ট কল করার জন্য নিশ্চিত হোন বা আপনার কমান্ড কাজ করবে না।

এখানে একটি নির্ভরশীলতার সঙ্গে একটি উদাহরণ কমান্ড:

        সত্তাব্যবস্থা = $ সত্তা ম্যানেজার;পিতা বা মাতা :: __ কনস্ট্রাক্ট ($ নাম);}/ *** কমান্ড কনফিগার করে* /সুরক্ষিত ফাংশন কনফিগার   {$ This-> setName ( 'হ্যালো')-> সেট বিবরণ ('হ্যালো বলে');}/ *** বর্তমান কমান্ড execution* /সুরক্ষিত ফাংশন সঞ্চালন (ইনপুট ইনফেষ্ট্ফস $ ইনপুট, আউটপুট ইনফেষ্টের $ আউটপুট){$ আউটপুট-> লিস্ট ("হ্যালো ওয়ার্ল্ড!");// সত্তা ম্যানেজারের সাথে কিছু করুন$ This-> entityManager-> এটি ( '\ সত্তা \ BlogEntity ব্লগ');}}    

আপনার আদেশ চালানোর জন্য:

     পিএইচপি বিন / কনসোল হ্যালো    

আমরা একটু একটু করে যেতে পারি এবং একটি লগার যোগ করতে পারি। এটি এমন অনেকগুলি পরিষেবা মডেলগুলিকে পাস করার জন্য উপযোগী যা অনেকগুলি লজিককে আবৃত করে এবং ডিবাগ লগিং এর প্রয়োজন হয়।

এই কমান্ডটি চালান:

     সুরকার মনস্তত্ত্ব / মনোলোক symfony / monolog- সেতু প্রয়োজন;    

তারপর, আপনার কমান্ড আপনার নির্বাহ পদ্ধতিতে এই যোগ করুন:

     সুরক্ষিত ফাংশন সঞ্চালন (ইনপুট ইনফেষ্টের $ ইনপুট, আউটপুট ইন্টারফেস $ আউটপুট){$ logger = new \ Monolog \ Logger ('সংগ্রহ পণ্য-তথ্য');$ logger-> pushHandler (নতুন \ Symfony \ Bridge \ Monolog \ Handler \ ConsoleHandler ($ আউটপুট));$ লগগার-> ডিবাগ ('লগ কিছু);}    

উপসংহার

আপনি এখন আপনার নখদর্পণে আপনি যে কোনও সরঞ্জাম দিয়ে একটি এন্টারপ্রাইজ স্তরের অ্যাপ্লিকেশন নির্মাণ শুরু করতে প্রস্তুত।

পরের পোস্টে আমরা এই ফাউন্ডেশনের মডিউল কিভাবে তৈরি করব তা শিখতে শুরু করব, একটি ব্লগ মডিউল দিয়ে শুরু করা।