ФорумПрограммированиеPHP для идиотовPHP и ООП → Жду критики предложений

Жду критики предложений

  • uralkid

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

    Spritz Дек. 29, 2010, 3:13 д.п.

    Чеканите мой вьювер.

    
    <?php
    
    class View {
    
    	protected $_block = array();
    	
    	private static $_instance = FALSE;
    
    	protected $_data = array();
    
    	private function __construct(){
    	}
    
    	public function GetInstance(){
    		if (self::$_instance === false) {
    			self::$_instance = new View;
    		}
    		return self::$_instance;
    	}
    
    	public function SetViewClassFile($file){
    		$file = 'application/view/'.$file.'.php';
    		if(file_exists($file)){
    			require_once($file);
    		}
    		else  {
    			throw new Exception('���� '.$name.' �� ������');
    		}
    	}
    
    	public function Set($name,$data){
    		$this->_block[$name] = $data;
    	}
    
    	public function __call($name,$val){
    	
    		if(array_key_exists($name,$this->_block)){
    			$this->setViewClassFile($name);
    			return new $name($this->_block[$name]);
    		}
    	}
    	
    	public function __set($name,$value){
    
    		$this->_block[$name] = $value;
    	}
    	
    	public function __get($name){
    		return $this->_block[$name];
    	}
    	
    	public function display() {
    		$this->render();
    	}
    	
    	public function render() {
    		require_once('application/templates/index.tpl');
    	}
    	
    	
    }
    
    ?>
    



    
    <?php
    
    class main {
    	public $data;
    		
    	public function __construct($data){
    		$this->data = $data;	
    		$this->SetFile();
    	}
    	
    	public function SetFile(){
    		include('Application/templates/main.tpl');
    	}
    	
    }
    
    ?>
    


    
    <?php
    
    include('view.php');
    
    $view = View::GetInstance();
    
    
    $main[] = array('title'=>'Main Block','text'=>'Text Main Block');
    $main[] = array('title'=>'Main Block2','text'=>'Text Main Block2');
    
    $view->main = $main;
    
    $view->display();
    ?>
    


    1. www_1.rar (23)
  • master

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

    Spritz Дек. 29, 2010, 3:39 д.п., спустя 25 минут 35 секунд

    на троечку
    не всё полезно, что в swap полезло
  • uralkid

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

    Spritz Дек. 29, 2010, 3:59 д.п., спустя 20 минут 17 секунд

    Подкинешь идей?
  • artoodetoo

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

    Spritz Дек. 29, 2010, 6:30 д.п., спустя 2 часа 30 минут 46 секунд

    Для чего здесь синглтон?
    ιιlllιlllι унц-унц
  • uralkid

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

    Spritz Дек. 29, 2010, 8:27 д.п., спустя 1 час 57 минут 1 секунду

    Вобщем суть такая, есть основной класс main, есть классы такие как db,router,session,view они все синглтоны. Так вот основной класс смотрит конфиг и подключает в массив $lib db,router и т.д. далее роутер занимаеться роутингом урлов и запускает тот или инной контроллер, в контроллере вызывается вызывает модель и потом полученные данные отправляет вьюверу. вот как то так.
  • Frozzeg

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

    Spritz Дек. 29, 2010, 8:36 д.п., спустя 9 минут 29 секунд

    ппц, я подумал это вася_ц
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • uralkid

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

    Spritz Дек. 29, 2010, 8:42 д.п., спустя 5 минут 33 секунды

    слава богу что не муха ц
  • md5

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

    Spritz Дек. 29, 2010, 9 д.п., спустя 18 минут 20 секунд

    фу блять) я уже испугался)
    все умрут, а я изумруд
  • ivanscm

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

    Spritz Дек. 29, 2010, 9:03 д.п., спустя 2 минуты 41 секунду


    ппц, я подумал это вася_ц
    аха я тож. потом когда мастер сказал на 3. я посмотрел на ник :)uralkid, меняй аватар, ты вводишь нас в заблуждение.
    С возвращением, Пiха! hyperoff.ru - качественный хостинг php
  • uralkid

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

    Spritz Дек. 29, 2010, 9:11 д.п., спустя 8 минут 4 секунды

    Ну че киньте пару коментов к коду.
  • ivanscm

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

    Spritz Дек. 29, 2010, 9:28 д.п., спустя 17 минут 16 секунд

    uralkid, нет анимации
    С возвращением, Пiха! hyperoff.ru - качественный хостинг php
  • Frozzeg

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

    Spritz Дек. 29, 2010, 9:29 д.п., спустя 1 минуту 6 секунд

    фейс контроль
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • ivanscm

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

    Spritz Дек. 29, 2010, 9:31 д.п., спустя 1 минуту 23 секунды

    uralkid, покажи истиное лицо.
    гы 666
    С возвращением, Пiха! hyperoff.ru - качественный хостинг php
  • uralkid

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

    Spritz Дек. 29, 2010, 9:46 д.п., спустя 15 минут 17 секунд

  • master

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

    Spritz Дек. 29, 2010, 10:11 д.п., спустя 24 минуты 59 секунд

    Подкинешь идей?

    вьювер должен возвращать строку а не печатать. у него должна быть одна единственная функция
    
    interface iViewer {
      /**
       * @param string $template
       * @param array $data
       * @return string
       */
      function fetch($template, array $data=array());
    }
    


    при парсинге шаблона должны отключаться нотайсы и варнинги
    Спустя 240 сек.
    синглтон не нужен. уж если так хочется и лень писать нормальную фабрику - используй синглтон фабрики, но не в том же классе
    не всё полезно, что в swap полезло

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