ФорумПрограммированиеPHP для идиотов → Подключение разных модулей (или альтернатива switch case)

Подключение разных модулей (или альтернатива switch case)

  • bugsb

    Сообщения: 13 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2009 г. 23:03

    обычно содержимое страницы у меня меняется в зависимости от переменной $module

    switch ($module)
    {
    case "pages":
    include "./module/pages.php";
    break;
    case "registration":
    include "./module/users/reg.php";
    break;
    case "login":
    include "./module/users/login.php";
    break;
    default:
    include "./module/pages.php";
    }


    но сейчас стал понимать что так можно организовывать только маленькие проекты, т.к. если есть регистрация, авторизация, обычные страницы, фотогалерея, новостная лента и т.д., то получается вообще хлам… а если нужно добавить какой то модуль, нужно незабыть прописать в switch case его

    как обычно это реализуется в больших проектах? желательно так, чтобы модули можно было подключать не изменяя код руками постоянно)
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 23:05, спустя 2 минуты 13 секунд

    записывай модули в базу данных.

    при подключении модуля пускай он записывает себя в определенную таблицу с модулями в бд. а потом делай запрос в таблицу: если модуль есть в таблце, то выводи его.
  • bugsb

    Сообщения: 13 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2009 г. 23:15, спустя 9 минут 57 секунд

    module_id | name | url
    +++++++++++++++++++++++++++++++++++++
    1 Контент ./module/pages.php
    2 Регистрация ./module/users/reg.php
    3 Авторизация ./module/users/login.php
    4 Фотогалерея ./module/photos/index.php

    вот так?
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 23:26, спустя 10 минут 12 секунд

    $inc = './module/'.$module.'.php';
    if (file_exists($inc))
    {
    include $inc;
    }
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 23:39, спустя 13 минут 6 секунд


    module_id | name                | url
    +++++++++++++++++++++++++++++++++++++
    1               Контент           ./module/pages.php
    2               Регистрация    ./module/users/reg.php
    3               Авторизация    ./module/users/login.php
    4               Фотогалерея    ./module/photos/index.php

    вот так?


    регистрация и авторизация, на мой взгляд, тут относится к одному модулю users, а reg и login - это действия (action) модуля users.

    вобще советую посмотреть, как организуется подключение модулей на примере фреймворков (или просто начать использовать их, они значительно упрощают жизнь). лично я советую cakephp.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 23:40, спустя 58 секунд


    записывай модули в базу данных.

    при подключении модуля пускай он записывает себя в определенную таблицу с модулями в бд. а потом делай запрос в таблицу: если модуль есть в таблце, то выводи его.
    ты жумлу делал? :-D
    Сапожник без сапог
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 23:42, спустя 2 минуты 6 секунд



    записывай модули в базу данных.

    при подключении модуля пускай он записывает себя в определенную таблицу с модулями в бд. а потом делай запрос в таблицу: если модуль есть в таблце, то выводи его.
    ты жумлу делал? :-D


    кстати, да, очень давно =) потом понял, что все это бред и начал использовать кейк =)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 23:43, спустя 1 минуту 7 секунд

    Sinkler, тортпхп! класс! тортами банчить на пхп)
    Сапожник без сапог
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 23:48, спустя 4 минуты 54 секунды

    phpdude, извиняюсь за нескромный вопрос, что такое банчить? =)
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 7 ноября 2009 г. 23:50, спустя 2 минуты 37 секунд


    phpdude, извиняюсь за нескромный вопрос, что такое банчить? =)
    продовать, барыжить ))))
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 23:52, спустя 1 минуту 38 секунд



    phpdude, извиняюсь за нескромный вопрос, что такое банчить? =)
    продовать, барыжить ))))

    о, спасибо за разьяснения =)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 23:58, спустя 5 минут 43 секунды


    phpdude, извиняюсь за нескромный вопрос, что такое банчить? =)
    сори, я забыл что ты не суровый челябанский парень =))
    Сапожник без сапог
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 8 ноября 2009 г. 0:02, спустя 3 минуты 48 секунд



    phpdude, извиняюсь за нескромный вопрос, что такое банчить? =)
    сори, я забыл что ты не суровый челябанский парень =))

    не стоит извиняться, я с краснодара =)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 ноября 2009 г. 0:09, спустя 7 минут 15 секунд

    Sinkler, суровый краснодарский огуречик! =)))
    Сапожник без сапог
  • bugsb

    Сообщения: 13 Репутация: N Группа: Кто попало

    Spritz 8 ноября 2009 г. 0:12, спустя 3 минуты 37 секунд

    блин… имейте совесть не флудить…

Пожалуйста, авторизуйтесь, чтобы написать комментарий!