Jump to content
php.lv forumi
Sign in to follow this  
Sasa

Kā realizējams Requesta parametru parseris.

Recommended Posts

Man viss webs ir balstīts uz atsevišķiem kontroļiem kuriem ir savas atsevišķas metodes.

Index ir visam sākums, pie kura vēršas vispirms un tad attiecīgi tālāk pa ķēdīti. Bet kā labāk realizēt tādu lietu kā apmēram ir šajā forumā, var atrast tādus linkus

?app=forums&module=post&do=reply_post

.

Mana doma tāda : veidot kaut ko līdzīgu, ka ir parametrs kurš izsaucis pieprasījumu, tad parametrs ko vēlas utt, bet kā šo visu realizēt koda pusē?

Es domāju ar switchu pārbaudīt no kura kontroļa izsaukts pieprasījums tad visu Requestu nodot šim kontrolim uz apstrādi.

Share this post


Link to post
Share on other sites

Kā jau briedis teica... visticamāk Tu meklē to, ko sauc par MVC. Sakārtotība kodā. :)

 

Arī Es par Kohana!

Share this post


Link to post
Share on other sites

Tādā gadījumā es veidot piekrasījumu kā vienu parametru :

http://
who.cares
/controller/action/param1/param2/etc

 

kuru, ja pieejams mod_rewrite vai tā analogs, pārraksta kā :

http://
who.cares
/index.php
/controller/action/param1/param2/etc

un, jā, šitas strādā uz visiem browseriem .. tāds kā nabagu
url.rewrite

 

Šitāda linka saturs parādīsies iekš $_SERVER['PATH_INFO'], kuru pēc tam tu caur vienu vai vairākiem preg_match().

Ja tu izmantosi switch priekš šādām operācijām , tad to iegūsi ļoti lielu un praktiski nenotestējamu koda gabalu.

Share this post


Link to post
Share on other sites

Ja pieturās pie viena stila, tad var iztikt ar explode();

 



list($controller, $action, $param1, $param2, $param3, ...) = explode("/", "kontrolieris/actions/param1/param2/param3");

Share this post


Link to post
Share on other sites

Man arī derētu regulārās izteiksmes samācīties... tagad ir gandrīz tāpat, kā skatīties uz Brainfuck kodu. :D

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...