php класс роутинга

Discussion in 'PHP' started by barnaki, 16 Jan 2011.

  1. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    добрые люди поделись кто может. может у кого есть грамотный класс роутинга (для разбития Url на части, и в зависимости от значений в нем подключения разных классов). надо cms написать. я копи паст не буду делать. мне просто посмотреть как это делается грамотно. тк не одного такого класса некогда не писал. не охота 100 его дописывать.
     
  2. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    возьмите фреймворк
    например, yii или kohana
     
  3. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    barnaki какой класс, простите? И для чего?

    Разбитие урл на части делается так: http://php.net/parse_url http://php.net/explode
     
    _________________________
  4. necroleptick

    necroleptick Member

    Joined:
    3 Jan 2011
    Messages:
    105
    Likes Received:
    11
    Reputations:
    0
    он хочет шобы MVC было и обязательно в полном ООП
     
  5. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    2 necroleptic прямо в точку.
    2 gifts. ну чтобы класс разбивал url . и вызывал в зависимости от того что там передано нужные классы. допустим url вида www.some.com/watercity/imarket.php
    и чтобы оно сработывало так. для города watercity вызывается его рынок (imarket). ну что то типа того. может есть такой готовый у кого.
     
  6. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    800
    Likes Received:
    145
    Reputations:
    73
    mod_rewrite мб?
     
  7. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    не мод реврайт не совсем то что я хочу. хотя тоже вариант.
     
  8. necroleptick

    necroleptick Member

    Joined:
    3 Jan 2011
    Messages:
    105
    Likes Received:
    11
    Reputations:
    0
    У меня с пониманием MVC непонятки, мне его прелести кажутся сомнительными, как оно делается можно увидеть в Zend'е. _http://framework.zend.com/manual/ru/
     
  9. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,022
    Likes Received:
    524
    Reputations:
    935
    http://habrahabr.ru/blogs/php/31270/
     
    _________________________
  10. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Ты хочешь ЧПУ написать? Юзай mod_rewrite и не извращайся.
    Только причём тут модель MVC? Или у тебя MVC только со словом "class" ассоциируется?

    Ловишь uri, отправляешь в свой написанный класс, там разбиваешь explode('/', $uri), а дальше делай с этими значениями всё, что требуется.
     
  11. necroleptick

    necroleptick Member

    Joined:
    3 Jan 2011
    Messages:
    105
    Likes Received:
    11
    Reputations:
    0
    PHP:
    <?php
    // ...

    $route = @$_GET["route"];
    $route preg_replace("/\/{2,}/""/"$route);
    $uri explode("/"$route);
    switch (
    $uri[0]) {
        case 
    "admin":
            
    // ...
            
    break;
        
    // ещё парочка кэйсов
        
    default:
            
    // тут что-то делаем
            
    break;
    }

     
  12. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    @$_GET['route'] ?
    а почему не $_SERVER['REQUEST_URI'] ?
     
  13. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    130
    Reputations:
    4
    еще вопросик. если будут все параметры передаваться через url. и допустим url вида www.some.com/watercity/imarket.php так вот watercity это город такой. а допустим есть еще один город new reno. то как защитится чтобы не перепрыгивали из одного города в другой не путешествуя а просто изменив url. в игре есть координаты мест. x,y. мне в голову приходит только что с каждым ходом в сессию запоминаются ходы. и проверяется не больше 1 ли разница в этой клетке и предыдущей. вроде нормально но может у кого есть другие вариатны. чтобы не прыгали по городам и по карте
     
    #13 barnaki, 18 Jan 2011
    Last edited: 18 Jan 2011
  14. necroleptick

    necroleptick Member

    Joined:
    3 Jan 2011
    Messages:
    105
    Likes Received:
    11
    Reputations:
    0
    подумай сам