Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> OOP MVC
maruo  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 21 день
Карма: 1




Уж какое имя теме дать не знаю)
есть 2 (шапки) В зависимости от условия есть сессия или нет, нужно подключать нужную

Решил сделать эту проверку в родителе Controller
class Controller {

function __construct(){
if(empty($_SESSION['auth'])){
$model2 = new Model();
$view2 = new View();
$view2->generate_header('header(notauth)', $model2->get_not_auth_form());
}else{
$model2 = new Model();
$view2 = new View();
$view2->generate_header('header', $model2->get_auth_form());

}
}

}


View.php
class View {

public function generate_header($view_header,$data_header=array()){

}


public function generate($view,$datas=array()){
include F_PATCH.'/system/view/tamplate.php';
}
}


tamplate

<?php include F_PATCH.'/system/view/View_'.$view_header.'.php'; ?>
<?php
include F_PATCH.'/system/view/View_'.$view.'.php'; ?>


Но так же есть контролееры под каждую страницу свой Например index.php
Class Controller_index extends Controller{

function Action_index(){

$model = new Model_index();
$view = new View();
$view->generate('index', $model->getName());
}
}


И получается что в tamplate мы не видим Имя какой header подключить, выдает что переменная не определена. Толи конструктор не запускается (хотя мало вероятно) Толи Сам tamplate не видит имя файла. Вот не понимаю как сделать так Подскажите
Да Выяснил , tamplate не видит переменную, Как передать ее? ЧТо бы ее видно было? Без использования сессии

Это сообщение отредактировал maruo - 3.04.2016 - 17:17
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SerginhoLD  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



че?
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 703
Пользователь №: 24500
На форуме: 6 лет, 1 месяц, 12 дней
Карма: 50




Цитата (maruo @ 3.04.2016 - 13:03)
Да Выяснил , tamplate не видит переменную, Как передать ее? ЧТо бы ее видно было? Без использования сессии
  • передать как параметр во view
  • либо через реестр (паттерн Registry)


--------------------
"internet explorer всех правильней отображает страницы" ©
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 21 день
Карма: 1




SerginhoLD
а вообще это нормально то что делаю?
В родителе контструктор вызываю?
Нужно это для того что бы в каждом файле, каждой из страниц не писать в ручную какой header подключить?
какие еще способы есть?

Это сообщение отредактировал maruo - 3.04.2016 - 17:54
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
SerginhoLD  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



че?
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 703
Пользователь №: 24500
На форуме: 6 лет, 1 месяц, 12 дней
Карма: 50




Yii2 как пример посмотри

там у базового контроллера есть параметр layout

в Actions, если нужно сменить шаблон
$this->layout = 'yourNewLayout';


для отображении страницы используется
$this->render('yourView', [
'model' =>$model,
]);


внутри render уже создается класс View и учитывается какой layout использовать

по сути можно в конструкторе базового контроллера сделать твою проверку на авторизацию и менять layout по необходимости


--------------------
"internet explorer всех правильней отображает страницы" ©
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 11 месяцев, 1 день
Карма: 40




Короче, перед контроллерами должен быть FrontController, где ты должен перед вызовом конкретного контроллера кидать событие через систему объектов, которые реализуют шаблон Наблюдатель. Также нужно сделать для работы с пользователями Репозиторий, который в случае получения по пустому id будет возвращать пустой объект пользователя (смотри шаблон Null object). Все это воедино должно связываться с помощью Внедрения зависимостей реализацию можно выбрать SL.

Короче, иди пиши на каком-нибудь популярном фреймворке, там хоть увидишь эти паттерны в действии.


--------------------
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации

Мой блог
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 21 день
Карма: 1




Цитата
Короче, иди пиши на каком-нибудь популярном фреймворке, там хоть увидишь эти паттерны в действии.

Это врятли я когда буду делать, максимум изучить
В целом спасибо за подсказки
Вообще в ООП стиле писать не люблю, по душе процедурный.
Для общего саморазвития решил изучить ООП

Это сообщение отредактировал maruo - 4.04.2016 - 08:23
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 16 дней
Карма: 111




Цитата (maruo @ 4.04.2016 - 08:21)
Цитата
Короче, иди пиши на каком-нибудь популярном фреймворке, там хоть увидишь эти паттерны в действии.

Это врятли я когда буду делать, максимум изучить
В целом спасибо за подсказки
Вообще в ООП стиле писать не люблю, по душе процедурный.
Для общего саморазвития решил изучить ООП

Если ты хочешь строить свою карьеру как программист тебе в любом случае придется познать ООП и популярные фреймворки, либо пару CMS если хочешь стать Web-мастером

Надеяться что твоя процедурка тебя прокормит наивно, такие вакансии скорее исключение и вымирающий вид, для себя можешь как угодно писать) но вот когда захочешь этим кормиться ( не фриланс ) то увы придеться плясать по дудку, да и на фрилансе в 95% уже указаны технологии которые ты будешь должен использовать))

так что зависит от твоего выбора


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 21 день
Карма: 1




Писать на чужом готовом как то не очень хочется)Насчет изучить и вытащить для себя полезное не против)

Это сообщение отредактировал maruo - 5.04.2016 - 12:48
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса