ФорумПрограммированиеPHP для идиотов → Как грамотно организовать работу с плагинами в своем движке?

Как грамотно организовать работу с плагинами в своем движке?

  • mario

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

    Spritz 15 мая 2009 г. 2:22, спустя 22 часа 12 минут 46 секунд


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

    krasun, только начинаю писать

    так тогда по моему(!я могу быть не прав!) это есть модуль, а плагин это то что писали выше…
  • md5

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

    Spritz 15 мая 2009 г. 2:28, спустя 5 минут 35 секунд

    баба — core
    сиськи — модуль
    силиконовые имплантанты — плагин

    уроки архитектуры приложений на пыха.ру!
    все умрут, а я изумруд
  • phpdude

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

    Spritz 15 мая 2009 г. 2:28, спустя 38 секунд


    баба — core
    сиськи — модуль
    силиконовые имплантанты — плагин

    уроки архитектуры приложений на пыха.ру!
    хуй забыл
    Сапожник без сапог
  • Frozzeg

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

    Spritz 15 мая 2009 г. 2:34, спустя 5 минут 19 секунд


    баба — core
    сиськи — модуль
    силиконовые имплантанты — плагин

    уроки архитектуры приложений на пыха.ру!

    наглядно, спасибо)
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 15 мая 2009 г. 2:57, спустя 23 минуты 13 секунд


    хуй забыл

    хуй - это уже подключаемый компонент чужой системы через один из доступных портов )))
  • phpdude

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

    Spritz 15 мая 2009 г. 2:58, спустя 1 минуту 11 секунд



    хуй забыл

    хуй - это уже подключаемый компонент чужой системы через один из доступных портов )))
    тогда уж плагинов/модулей)
    Сапожник без сапог
  • phpdude

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

    Spritz 15 мая 2009 г. 2:59, спустя 33 секунды

    50|05!!!
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 15 мая 2009 г. 3:03, спустя 4 минуты 3 секунды

    helldude, да не, через порты подключается. Все потому что доступ дан не всем, а часто в защищенном режиме, иногда даже с ССЛ-защитой при передаче данных, а не только по-паролю :)
  • phpdude

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

    Spritz 15 мая 2009 г. 3:14, спустя 11 минут 26 секунд


    helldude, да не, через порты подключается. Все потому что доступ дан не всем, а часто в защищенном режиме, иногда даже с ССЛ-защитой при передаче данных, а не только по-паролю :)
    ужас.
    Сапожник без сапог
  • krasun

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

    Spritz 17 мая 2009 г. 17:52, спустя 2 дня 14 часов 37 минут


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


    я просто перевел module, plugin, переводится одинаково, но я примерно так же привык это понимать
  • krasun

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

    Spritz 17 мая 2009 г. 18:07, спустя 14 минут 44 секунды

    напишу, как я это понимаю, и как предполагаю  сделать.

    есть у нас, например, ядро Kernel - базовая функциональность.

    при запуске системе

    Kernel::loadModules(); // загружка всех зарегистрированных модулей, плагинов


    далее определение url, возьмем, за пример: http://ojaebu.com/[news]/latest

    [news] - пространство имен, которое принадлежит модулю news, далее работа передается модулю,
    в это время он может обратится к бд, если ядро это разрешит (например, при большой нагрузке, можно не допуске к БД, некие модули,
    которые заранее были описаны, что работа без бд для них не критична), так же модуль может обратится к другому модулю, например к модулю

    Page, если в модуле Page, заранее определены методы, например,

    if (Kernel::isPublic('Page')) {

       $page = Kernel::getModule('Page');
     
       $page->addToContent($this->news->html); // это очень грубо
    }


    Само описание модуля

    class News extends Module
    {
       $namespace = 'news'; // наймспейс в урл
       
       public function run()
       {
           // будет вызван, если в урл будет /[news]/
       }  
    }

    и так далее, сейчас не могу думать, голова болит

  • Trej Gun

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

    Spritz 18 мая 2009 г. 3:46, спустя 9 часов 39 минут 50 секунд

    наймспейс в урл


    хедкраба сними
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 18 мая 2009 г. 4:37, спустя 50 минут 50 секунд

    по этому поводу 2 вопроса.
    1) нахрена подгружать все модули? Может лучше сделать класс который подгружает только необходимые модули.
    (о необходимости модулей для данной ситуации класс узнает из БД куда мы эту инфу собственноручно внесли)
    2) допустим есть модуль page который показывает страницы. и на странице я хочу показывать новость из модуля news.
    как вы это реализуете?
    class page 
    {

    public function show()
    {
    $news= new news();
    $news->show();
    }
    }
    (у мавра свой метод получения доступа к классам =) кстати пользуюсь. Очень удобно. Спасибо =))
    Так? А если я потом передумал новость на странице показывать, в код лесть?
  • Frozzeg

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

    Spritz 18 мая 2009 г. 4:59, спустя 21 минуту 33 секунды

    можно сделать файл конфигурации урл для модулей)
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 18 мая 2009 г. 5:00, спустя 1 минуту 11 секунд

    Заччем же файл? MySQL куда гибче =)

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