PHP ООП Передача переменных из дочернего класса в родительский абстрактный

(Ответов: 16, Просмотров: 3447)
Страница 2 из 2 Первая 12
  1. Sunshine reggae Аватар для OKyJIucT
    • Регистрация: 02.09.2011
    • Сообщений: 3,240
    • Репутация: 1830
    • Webmoney BL: ?
    cOAPerator, а что за ошибка? Не "Warning: Cannot modify header information - headers already sent by .." случайно?

    Если это так, то просто надо убрать все echo и print (print_r) в коде. Я обычно на стадии отладки добавляю такие команды, чтобы отслеживать, что где и как выполняется. Именно они и мешают.

    Как вариант, попробуйте заменить

    header("Location: /");
    на
    echo '<script>window.location.href = "/";</script>';

    Это, конечно, велосипед, но проблему должно решить. Хотя я бы не стал так писать :)
    • 0
  2. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    OKyJIucT, да именно Cannot modify header information...

    редиректить после разлогивания яваскриптом это нонценс

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

    либо как изменить логику, чтобы работал header("Location: /"); либо чтобы отпала неоходимость редиректить.

    я уже голову сломал )
    Последний раз редактировалось cOAPerator; 10.07.2013 в 21:31.
    • 0
  3. Sunshine reggae Аватар для OKyJIucT
    • Регистрация: 02.09.2011
    • Сообщений: 3,240
    • Репутация: 1830
    • Webmoney BL: ?
    cOAPerator, может, проверять на странице кабинета, залогинен ли юзер. если куков или сессии соответствующей нет - редиректить на главную. Либо вывести сообщение "Данная страница доступна только для авторизованных пользователей. Пожалуйста, авторизуйтесь" и ссылку на страницу с авторизацией. Во втором случае и редирект никакой не нужен будет, да и юзер не будет недоумевать, Если сессия кончится, и его вместо кабинета будет посылать на главную))
    • 0
  4. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Цитата Сообщение от OKyJIucT Посмотреть сообщение
    может, проверять на странице кабинета, залогинен ли юзер
    так и делал, когда писал сайт в процедуре, и если не сессия заканчивалась, редиректил на главную.

    в ООП подходе так не получается, так как страница генерится несколькоми классами. и до редиректа грузится часть страницы.

    Цитата Сообщение от OKyJIucT Посмотреть сообщение
    Либо вывести сообщение
    вот нехотю так делать ) душа не лежит )
    • 0
  5. Студент
    • Регистрация: 24.01.2013
    • Сообщений: 94
    • Репутация: 14
    • Webmoney BL: ?
    Какая ошибка? То что отправлен Header? А зачем Вы лепите инклуды с шаблоном в то, что у Вас является моделью? Использовать абстрактные классы в PHP это еще не значит, что Вы соблюдаете парадигму MVC.
    PHP код:
    protected function get_header($easytooltip){
            
    //добавил это
            
    $title $this->title;
            
    $meta_description $this->meta_description;
            
    $meta_keywords $this->meta_keywords;
            include_once (
    "template/hyperione/meta.php");
            include_once (
    "template/hyperione/header.php");
        } 
    • 0
  6. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Цитата Сообщение от ap0stal Посмотреть сообщение
    Использовать абстрактные классы в PHP это еще не значит, что Вы соблюдаете парадигму MVC.
    согласен, целиком и полностью, но.. пока я не пытаюсь ее соблюсти.. по крайней мере на начальном этапе переписывания всего сайта с процедурного стиля в ООП.
    пока я пытаюсь освоить логическую составляющую этой парадигмы и при переписывании сайта осваиваю возможности ООП.
    А так как многое из того, что написано в процедуре, пока не укладывается в мое понимание "как написать в ООП" то приходится задавать вопросы.
    В конечном счете получится полностью написаный движек сайта с соблюденной парадигмой ООП.

    не хотел так много писать, но пришлось, видимо это не так очевидно с 1 поста.
    • 0
  7. Студент Аватар для bestxp
    • Регистрация: 21.04.2011
    • Сообщений: 91
    • Репутация: 29
    • Webmoney BL: ?
    cOAPerator, думаю тогда заодно познакомиться стоит с SOLID . это относиться по большей части не только к ооп, но и вообще к программированию. Для начала тебе бы посоветовал соблюдать S и L . (single responsibility principle)Принцип единой ответственности - когда один класс выполняет только одну операцию, и буква L когда наследники не изменяют поведение родителя никаким образом, а только дополняют и расширяют его

    в первом случае S
    и твой класс уже его нарушает, у него ответственность формирование header сайта, сбор данных и обработка их, и хранение в себе до вывода, следовательно тебе нужен еще один класс например headerWriter который принимает класс header и берет из него данные и правильно отображает

    Что-то то в в таком стиле
    • 0
Страница 2 из 2 Первая 12

Похожие темы

Темы Раздел Ответов Последний пост
Передача переменных в функциях
Web программирование 3 11.01.2013 16:10
Требуется помощь с настройкой вывода дочернего элемента в меню Joomla
Joomla 6 12.12.2012 19:50
Курс Настройка шаблона WordPress премиум-класса Striking
Дизайн сайтов, графика 1 17.10.2011 01:22
Быдлодизайн, как особенность коммерчески успешного продукта эконом класса
Оффтоп и свободные темы 5 17.06.2011 13:42

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры