Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: тестовый класс ООП [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2012 - 18:11:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




digi пишет:
registry

У него реализация немного другая.
 
 Top
Мелкий Супермодератор
Отправлено: 21 Сентября, 2012 - 18:32:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




and_07 пишет:
что в данном случае уместнее использовать композицию или наследование

Сам синглтоновый класс напрямую.


-----
PostgreSQL DBA
 
 Top
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2012 - 18:37:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Вот более правильный вариант моего примера:
PHP:
скопировать код в буфер обмена
  1.  
  2. class DB {
  3.  
  4.       private static $_getInstance = array();
  5.          
  6.           // Данные для коннектов баз данных
  7.           private static $_data_connects = array(
  8.          
  9.                                   'default_db_name' => array(
  10.                                       'host' => 'localhost',
  11.                                       'user' => '',
  12.                                           'pass' => ''
  13.                                   ),
  14.                                  
  15.                                   'myDatabase2' => array(
  16.                                       'host' => '',
  17.                                       'user' => '',
  18.                                           'pass' => ''
  19.                                   ),
  20.                                  
  21.                                   'myDatabase3' => array(
  22.                                       'host' => '',
  23.                                       'user' => '',
  24.                                           'pass' => ''
  25.                                   )
  26.                  );
  27.          
  28.          
  29.          
  30.           public static function getInstance($db_name = 'default_db_name')
  31.           {  
  32.                   try
  33.                   {  
  34.                           if(!isset(self::$_data_connects[$db_name]))
  35.                           {
  36.                                   throw new Exception($db_name);
  37.                           }
  38.                           else
  39.                           {
  40.                                   if(!isset(self::$_getInstance[$db_name]))
  41.                                   self::$_getInstance[$db_name] = new self($db_name);
  42.                                  
  43.                                   return self::$_getInstance[$db_name];
  44.                           }  
  45.                   }
  46.                   catch (Exception $e)
  47.                   {
  48.                         echo 'Указано имя не существующей БД: '.
  49.                              '<b>' . $e->getMessage() . '</b>';
  50.                   }
  51.           }
  52.          
  53.          
  54.          
  55.           final private function __construct($db_name)
  56.           {
  57.                   // Connect  
  58.                  
  59.                   self::$_data_connects[$db_name]['host'];
  60.                   self::$_data_connects[$db_name]['user'];
  61.                   self::$_data_connects[$db_name]['pass'];
  62.           }
  63.  
  64.           final private function __clone(){}
  65.           final private function __wakeup(){}  
  66. }
  67.  
  68.  
  69.  

(Отредактировано автором: 21 Сентября, 2012 - 20:13:27)

 
 Top
and_07
Отправлено: 21 Сентября, 2012 - 20:00:06
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




Всем доброго времени суток всем спасибо еще раз
понял все недочеты
но хотел бы уточнить суть данного тестового класса
неоходимо было написать гостевую книгу с возможностью добовлять удалять и редактировать ну и банить по IP ( и использовать как можно больше ООП)
база не имеет значения
впринципе я старался реализовать как можно более удобный вариант интерфейса гостевой книги (ну и не уделил должного внимания на безопастность в БД Недовольство, огорчение(( )
 
 Top
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2012 - 20:09:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




and_07, есть хорошая книжка:
"PHP. Объекты шаблоны и методики программирования. Мэтт Зандстра"
В сети есть только 2е издание, в продаже 3е.
Не пожалейте денег, купите )
Она стоит 655 р.
Я сам её месяц назад заказывал.
Читаю, зачитаться не могу )
 
 Top
and_07
Отправлено: 21 Сентября, 2012 - 20:44:32
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




Спасибо armancho7777777 за совет
обязательно посмотрю данную книгу
Вас что то насторожило в коде помимо класса DataClass
данный пример старался писать на у ровне интерфейсов а не классов
(в данный момент читаю "паттерны проектирования эрика фримена и элизабет фримен")

(Отредактировано автором: 21 Сентября, 2012 - 20:49:44)

 
 Top
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2012 - 20:46:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Я в целом )
Возьмёте эту книгу, начнёте только читать и уже многие вопросы отпадут сами собой ))
(Добавление)
armancho7777777 пишет:
В сети есть только 2е издание

Т.е. в электронном виде для скачивания.
Но лучше 3е издание.
(Добавление)
Я в ozon-е заказывал.
(Добавление)
А относительно Вашего класса Вам уже Мелкий и OrmaJever в первых своих постах всё рассписали.
Ну, а я пример показал.
 
 Top
and_07
Отправлено: 21 Сентября, 2012 - 20:54:09
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




Ясно Всем СПАСИБО думаю тема закрыта до новой реализации класса DataClass
 
 Top
Bio man
Отправлено: 21 Сентября, 2012 - 22:12:45
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




armancho7777777 пишет:
Но лучше 3е издание.
Они почти ничем не отличаются. Все новые темы затронуты поверхностно. Но бумажное издание полюбому лучше чем сканы, это точно. Если нет или жалко денег то можно и 2е издание почитать а пробелы заполнить мануалом
 
 Top
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2012 - 23:42:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Ну по крайней мере про namespace там точно нет.
Пока читаю.
Ну и там на 100 страниц больше Радость
 
 Top
Okula
Отправлено: 22 Сентября, 2012 - 00:26:24
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




armancho7777777, всё что нужно знать про пространства имён написано в мануале.
 
 Top
armancho7777777 Супермодератор
Отправлено: 22 Сентября, 2012 - 01:15:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Okula пишет:
всё что нужно знать про пространства имён написано в мануале.

Да, но с книжки мне к примеру сразу бы стало ясно, что к чему,
а с мануала до меня пока дошло что к чему, пришлось раз 50 перечитать, просмотреть примеры, поэкпериментировать.
У автора - дар излагать свои знания.

(Отредактировано автором: 22 Сентября, 2012 - 01:33:14)

 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB