Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Практическое применение ООП

Сообщения:  [1-10] 

 
 автор: tAleks   (21.01.2007 в 20:44)   письмо автору
 
   для: Sergey89   (18.01.2007 в 20:55)
 

Блин, все это конечно хорошо... но дайте ссылок, где поучиться можно уму разуму... ;)
На русском языке, плиз... а то с английским не очень дружу...

   
 
 автор: spider-x   (18.01.2007 в 21:20)   письмо автору
 
   для: Sergey89   (18.01.2007 в 20:55)
 

оффтоп: я кстати тож в этой теме перед тобой отвечал :)

   
 
 автор: Sergey89   (18.01.2007 в 20:55)   письмо автору
 
   для: spider-x   (18.01.2007 в 20:53)
 

Вот как раз для одной темы накатал пример:

plugins/plugin_1.php:

<?php
class Plugin_1 {
    
// свойтсва и методы класса
    
public function Test() {
        print 
'Это плагин 1!';
    }
}
$plugin_1 = new Plugin_1();
?>


plugins/plugin_2.php:

<?php
class Plugin_2 {
    
// свойтсва и методы класса
    
public function Test() {
        print 
'Это плагин 2!';
    }

}
$plugin_2 = new Plugin_2();
?>


Загрузчик плагинов:

<?php
class Plugin_Loader {
    private 
$plugins = array();

    public function 
Load($plug_name) {
        
$plug_name strtolower($plug_name);

        include 
'plugins/'.$plug_name.'.php';
        
$this->plugins[$plug_name] = $$plug_name;
    }

    public function 
Get($plug_name) {
        return 
$this->plugins[$plug_name];
    }
}
?>


Пример:
<?php
$plugin_loader 
= new Plugin_Loader();
$plugin_loader->Load('plugin_1');
$plugin_loader->Load('plugin_2');

$plugin_1 $plugin_loader->Get('plugin_1'); 
$plugin_2 $plugin_loader->Get('plugin_2');

$plugin_1->Test();
$plugin_2->Test();
?>

   
 
 автор: spider-x   (18.01.2007 в 20:53)   письмо автору
 
   для: tAleks   (18.01.2007 в 15:07)
 

а дайте пожалуйста примерчик применения ООП на каком нибудь скрипте... а то я совсем не догоняю ;)

   
 
 автор: tAleks   (18.01.2007 в 15:07)   письмо автору
 
   для: cheops   (18.01.2007 в 13:03)
 

Вот я думаю применить ООП в следующем случае:

У меня есть библиотека изображений. Которая явлется каталогом с бесконечной вложенностью (на Базе данных).

Выглядит она как табличка с несколькими полями.

Хочу реализовать функцию перемещения в изображений из одной группы в другую. Задумка такая:

Отмечаем изображения галочками (checkbox) которые нужно переместить. Нажимаем на кнопку "Перместить". Массив помещается в сессию. И тут включается режим выбора, и нужно сгенерировать ту же таблицу но с еще одним дополнительным полем "Выбрать", в котором будет ссылка, при клике на которой будетпроисходить выбор группы назначения.

Т.е., как я себе это представляю, получается нужно делать таблицу на с разными свойствами. При режиме выбора нужно выводить ТОЛЬКО группы, без изображений + дополнительный столбец со ссылкой выбор.

А при обычном просмотре, нужно выводить и группы и изображения. и без столбца Выбор.

Вот. Надеюсь понятно изложил.

Так вот все это я сделал, но без ООП, и получплось 2 айла. Один для простой наваигации покаталоги а второй для перемещения изобраения.

Но дальше, с развитием проекта, все это перестало рботать...... Вот я и думаю, стоити ли это все переделать с применением ООП или разбираться в том, что есть?

   
 
 автор: cheops   (18.01.2007 в 13:08)   письмо автору
 
   для: tAleks   (18.01.2007 в 12:21)
 

namespace - это пространство имён - механизм позволяющий в разных участках программы использовать одни и те же локальные имена из разных библиотек.

   
 
 автор: cheops   (18.01.2007 в 13:03)   письмо автору
 
   для: tAleks   (18.01.2007 в 12:11)
 

ООП используется для снижения объёма и сложности больших проектов. В проекте обязательно должна присутстовать иерархичность - иначе объектно-ориентированное программирование будет пустой тратой времени. Имеются у вас допустим 15 видов договоров, которые вы таскаете из базы данных или помещаете в базу данных - вот для этих договоров удобно воспользоваться объектно-ориентированным подходом. Что-то одинаковое в них всё равно имеется, а значит имеется и общий код, обрабатывающий их, который можно засунуть в базовый класс.

   
 
 автор: tAleks   (18.01.2007 в 12:21)   письмо автору
 
   для: Sergey89   (18.01.2007 в 12:15)
 

>ООП применяется для того, чтобы создавать новые "типы" данных, если так можно выразится. В PHP также применятся для организации namespace'ов.

Что такое namespace?

   
 
 автор: Sergey89   (18.01.2007 в 12:15)   письмо автору
 
   для: tAleks   (18.01.2007 в 12:11)
 

ООП применяется для того, чтобы создавать новые "типы" данных, если так можно выразится. В PHP также применятся для организации namespace'ов.

   
 
 автор: tAleks   (18.01.2007 в 12:11)   письмо автору
 
 

Я уже задавался этим вопросом, но в то время так и не разобрался в нем. Но вот время идет, и вопрос встает все острй.

Обьясните пожалуйста простым языком, где практически применять ООП? А то я чет не вьезжаю как и где его можно применить.

Или дайте ссылок плиз, но желательно чтобы на русском языке.

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования