Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ООП, наследование всех классов 
:(
    Опции темы
bars80080
Дата 14.8.2009, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(IZ@TOP @  14.8.2009,  09:55 Найти цитируемый пост)
почитай про шаблоны проектирования и MVC в частности

о шаблонах проектирования не совсем понял. (ведь не имеется же в виду шаблонизация хтмл-а?)
MVC читал. то что читал не понравилось, грубо и топорно, какие-то правила и обязательства. я старался сделать что-то максимально гибкое, где поведение отдельной части (модуля) фактически не зависимо от остальной структуры. сейчас примерно так:

заход на сайт -> переадресация средствами .htaccess на index.php -> разбор урла и определение системы в которую мы входим -> передача управления той системе 
/на данный момент их существует три: лицевая сторона сайта, админская часть, и блок независимых модулей/
каждая система сама определяет как работать дальше и соответственно имеют свои классы, но первые две имеют схожие структуры
-> далее каждая система после выполнения своих обработок передаёт управление на более низко находящиеся уровни, в первых двух блоках полученный результат выполнения идёт в качестве заполнения контента, в третьем блоке управление отдаётся сразу (на то они и независимые)
я не знаю, MVC это или нет, меня эта структура устраивает, я могу переносить разные блоки в разные части сайта средствами интерфейса, могу налагать на них определённые ограничения в доступе и т.д.
PM MAIL WWW   Вверх
IZ@TOP
Дата 14.8.2009, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(bars80080 @  14.8.2009,  11:13 Найти цитируемый пост)
я старался сделать что-то максимально гибкое

Ну тогда все понятно. Единственное, что могу тебе порекомендовать, посмотреть в сторону шаблона "Декоратор" (он же Wrapper). 


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
perloid
Дата 19.8.2009, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 14.11.2008

Репутация: -1
Всего: -1



Цитата(solenko @ 13.8.2009,  13:49)
perloid, причем тут интерфейсы, которые не могут содержать реализации?

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


Это сообщение отредактировал(а) perloid - 19.8.2009, 09:43
PM MAIL   Вверх
solenko
Дата 19.8.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Цитата(perloid @  19.8.2009,  08:42 Найти цитируемый пост)
Притом, что для данной задачи либо используются интерфейсы и абстрактные классы, либо быдлокод с промежуточными классами, поочередно наследующими код базовых.Других решений нет.

1. Тут нет задачи как таковой
2. Использование интерфейсов и абстрактных классов не делают код лучше или хуже сами по себе.
3. Использование интерфейсов и абстрактных классов ничего не меняет в архитектуре и никак не влият на структуру классов

Так что, в данном случае, интерфейс это просто умное слово, примененное не к месту.



--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
MoLeX
Дата 25.8.2009, 14:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



можно взять за основу CI, в итоге получим:
index.php
Код

function load_class( $class, $value = TRUE )
{
    static $objects = array();
         
    if( isset($objects[$class]) AND $value === TRUE )
    {
    return $objects[$class];
    }
    else
    {
     require_once($class.'.php');
                
      $objects[$class] = new $class();            
      return $objects[$class];
    }
}


function get_instance()
{
    return Controller::get_instance();
}


class Controller {

    private static $instance;

    function Controller()
    {    
        //parent::CI_Base();
        $this->_ci_initialize();
    }

    function _ci_initialize()
    {
        $classes = array(
                            'uri'    => 'uri',
                            'cache'        => 'cache',
                            'router'    => 'router'    );
        
        foreach ($classes as $var => $class)
        {
            $this->$var = load_class($class);
        }

    }
    
    public function CI_Base()
    {
        self::$instance = $this;
    }

    public static function get_instance()
    {
        return self::$instance;
    }
}

include 'index2.php';
new Index();



index2.php
Код

class Index extends Controller {
    
    final function __construct()
    {
        parent::Controller();
        echo $this->uri->uri_string();
    }
    
}


больше вариантов не вижу, или их нет, или же опыта мало (кроме использования глобал)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




[ Время генерации скрипта: 0.0988 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.