EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

ООП плагины в php =(

 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
ООП плагины в php =(
Автор Сообщение
noLove
Два пингвина
Два пингвина


Зарегистрирован: 25.04.2007
Сообщения: 352

18114 Монеты

СообщениеДобавлено: Сб, 24 Янв, 2009 04:51    Заголовок сообщения: ООП плагины в php =( Ответить с цитатой

собственно, как реализовать возможность субжа?

кто нибудь ставкивался с этим делом?

как написать простой процедурный плагин - йа знаю, но это как то не интересно Smile
_________________
Друзья, уважайте труд других Wink
http://xternalx.com - моя хомпага
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Сб, 24 Янв, 2009 05:57    Заголовок сообщения: Ответить с цитатой

noLove
что вы подразумеваете под плагинами? Расширения на C++?
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
noLove
Два пингвина
Два пингвина


Зарегистрирован: 25.04.2007
Сообщения: 352

18114 Монеты

СообщениеДобавлено: Сб, 24 Янв, 2009 06:10    Заголовок сообщения: Ответить с цитатой

сорру что не уточнил, подразумеваю плагины в виде php скриптов для уже существующего чего то там, написанного так же на php
_________________
Друзья, уважайте труд других Wink
http://xternalx.com - моя хомпага
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Сб, 24 Янв, 2009 06:47    Заголовок сообщения: Ответить с цитатой

Способов реализовать - масса.
В RegSubmitter я использовал самый простой подход. Создавался класс-прототип всех модулей, реализующий общий для всех базовый интерфейс. Каждый модуль лежит в отдельном файле, имя файла совпадает с именем файла. Загрузчик модулей проходится по файлам, подгружает их и создает массив объектов-модулей. А потом с этими модулями работаю.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
noLove
Два пингвина
Два пингвина


Зарегистрирован: 25.04.2007
Сообщения: 352

18114 Монеты

СообщениеДобавлено: Сб, 24 Янв, 2009 15:32    Заголовок сообщения: Ответить с цитатой

что значит "имя файла совпадает с именем файла"? Embarassed
_________________
Друзья, уважайте труд других Wink
http://xternalx.com - моя хомпага
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DEXIF
#!/bin/bash
Согнул ложку


Зарегистрирован: 27.09.2006
Сообщения: 919
Откуда: Минск
49930 Монеты

СообщениеДобавлено: Сб, 24 Янв, 2009 16:07    Заголовок сообщения: Ответить с цитатой

Я думаю имелось ввиду имя модуля...
_________________


S
|D|EG| Let's Rock! | XAP в ЛИЧКУ, SAPE
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Сб, 24 Янв, 2009 16:21    Заголовок сообщения: Ответить с цитатой

Очепятался... Имелось ввиду имя файла совпадает с именем класса.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
noLove
Два пингвина
Два пингвина


Зарегистрирован: 25.04.2007
Сообщения: 352

18114 Монеты

СообщениеДобавлено: Сб, 24 Янв, 2009 19:38    Заголовок сообщения: Ответить с цитатой

спасибо! раскурил тему! сейчас юзербарчики свои на плагиновую основу перевожу Smile
_________________
Друзья, уважайте труд других Wink
http://xternalx.com - моя хомпага
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Александр Михалицын
Согнул ложку
Согнул ложку


Зарегистрирован: 22.08.2008
Сообщения: 860

18841 Монеты

СообщениеДобавлено: Вс, 01 Фев, 2009 14:28    Заголовок сообщения: Ответить с цитатой

Alek$,
ммм. А можно поподробнее.
Тоесть ты реализовал абстрактный класс:
Код:
abstract class Module {
   public function method1();
   public function method2(); // Реализуем интерфейс абстрактного класса -- виртуальные методы
}

Потом, реализовал постепенно каждый из модулей:
Код:
class Module1 extends Module {
   // реализуем те же методы, что и в абстрактном, но уже с "телом".
   public function method1() {
   //такс..
   }
}

Лоадер модулей:
Код:
<?php
$module_name = $_GET['module'];
$module_ex = new $module_name();
// начинаем работать с модулем...
$module_ex->method1();
?>


Оно?
_________________
Пригласительные коды
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Пн, 02 Фев, 2009 07:19    Заголовок сообщения: Ответить с цитатой

Александр Михалицын писал(а):
Alek$,
ммм. А можно поподробнее.
Тоесть ты реализовал абстрактный класс:
Код:
abstract class Module {
   public function method1();
   public function method2(); // Реализуем интерфейс абстрактного класса -- виртуальные методы
}

Потом, реализовал постепенно каждый из модулей:
Код:
class Module1 extends Module {
   // реализуем те же методы, что и в абстрактном, но уже с "телом".
   public function method1() {
   //такс..
   }
}

Лоадер модулей:
Код:
<?php
$module_name = $_GET['module'];
$module_ex = new $module_name();
// начинаем работать с модулем...
$module_ex->method1();
?>


Оно?

Не совсем, лоадер модулей сокрее всего должен проходить по опеределенной директории например patche, где получить все имена классов в массив, вероятнее всего у каждого класса должен быть метод возращаюший, что он делает + методы запускающие класс, но кроме методов абстракного класса классы могут иметь и другие public методы.
Пример подключения модулей в главное меню сайта:
Код:
abstract class Menu {
   public function getName();
   public function getUrl();
   public function workText();
}

class ModulePhoto extends Menu {
   public function getName(){return 'фото галерея';}
   public function getUrl(){return 'photo';}
   public function workText(){return 'Здесь будет фото галерея!'};
}

class ModuleArticle extends Menu {
   public function getName(){return 'каталог статей';}
   public function getUrl(){return 'article';}
   public function workText(){return 'Здесь будет каталог статей!'};
}

class ModuleFactory {
   public function printAllModule(){
        //получаем имена всех классов из каталога M в массив a
        foreach($a  as $name){
              include $name;
              tmp = new ($name);
              echo '<a href="?type='.tmp.getUrl().'">'.tmp.getName().'</a>';
        }     
   }

   public function workModule(){
       $type = $_GET['type'];
        foreach($a  as $name){
              include $name;
              tmp = new ($name);
              if(tmp.getUrl()==$type) echo tmp.getWork();
   }
}


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

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
noLove
Два пингвина
Два пингвина


Зарегистрирован: 25.04.2007
Сообщения: 352

18114 Монеты

СообщениеДобавлено: Пн, 02 Фев, 2009 13:11    Заголовок сообщения: Ответить с цитатой

у меня эти плагины работают примерно вот как здесь написано: http://xternalx.7pe.net/content/view/25/1/
_________________
Друзья, уважайте труд других Wink
http://xternalx.com - моя хомпага
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Пн, 02 Фев, 2009 13:14    Заголовок сообщения: Ответить с цитатой

noLove писал(а):
у меня эти плагины работают примерно вот как здесь написано: http://xternalx.7pe.net/content/view/25/1/

Ну именно этот метод я описал выше Smile
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Вт, 03 Фев, 2009 06:51    Заголовок сообщения: Ответить с цитатой

Веденин
ты читаешь мои мысли Smile
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Вт, 03 Фев, 2009 12:27    Заголовок сообщения: Ответить с цитатой

Alek$ писал(а):
Веденин
ты читаешь мои мысли Smile

Ага, телепат в пятом поколении Laughing
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
Страница 1 из 1

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group


Рейтинг SIMPLETOP.NET