Back to Question Center
0

ਜ਼ੈਂਡ ਐਕਸਪ੍ਰੈਸਿਵ ਮੈਡਿਊਲ ਦੀ ਰੈਪਿਡ ਡਿਵੈਲਪਮੈਂਟ            ਜ਼ੈਂਡ ਐਕਸਪ੍ਰੈਸਿਵ ਮੈਡਿਊਲ ਦੀ ਰੈਪਿਡ ਡਿਵੈਲਪਮੈਂਟਲਿਤ ਵਿਸ਼ਾ: ਸੁਰੱਖਿਆ ਡਿਵੈਲਪਮੈਂਟ ਵਾਤਾਵਰਣਪੱਤਰ ਅਤੇ & ਪ੍ਰੈਕਟਿਸ ਡ੍ਰੈਂਟਲ ਡੀਬੱਗਿੰਗ & ਮਿਗਲ

1 answers:
ਜ਼ੈਂਡ ਐਕਸਪ੍ਰੈਸਿਵ ਮੈਡਿਊਲਜ਼ ਦਾ ਰੈਪਿਡ ਵਿਕਾਸ

Zend Semalt ਮੌਡਿਊਲ ਲਿਖਣ ਵੇਲੇ ਮੈਂ ਕੁਝ ਗੁਰੁਰ ਸਿੱਖੀਆਂ ਹਨ ਜੋ ਮੈਂ ਤੁਹਾਡੇ ਨਾਲ ਸਾਂਝਾ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ.

ਕ੍ਰਿਪਾ ਕਰਕੇ ਪਿਛਲੇ ਕੰਮ ਦੀ ਸਹੀ ਪਾਲਣਾ ਕਰਨ ਲਈ ਪਹਿਲਾਂ ਕੰਮ ਕਰੋ. ਮੈਂ ਸਮਝਾਇਆ ਕਿ ਜ਼ੈਡ ਐਕਸੈਸ਼ਿਵੇਟ ਨੂੰ ਸੈਮਟ੍ਰਕ, ਗੁਲਪੀ ਅਤੇ ਇਕ ਰਿਫਲੈਕਟ ਫੈਕਟਰੀ ਦੇ ਨਾਲ ਕਿਵੇਂ ਸਥਾਪਿਤ ਅਤੇ ਸੰਰਚਿਤ ਕਰਨਾ ਹੈ - ਇਹ ਕੁੱਲ 10 ਮਿੰਟ ਲਵੇਗਾ.

ਇਸ ਟਿਯੂਟੋਰਿਅਲ ਵਿਚ, ਅਸੀਂ ਮਿੰਟਾਂ ਵਿਚ ਇਕ ਸਧਾਰਨ ਰੀਡ-ਓਨਲ ਬਲੌਗ ਮੋਡੀਊਲ (ਇੱਕ ਡਾਟਾਬੇਸ ਤੋਂ ਇੱਕ ਪੇਜ ਸੂਚੀਬੱਧ ਬਲਾੱਗ ਪੋਸਟ) ਬਣਾਵਾਂਗੇ, ਜੋ ਕਿ ਤੇਜ਼ ਵਿਕਾਸ ਦਾ ਜ਼ੁਲਮ ਦਿਖਾਉਣ ਵਾਲਾ ਹੈ, ਇੱਕ ਜ਼ੈਂਡ ਐਕਸਪ੍ਰੈਸਿਵ ਨਾਲ ਸਮਰੱਥ ਹੈ - ejuice storage.

ਜ਼ੈਂਡ ਐਕਸਪ੍ਰੈਸਿਵ ਮੈਡਿਊਲ ਦੀ ਰੈਪਿਡ ਡਿਵੈਲਪਮੈਂਟਜ਼ੈਂਡ ਐਕਸਪ੍ਰੈਸਿਵ ਮੈਡਿਊਲ ਦੀ ਰੈਪਿਡ ਡਿਵੈਲਪਮੈਂਟਲਿਤ ਵਿਸ਼ਾ:
ਸੁਰੱਖਿਆ ਡਿਵੈਲਪਮੈਂਟ ਵਾਤਾਵਰਣਪੱਤਰ ਅਤੇ ਪ੍ਰੈਕਟਿਸਸਡ੍ਰੂਟ ਡੀਬੱਗਿੰਗ ਅਤੇ ਸੈਮਲਾਟ

ਮੋਡੀਊਲ ਸੈੱਟਅੱਪ

ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਆਪਣੇ ਕਮਰਸ਼ੀਅਲ ਐਪ ਤੋਂ ਇਹ ਕਮਾਂਡ ਚਲਾਓ:

    . / ਵਿਕਰੇਤਾ / ਬਿਨ / ਪ੍ਰਗਟਾਵਾਤਮਕ ਮੈਡਿਊਲ: ਬਲੌਗ ਬਣਾਓ    

ਇਹ ਬਲੌਗ ਮੋਡੀਊਲ ਲਈ ਕੁਝ ਬੇਸ ਕੋਡ ਤਿਆਰ ਕਰੇਗਾ ਅਤੇ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਨਾਲ ਆਪਣੇ ਮੋਡੀਊਲ ਨੂੰ ਰਜਿਸਟਰ ਕਰੇਗਾ. ਇਹ ਤੁਹਾਡੇ ਮੈਡਿਊਲ ਨੂੰ ਸਿਮਟਲ ਆਟੋਲੋਡਰ ਨਾਲ ਵੀ ਰਜਿਸਟਰ ਕਰੇਗਾ.

ਸਿਧਾਂਤ ਸੰਸਥਾ ਅਤੇ ਡਾਟਾਬੇਸ ਸਾਰਣੀ

ਆਉ ਅਸੀਂ ਆਪਣਾ ਬਲੌਗ ਇਕਾਈ ਅਤੇ ਡਾਟਾਬੇਸ ਟੇਬਲ ਬਣਾਵਾਂ. ਪਹਿਲਾਂ, ਸਾਨੂੰ ਇਹ ਦੱਸਣ ਦੀ ਜ਼ਰੂਰਤ ਹੈ ਕਿ ਇਹ ਮੌਡਿਲੀ ਸੈਮੂਅਲ ਇਕਾਈਆਂ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ.

ਖੋਲੋ src / blog / src / ConfigProvider. php ਅਤੇ ਹੇਠ ਲਿਖੇ ਸ਼ਾਮਲ ਕਰੋ:

     ਪਬਲਿਕ ਫੰਕਸ਼ਨ __ਇਨਕੋ   {ਵਾਪਸੀ ['ਨਿਰਭਰਤਾ' => $ this-> getDependencies   ,'ਸਿਧਾਂਤ' => $ this-> getDoctrine   ,'ਟੈਮਪਲੇਟ' => $ this-> getTemplates   ,];}/ *** @ ਰੈਂਟਨ ਐਰੇ* /ਜਨਤਕ ਫੰਕਸ਼ਨ getDoctrine   : ਐਰੇ{ਵਾਪਸੀ ['ਡਰਾਈਵਰ' => ['orm_default' => ['ਡਰਾਈਵਰ' => ['ਬਲੌਗ \ ਇਕਾਈ' => 'ਬਲੂਗ_ਤਾਈ',],],'blog_entity' => ['ਕਲਾਸ' => \ ਸਿਧਾਂਤ \ ਜਾਂ \ ਮੈਪਿੰਗ \ ਡ੍ਰਾਈਵਰ ਸਰਲ ਯਮਲਡ੍ਰਾਈਵਰ :: ਕਲਾਸ,'ਕੈਚ' => 'ਐਰੇ','ਪਾਥ' => [dirname (__ ਡੀਆਈਆਰ__) '/ config / doctrine' => 'ਬਲੌਗ / ਸੰਸਥਾ',],],],];}    

ਬਲੌਗ ਪੋਸਟ ਐਨਟਿਟੀ ਟੈਕਸਟ ਬਣਾਓ src / blog / config / doctrine / BlogPost. orm yml :

     ---ਬਲਾੱਗ \ ਸੰਸਥਾ \ BlogPost:ਪ੍ਰਕਾਰ: ਇਕਾਈਸਾਰਣੀ: blog_postid:id:ਕਿਸਮ: ਪੂਰਨ ਅੰਕਜਨਰੇਟਰ:ਰਣਨੀਤੀ: ਆਟੋਖੇਤਰ:ਸਿਰਲੇਖ:ਟਾਈਪ: ਸਤਰਲੰਬਾਈ: 255ਸਮੱਗਰੀ:ਟਾਈਪ: ਸਤਰਲੰਬਾਈ: 16777215    

ਫੇਰ, ਰਨ . / ਵਿਕਰੇਤਾ / bin / doctrine orm: ਜਨਰੇਟ-ਇੰਦਰਾਜ਼ ਸ੍ਰੋਤ

ਅਫ਼ਸੋਸ ਦੀ ਗੱਲ ਹੈ, ਮਿਗਲਾਟ PSR-4 ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਅਤੇ ਸੰਭਵ ਤੌਰ 'ਤੇ ਨਹੀਂ ਹੈ ਕਿਉਂਕਿ ਮਿਆਰੀ ਡਾਇਰੈਕਟਰੀ ਢਾਂਚੇ' ਤੇ ਜ਼ੋਰ ਨਹੀਂ ਪਾਉਂਦਾ.

ਇਸਦੇ ਬਾਰੇ ਜਾਣਨ ਲਈ, ਸਾਨੂੰ src / blog / entity ਤੋਂ src / blog / src / entity ਨੂੰ ਅੱਗੇ ਜਾਣ ਦੀ ਲੋੜ ਹੈ.

ਫੇਰ, ਆਪਣੀ ਡਾਟਾਬੇਸ ਸਾਰਣੀ ਬਣਾਉਣ ਲਈ ਇਹ ਕਮਾਂਡ ਚਲਾਓ:

    . / ਵਿਕਰੇਤਾ / bin / doctrine orm: schema-tool: create    

ਹੁਣ, ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ SQL ਚਲਾ ਕੇ ਡੇਟਾਬੇਸ ਟੇਬਲ ਨੂੰ ਭਰ ਸਕਦੇ ਹੋ:

     ਪ੍ਰਗਟਾਵਾ ਵਿੱਚ ਦਾਖਲ ਹੋਵੋ blog_post ਮੁੱਲ(ਨਾਜ਼ੁਕ, 'ਪੋਸਟ 1', 'ਆਟੋਮੈਟਿਕਸ ਡਿਪਾਰਟਮੈਂਟ ਆਫ ਐਂਟੀਟ, ਐਡਕਟ ਐਡਪਿਸਿੰਗ ਐਲੀਟ.'),(ਨਾਜ਼ੁਕ, 'ਪੋਸਟ 2', 'ਮਾਊਰਿਸ ਇਨ ਫ੍ਰੀੋਅਰ ਲਾਓਰੇਟ, ਈਯੂਮਜ਼ਮ ਲਾਊਰ ਐਮਟ, ਟੈਡਿਡ ਫੋਲੀਓ'.),(ਨਾਜ਼ੁਕ, 'ਪੋਸਟ 3', 'ਡਾਈਨੇਸ ਸੇਡ ਦਿਲਾਂ ਦੀ ਗੂੰਜ, ਅਲਟਰਸਿਸ ਸਲੂਸ ਐਟ, ਵੈਨਿਨਟੀਸ ਫੇਲਿਸ.');    

ਰੂਟਿੰਗ

ਐਕਸਪ੍ਰੈਸਿਵ ਵਿਚ ਮੌਡਿਊਲ ਆਪਣੇ ਰੂਟ ਰਜਿਸਟਰਡ ਨਹੀਂ ਕਰਦੇ. ਅਸੀਂ ਉਹਨਾਂ ਨੂੰ ਬਣਾ ਸਕਦੇ ਹਾਂ
ਇਸ ਤਰ੍ਹਾਂ ਕਰੋ, ਪਰ ਇਸ ਸੌਖੀ ਚਾਲ ਨਾਲ. ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਸਮਝਣਾ ਨਹੀਂ ਚਾਹੀਦਾ. ਫਾਈਲਾਂ ਨੂੰ ਸਿਰਫ ਥਾਂ ਤੇ ਰੱਖੋ ਅਤੇ ਜਾਣੋ ਕਿ ਇਹ ਕੰਮ ਕਰਦਾ ਹੈ

ਇੱਕ ਬਣਾਓ src / blog / src / ਫੈਕਟਰੀ / ਰੂਟਸ ਡੀ ਡੀਏਲੇਟਰ. * @ ਪਰਾਮ ਨੂੰ ਦੇਣਯੋਗ $ ਕਾਲਬੈਕ ਸੇਵਾ ਬਣਾਉਂਦਾ ਅਤੇ ਵਾਪਸ ਕਰਦਾ ਹੈ. * @ ਰਿਟਰਨ ਐਪਲੀਕੇਸ਼ਨ* /ਜਨਤਕ ਫੰਕਸ਼ਨ __ਇਨਕੋ (ਕੰਟੇਨਰ ਇੰਟਰਫੇਸ $ ਕੰਟੇਨਰ, $ ਸੇਵਾ ਦਾ ਨਾਮ, ਕਾਲ ਯੋਗ $ ਕਾਲਬੈਕ){/ ** @ਵਰ $ ਐਪ ਐਪਲੀਕੇਸ਼ਨ * /$ app = $ ਕਾਲਬੈਕ ;__DIR__ ਸ਼ਾਮਲ ਕਰੋ '/. /. / config / routes php ';ਵਾਪਿਸ $ ਐਪਲੀਕੇਸ਼ਨ;}}

ਵਿੱਚ src / blog / src / ConfigProvider. php , ਇਸ ਨੂੰ getDependencies ਵਿਧੀ ਲਈ ਇੱਕ ਉੱਚ ਪੱਧਰੀ ਐਰੇ ਕੁੰਜੀ ਦੇ ਤੌਰ ਤੇ ਸ਼ਾਮਿਲ ਕਰੋ:

     'ਡੈਲੀਗੇਟਰਜ਼' => [\ Zend \ Expressive \ Application :: ਕਲਾਸ => [ਫੈਕਟਰੀ \ ਰੂਟ ਡੈਲੈਗੇਟਰ :: ਕਲਾਸ,],],    

ਹੁਣ ਤੁਸੀਂ src / blog / config / routes ਬਣਾ ਸਕਦੇ ਹੋ. php ਫਾਈਲ ਅਤੇ ਬਲੌਗ ਰੂਟਾਂ ਜੋੜਨਾ ਸ਼ੁਰੂ ਕਰੋ.

        ਪੋਸਟ ('/ ਐਲਬਮ', ਐਪ 'ਐਕਸ਼ਨ: ਐਲਬੂਕੇਰੇਟ ਐਕਸ਼ਨ: ਕਲਾਸ,' ਐਲਬਮ. 'ਬਣਾਓ);* $ app-> ਪਾ ('/ ਐਲਬਮ /: id', ਐਪ 'ਐਕਸ਼ਨ: AlbumUpdateAction :: class,' album. put ');* $ app-> ਪੈਚ ('/ ਐਲਬਮ /: id', ਐਪ 'ਐਕਸ਼ਨ: AlbumUpdateAction :: ਕਲਾਸ,' ਐਲਬਮ. ਪੈਚ ');* $ ਐਪ-> ਮਿਟਾਓ ('/ ਐਲਬਮ /: ਆਈਡੀ', ਐਪ 'ਐਕਸ਼ਨ: ਐਲਬਡ ਡਲੇਟੇ ਐਕਸ਼ਨ :: ਕਲਾਸ,' ਐਲਬਮ. ਡੇਟ ');** ਜਾਂ ਬਹੁਤੇ ਬੇਨਤੀ ਵਿਧੀਆਂ ਦੇ ਨਾਲ:** $ ਐਪ-> ਰੂਟ ('/ ਸੰਪਰਕ', ਐਪ 'ਐਕਸ਼ਨ' ਸੰਪਰਕ ਅਕਾਊਂਟ: ਕਲਾਸ, ['GET', 'POST', . ], 'ਸੰਪਰਕ');** ਜਾਂ ਸਾਰੇ ਬੇਨਤੀ ਵਿਧੀਆਂ ਨਾਲ ਨਜਿੱਠਣਾ:** $ ਐਪ-> ਰੂਟ ('/ ਸੰਪਰਕ', ਐਪ 'ਐਕਸ਼ਨ' ਸੰਪਰਕ ਅੈਕਸ਼ਨ :: ਕਲਾਸ) -> ਸੈੱਟਨਮ ('ਸੰਪਰਕ');** ਜਾਂ:** $ app-> ਰੂਟ (* '/ ਸੰਪਰਕ',* ਐਪ \ ਐਕਸ਼ਨ \ ContactAction :: ਕਲਾਸ,* ਜ਼ੈਂਡ \ ਐਕਸਪ੍ਰੈਸਿਵ ਰਾਊਟਰ \ ਰੂਟ :: HTTP_METHOD_ANY,* 'ਸੰਪਰਕ'*);* /ਬਲਾੱਗ \ ਐਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰੋ;// ਸੈੱਟਅੱਪ ਰੂਟ:$ app-> ਪ੍ਰਾਪਤ ਕਰੋ ('/ ਬਲੌਗ', ਐਕਸ਼ਨ \ BlogPostListAction :: class, 'blog_post_list');$ app-> ਪ੍ਰਾਪਤ ਕਰੋ ('/ blog / view /: blog_post_id', ਐਕਸ਼ਨ \ BlogPostViewAction :: class, 'blog_post_view');    

ਐਕਸ਼ਨਜ਼

ਫੇਰ, ਸਾਨੂੰ ਹਰੇਕ ਰੂਟ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ ਇੱਕ ਕਾਰਵਾਈ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ.

ਬਣਾਓ src / blog / src / ਐਕਸ਼ਨ / BlogPostListAction. php :

        templateRenderer = $ templateRenderer;$ this-> entityManager = $ entityManager;}ਪਬਲਿਕ ਫੰਕਸ਼ਨ ਪ੍ਰਕਿਰਿਆ (ਸਰਵਰਰੂਜਸਟ ਇੰਟਰਪ੍ਰੈੱਸ $ ਬੇਨਤੀ, ਡੈਲੀਗੇਟ ਇੰਟਰਫੇਸ $ ਡੈਲੀਗੇਟ){$ posts = $ this-> entityManager-> ਰੇਟੋਜ਼ਾਰੀ ਪ੍ਰਾਪਤ ਕਰੋ (BlogPost :: ਕਲਾਸ)-> ਲੱਭੋ   ;$ ਡਾਟਾ = ['ਪੋਸਟ' => $ ਪੋਸਟ,];ਨਵੇਂ HtmlResponse ($ $$-> templateRenderer-> ਰੈਂਡਰ ('ਬਲੌਗ :: ਸੂਚੀ', $ ਡਾਟਾ) ਵਾਪਸ);}}    

ਬਣਾਓ src / blog / src / ਐਕਸ਼ਨ / BlogPostViewAction. ');}$ blogId = $ route ਮੀਟਿਡਪ੍ਰਾਰਮਸ ['blog_post_id'];/ ** @ਵਰ ਬਲੌਗ ਪੋਸਟ $ blogPost * /$ blogPost = $ this-> entityManager-> ਲੱਭੋ (BlogPost :: ਕਲਾਸ, $ blogId);ਜੇ (! $ blogPost) {ਨਵਾਂ HtmlResponse ($ this-> templateRenderer-> ਰੈਂਡਰ ਕਰੋ ('error :: 404'), 404);}$ ਡਾਟਾ = ['ਪੋਸਟ' => $ blogPost,];ਨਵਾਂ HtmlResponse ($- >-> ਟੈਮਪਲੇਟ- ਰੈਂਡਰਰ-> ਰੈਂਡਰ ਕਰੋ ('ਬਲੌਗ :: ਵਿਊ', $ ਡਾਟਾ));}}

ਨਮੂਨੇ

ਖੋਲੋ src / blog / src / ConfigProvider. php . ਅਤੇ getTemplates ਨੂੰ ਇਸ ਦੀ ਵਿਧੀ ਨੂੰ ਅਪਡੇਟ ਕਰੋ:

     ਜਨਤਕ ਫੰਕਸ਼ਨ getTemplates   {ਵਾਪਸੀ ['ਪਾਥ' => ['ਬਲੌਗ' => [__DIR__. '/. / ਟੈਮਪਲੇਟ / ਬਲੌਗ '],],];}    

ਹੁਣ ਅਸੀਂ ਕੁਝ ਜਲਦੀ ਖਾਕੇ ਬਣਾ ਸਕਦੇ ਹਾਂ:

ਬਣਾਓ src / blog / templates / blog / list. html ਟੂਗ :

     {% @ ਲੇਆਉਟ / ਡਿਫੌਲਟ ਫੈਲਾਉਂਦਾ ਹੈ. html '%}'{% ਬਲਾਕ ਦਾ ਸਿਰਲੇਖ%} ਬਲੌਗ {% endblock%}{% ਬਲਾਕ ਸਮੱਗਰੀ%} 
{% posts ਵਿੱਚ ਪੋਸਟ ਲਈ%}

{{post. ਟਾਈਟਲ}}

{{ਪੋਸਟ. ਸਮਗਰੀ}}

{% endfor%}
{% endblock%}

ਬਣਾਓ src / blog / templates / blog / view html ਟੂਗ :

     {% @ ਲੇਆਉਟ / ਡਿਫੌਲਟ ਫੈਲਾਉਂਦਾ ਹੈ. html '%}'{% ਬਲਾਕ ਦਾ ਸਿਰਲੇਖ%} {{ਪੋਸਟ. ਟਾਈਟਲ}} | ਬਲਾੱਗ {% endblock%}{% ਬਲਾਕ ਸਮੱਗਰੀ%} 

{{ਪੋਸਟ ਟਾਈਟਲ}}

{{ਪੋਸਟ. ਸਮਗਰੀ}}

{% endblock%}

ਜੇਕਰ ਤੁਸੀਂ / ਬਲੌਗ ਯੂਆਰਐਲ ਖੋਲ੍ਹਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਕਾਰਜਸ਼ੀਲ, ਡਾਟਾਬੇਸ-ਆਧਾਰਿਤ ਬਲੌਗ ਸੂਚੀ ਹੋਵੇਗੀ ਅਤੇ ਪੰਨਿਆਂ ਨੂੰ ਦੇਖਣ ਦੇ ਯੋਗ ਹੋਣਗੇ.

ਜ਼ੈਂਡ ਐਕਸਪ੍ਰੈਸਿਵ ਮੈਡਿਊਲ ਦੀ ਰੈਪਿਡ ਡਿਵੈਲਪਮੈਂਟਜ਼ੈਂਡ ਐਕਸਪ੍ਰੈਸਿਵ ਮੈਡਿਊਲ ਦੀ ਰੈਪਿਡ ਡਿਵੈਲਪਮੈਂਟਲਿਤ ਵਿਸ਼ਾ:
ਸੁਰੱਖਿਆ ਡਿਵੈਲਪਮੈਂਟ ਵਾਤਾਵਰਣਪੱਤਰ ਅਤੇ ਪ੍ਰੈਕਟਿਸਸਡ੍ਰੂਟ ਡੀਬੱਗਿੰਗ ਅਤੇ ਸੈਮਲਾਟ

ਮਿਮਾਲਟ ਹੋਮਵਰਕ ਦੇ ਤੌਰ ਤੇ ਤੁਹਾਡੇ ਲਈ ਫੰਕਸ਼ਨੈਲਿਟੀ ਬਣਾਉਣ, ਸੰਪਾਦਿਤ ਕਰਨ ਅਤੇ ਮਿਟਾਉਣ ਦੇ ਲਾਗੂਕਰਣ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ.

ਸਿੱਟਾ

ਇਸ ਛੋਟੇ ਜਿਹੇ ਟਿਊਟੋਰਿਅਲ ਵਿਚ, ਅਸੀਂ ਦੇਖਿਆ ਕਿ ਜ਼ੈਂਦ ਐਕਸੈਸੇਜਿਵ ਦੇ ਨਾਲ ਇਕ ਰੀਡ-ਓਨਲੀ ਬਲੌਗ ਮੋਡੀਊਲ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਕਿੰਨਾ ਸੌਖਾ ਸੀ. ਕੁਝ ਮੁੱਠੀ ਭਰ ਫਾਈਲਾਂ ਅਤੇ ਕੰਮ ਦੇ 10 ਮਿੰਟ ਤੋਂ ਵੱਧ, ਸੂਚੀ ਪੇਜ ਸਾਡੇ ਪੋਸਟਾਂ ਨੂੰ ਡਾਟਾਬੇਸ ਤੋਂ ਪ੍ਰਦਰਸ਼ਤ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਹੋਰ ਰੂਟਾਂ ਲਈ ਤਿਆਰ ਹੈ ਜਿਵੇਂ ਕਿ / ਸੰਪਾਦਨ , ਅਤੇ / ਮਿਟਾਓ .

ਕੀ ਤੁਸੀਂ ਆਪਣੇ ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਜ਼ੈਂਡ ਸੈਮਵਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ? ਤੁਹਾਨੂੰ ਇਸ ਬਾਰੇ ਕੀ ਪਸੰਦ ਹੈ ਅਤੇ ਨਾਪਸੰਦ ਹੈ? ਸਾਨੂੰ ਦੱਸੋ ਕਿ ਤੁਸੀਂ ਕਿਵੇਂ ਪਹੁੰਚਦੇ ਹੋ!

March 1, 2018