Back to Question Center
0

झेंड अभिव्यक्ती मॉड्यूलचा रॅपिड डेव्हलपमेंट            झेंडे अभिप्राय मोड्यूलचा रॅपिड डेव्हलपमेंटसंबंधित विषयः सुरक्षा विकास पर्यावरणीय पोर्ट्स आणि & आचरण डीडबल्यूबगिंग आणि & मिमल

1 answers:
झेंड आभासी मॉड्यूलचा जलद विकास

मी आपल्यासह सामायिक करू इच्छित असलेले Zend Semalt मॉड्यूल्स लिहिताना मी काही युक्त्या शिकलो.

योग्य कार्य वातावरण सेट करण्यासाठी प्रथम मागील पोस्टचे अनुसरण करा. मी समेंडल, गोल आणि एक अमूर्त रिफ्लेक्टेशन कारखानासह Zend Expressive कसे स्थापित करावे आणि कॉन्फिगर कसे करायचे याचे स्पष्टीकरण केले - हे एकूण 10 मिनिटे घेईल.

या ट्यूटोरियल मध्ये, आम्ही मिनिटांमध्ये एक सोपा रीड -ऑल ब्लॉगर मॉड्यूल (डेटाबेसमधील पृष्ठ सूची ब्लॉग पोस्ट्स) तयार करूया, ज्याप्रकारचे जलद विकास हा एक झेंड एक्स्प्रेसिव्हसह सक्षम आहे हे सिद्ध करेल.

झेंड अभिव्यक्ती मॉड्यूलचा रॅपिड डेव्हलपमेंटझेंडे अभिप्राय मोड्यूलचा रॅपिड डेव्हलपमेंटसंबंधित विषयः
सिक्योरिटी डेव्हलपमेंट एन्वार्यनमेंट पॅटरट्स अँड प्रॅक्टीसेस ड्युअल डीबगिंग आणि Semaltॅट

मॉड्यूल सेटअप

प्रारंभ करण्यासाठी आपल्या अर्थपूर्ण अॅपवरून हा आदेश चालवा:

    . / विक्रेता / बिन / अर्थपूर्ण मॉड्यूल: ब्लॉग तयार करा    

हे ब्लॉग मॉड्यूलसाठी काही बेस कोड व्युत्पन्न करेल आणि आपल्या अनुप्रयोगासह स्वयंचलितपणे आपल्या मॉड्यूलची नोंदणी करेल - vismed gel multi color. ते आपल्या मॉड्यूलला मिसमॉल्ट ऑटोलोडरसह देखील नोंदणी करेल.

तत्वज्ञान अस्तित्व आणि डेटाबेस टेबल

चला आपला ब्लॉग अस्तित्व आणि डेटाबेस टेबल बनवूया. प्रथम, आम्हाला हे मॉड्यूल कळवावे लागेल की हे मॉड्यूल मिमल इन्टिटीज प्रदान करते.

उघडा src / ब्लॉग / src / कॉन्फिगर प्राप्रतीकर्ता php आणि खालील जोडा:

  (3 9) सार्वजनिक कार्य __इनोक   {परत ['अवलंबन' => $ this-> getDependencies   ,'doctrine' => $ this-> getDoctrine   ,'टेम्पलेट' => $ this-> getTemplates   ,];}/ *** @ आरट्रेन अॅरे* /सार्वजनिक कार्य getDoctrine   : अॅरे{परत ['ड्राइवर' => ['orm_default' => ['ड्राइवर' => ['ब्लॉग \ अस्तित्व' => 'ब्लॉग_ता'],],'blog_entity' => ['class' => \ Doctrine \ ORM \ मॅपिंग ड्रायवर सिमप्लिफाइड YamlDriver :: class,'cache' => 'अॅरे','पथ' => [dirname (__ दिइआर__). '/ config / doctrine' => 'ब्लॉग \ अस्तित्व',],],],];}    

ब्लॉग पोस्ट अस्तित्व कॉन्फिग तयार करा src / blog / config / doctrine / BlogPost. orm yml :

     ---ब्लॉग \ अस्तित्व ब्लॉगपोस्ट:प्रकार: अस्तित्वटेबल: blog_postid:id:प्रकार: पूर्णांकजनरेटर:रणनीती: ऑटोफील्ड:शीर्षक:प्रकार: स्ट्रिंगलांबी: 255सामग्री:प्रकार: स्ट्रिंगलांबी: 16777215    

त्यानंतर, धाव . / विक्रेता / bin / doctrine orm: व्युत्पन्न-घटकांचा स्रोत .

दुःखाची गोष्ट म्हणजे, क्षेपणास्त्र PSR-4 चे समर्थन करणार नाही आणि संभाव्यतः समर्थित नसेल तर मानक प्रमाणपत्राच्या संरचनेत भाग घेत नाही.

यावर लक्ष ठेवण्यासाठी, src / ब्लॉग / अस्तित्व ते src / ब्लॉग / src / अस्तित्व हलविण्याची गरज आहे.

त्यानंतर, आपली डेटाबेस सारणी तयार करण्यासाठी हा आदेश चालवा:

    . / विक्रेता / bin / doctrine orm: schema-tool: तयार करा    

आता, आपण खालील एस क्यू एल चालवून डेटाबेस टेबल व्यापू शकता:

     अर्थपूर्ण मध्ये अंतर्भूत. blog_post VALUES(रद्द करा, 'पोस्ट 1', 'नेटवर्किंग आणि आर्टवर्किंग एजंट' या संकेतस्थळास भेट द्या.),(शून्य 'पोस्ट 2', 'मॉरीस इन फ्री लॉरेट, इक्वियड लॉरेम इटेट, दॅस्टेड फाउलो'.),(रद्द करा, 'पोस्ट 3', 'पूर्ण वेळ या शब्दात सांगायचं झालं तर, त्यास अचूकपणे सांगता येईल.');    

राउटिंग

एक्स्प्रेसिव मध्ये मॉड्यूल त्यांच्या स्वत: च्या मार्ग नोंदणी करू नका आम्ही त्यांना
बनवू शकतो तथापि, हे सुलभ युक्तीने तसे करा. आपण ते समजून घेणे नाही. फक्त फायली त्या ठिकाणी ठेवा आणि हे कार्य करते हे जाणून घ्या.

एक तयार करा src / ब्लॉग / src / फॅक्टरी / मार्गनिर्देशक. * @परम कॉल करण्यायोग्य $ कॉलबॅक तयार करते आणि सेवा परत करते. * @ रिटर्न अनुप्रयोग* /सार्वजनिक कार्य __इनोक (कंटेनर इंटरफेस $ कंटेनर, $ सेवानाम, कॉल करण्यायोग्य $ कॉलबॅक){/ ** @वार $ अनुप्रयोग अनुप्रयोग * /$ app = $ कॉलबॅक ;__DIR__ समाविष्ट करा '/. /. / config / मार्ग php ';परतावा $ अनुप्रयोग;}}

मध्ये src / ब्लॉग / src / ConfigProvider. php , getDependencies पद्धत:

शीर्षस्थानी अॅरे की म्हणून ती जोडा
  (3 9) 'प्रतिनिधी' => [\ Zend \ Expressive अनुप्रयोग: वर्ग => [फॅक्टरी \ राउटरडायलेगेटर :: क्लास,],],    

आता आपण एक src / blog / config / routes तयार करू शकता. php फाईल करा आणि ब्लॉग मार्ग जोडण्यास प्रारंभ करा

  (3 9)    पोस्ट ('/ अल्बम', अॅप एक्शन \ AlbumCreateAction :: वर्ग, 'अल्बम तयार करा');* $ app-> ला ('/ अल्बम /: आयडी', अॅप्प एक्शन \ AlbumUpdateAction :: class, 'album.pot');* $ app-> पॅच ('/ अल्बम /: आयडी', अॅप्प ऍक्शन \ AlbumUpdateAction :: class, 'album patch');* $ app-> हटवा ('/ अल्बम /: आयडी', अॅप्प ऍक्शन \ अल्बमडेटेक्शन अॅक्शन :: क्लास, 'अल्बम डिलिट');** किंवा एकाधिक विनंती पद्धतीसह:** $ app-> मार्ग ('/ संपर्क', अॅप क्रिया: संपर्कः :: वर्ग, ['GET', 'POST', . ], 'संपर्क');** किंवा सर्व विनंती पद्धती हाताळणी:** $ app-> मार्ग ('/ संपर्क', अॅप क्रिया: संपर्कः :: वर्ग) -> सेट -नाम ('संपर्क');** किंवा:** $ app-> मार्ग (* '/ संपर्क',* अॅप क्रिया: संपर्कः :: वर्ग,* Zend \ Expressive \ Router \ Route :: HTTP_METHOD_ANY,* 'संपर्क'*);* /ब्लॉग \ अॅक्शन वापरा;// सेटअप मार्ग:$ app-> मिळवा ('/ ब्लॉग', क्रिया \ BlogPostListAction :: वर्ग, 'blog_post_list');$ app-> मिळवा ('/ blog / view /: blog_post_id', क्रिया \ ब्लॉग पोस्ट व्ह्यूएक्शन :: वर्ग, 'blog_post_view');    

क्रिया

मग, प्रत्येक मार्गाने प्रतिसाद देण्यासाठी आम्हाला कृती करावी लागेल

तयार करा src / ब्लॉग / src / क्रिया / ब्लॉग पोस्ट लिस्ट ऍक्शन. php :

  (3 9)    templateRenderer = $ templateRenderer;$ the-> entityManager = $ entityManager;}पब्लिक फंक्शन प्रोसेस (सर्व्हरआरयुएस्ट इंटरफेस $ विनंती, डेलाइट इंटरफेस $ डेलिगेट){$ posts = $ this-> entityManager-> getRepository (BlogPost :: वर्ग)-> शोध   ;$ data = ['posts' => $ posts,];नवीन HtmlResponse ($ हे-> टेम्पलेट रिडीडरर-> रेंडर करा ('ब्लॉग :: सूची', $ डेटा) परत करा;}}    

तयार करा src / ब्लॉग / src / क्रिया / ब्लॉग पोस्ट ViewAction. ');}$ blogId = $ pathमॅच केलेले पत्ते ['blog_post_id'];/ ** @वार ब्लॉगपोस्ट $ ब्लॉग पोस्ट * /$ blogPost = $ this-> entityManager-> शोधा (BlogPost :: वर्ग, $ blogId);जर (! $ blogPost) {नवीन HtmlResponse ($ हे-> टेम्पलेट रिडीडरर-> रेंडर करा ('त्रुटी :: 404'), 404);}$ data = ['पोस्ट' => $ ब्लॉग पोस्ट,];नवीन HtmlResponse ($- >-> templateRendererr-> रेंडर करा ('ब्लॉग :: दृश्य', $ डेटा) परत करा);}}

टेम्पलेट

उघडा src / ब्लॉग / src / कॉन्फिगर प्राप्रतीकर्ता php आणि getTemplates या पध्दतीमध्ये सुधारणा करा

  (3 9) सार्वजनिक फंक्शन getTemplates   {परत ['पथ' => ['ब्लॉग' => [__DIR__ '/. / टेम्पलेट्स / ब्लॉग '],],];}    

आता आम्ही काही झटपट टेम्पलेट बनवू शकतो:

तयार करा src / ब्लॉग / टेम्पलेट / ब्लॉग / सूची. html डहाळी :

     {% 'लेआउट / डीफॉल्ट विस्तृत करते html डहाळी' %}{% block title%} ब्लॉग {% endblock%}{% ब्लॉक सामग्री%} 
{% post मधील पोस्ट%}

{{पोस्ट. शीर्षक}}

{{पोस्ट सामग्री}}

{% endfor%}
{% endblock%}

तयार करा src / ब्लॉग / टेम्पलेट्स / ब्लॉग / दृश्य html डहाळी :

     {% 'लेआउट / डीफॉल्ट विस्तृत करते html डहाळी' %}{% block title%} {{पोस्ट. title}} | ब्लॉग {% endblock%}{% ब्लॉक सामग्री%} 

{{पोस्ट title}}

{{पोस्ट सामग्री}}

{% endblock%}

आपण / ब्लॉग URL उघडल्यास, आपल्याकडे कार्यशील, डेटाबेस आधारित ब्लॉग सूची असेल आणि पृष्ठे पाहण्यात सक्षम असतील.

झेंड अभिव्यक्ती मॉड्यूलचा रॅपिड डेव्हलपमेंटझेंडे अभिप्राय मोड्यूलचा रॅपिड डेव्हलपमेंटसंबंधित विषयः
सिक्योरिटी डेव्हलपमेंट एन्वार्यनमेंट पॅटरट्स अँड प्रॅक्टीसेस ड्युअल डीबगिंग आणि Semaltॅट

Semaltने होमवर्क म्हणून आपल्यापर्यंत कार्यक्षमता तयार करणे, संपादित करणे आणि हटविणे लागू केले आहे.

निष्कर्ष

या लहान ट्युटोरियलमध्ये, आम्ही झेंड एक्सपीरिव्डसह फक्त-वाचनीय-केवळ ब्लॉग मॉड्यूलचे अंमलबजावणी करणे किती सोपे आहे ते पाहिले. काही मूठभर फायली आणि 10 मिनिटे कामात नाही तर सूची पृष्ठ डेटाबेसमधील आमच्या पोस्ट प्रदर्शित करु शकेल आणि अतिरिक्त मार्गांसाठी / संपादन , आणि / हटवा तयार होते.

आपण आपल्या प्रकल्पांमध्ये Zend Semalt वापरता का? आपल्याला काय आवडते / नापसंत? आपण कसे मिळवाल ते आम्हाला कळू द्या!

(18 9) मी मॅगेंटा, झेंड फ्रेमवर्क, सिमफोनी आणि देवऑप्स तंत्रज्ञानातील अनुभव असलेल्या रोबॉफर्म येथे तंत्रज्ञान संचालक आहे. मी रोबॉफिर्मची तांत्रिक सामर्थ्यामध्ये प्रगती करत आहे आणि कमी वेळ आणि बजेटसह आमच्या क्लायंटना उच्च दर्जाच्या कामाची डिलिवरी अनुमत करण्यासाठी स्पर्धेवर एक अग्रणी आघाडी कायम ठेवत असल्याचे सुनिश्चित करण्यासाठी करतो. मी दोन मुलींचा पिता आहे आणि आनंदाने विवाह केला. मी माझ्या विनामूल्य वेळेत कोड करतो कारण नवीन गोष्टी तयार करण्यासाठी तो मजेदार आहे. मी देखील गिटार खेळतो आणि बरेच मेटल ऐकतो.

March 1, 2018