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
Форумы портала PHP.SU :: Версия для печати :: Не понимаю ООП [5]
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Не понимаю ООП

Страниц (8): « 1 2 3 4 [5] 6 7 8 »
 

61. digi - 26 Марта, 2013 - 16:07:38 - перейти к сообщению
Soft, а ты можешь сырцы какого-нить проекта законченного показать? ;))
62. Soft - 26 Марта, 2013 - 16:20:06 - перейти к сообщению
проект не закончен, но обработка биллинговых сообщений сделана.
генерация пдф файлов тоже сделана на основе принятых смс от билинга + работа с базой.
63. Soft - 26 Марта, 2013 - 16:23:38 - перейти к сообщению
Обработчик билинга: sms.php

генератор пдф (mpdf) файлов найден в сети… он через ООП написан правда.
структуру папок не буду рассказывать… не суть, как файлы друг друга ищут
64. digi - 26 Марта, 2013 - 16:25:44 - перейти к сообщению

ух! Улыбка) бодряк! Улыбка))))
65. Soft - 26 Марта, 2013 - 17:23:25 - перейти к сообщению
и как понять этот бодряк?

жить буду? не смертельный диагноз?
66. digi - 26 Марта, 2013 - 17:39:34 - перейти к сообщению
ты первый "сайт" в своей жизни пишешь? ;)
67. Soft - 26 Марта, 2013 - 20:31:00 - перейти к сообщению
нет, но их было до 10-и
68. digi - 26 Марта, 2013 - 20:41:03 - перейти к сообщению
дальше также подумываешь кодить? ;)

интересно как у тебя работа с формами устроена ;) особенно если одна и таже форма может применяться в разных местах, например банально: форма аутентификация юзера ;)
69. DeepVarvar - 26 Марта, 2013 - 20:43:14 - перейти к сообщению
Soft пишет:
один раз приходилось фнкцию внутри самой себя же вызывать - такая уж универсальная и нужная получилась))

Это называется рекурсия.
Soft пишет:
как я смутно понимаю ООП- это способ объеденить (структурировать) функции для выполнения разных задач. Типа вот группа функций для того то… вот группа функций для того-то.
Нет! Класс/объект УМЕЮТ ХРАНИТЬ свои состояния в свойствах и взаимодействовать др с другом с помощью методов изменяя св-ва у себя или соседей.
А то что каждый класс описывает четкую структуру, так то - порядок в голове, значит порядок в коде.
(Добавление)
digi пишет:
сырцы какого-нить проекта законченного показать
+1 Улыбка
(Добавление)
digi пишет:
форма аутентификация юзера
Или добавления каментов..
70. Soft - 26 Марта, 2013 - 21:22:58 - перейти к сообщению
digi пишет:
интересно как у тебя работа с формами устроена ;) особенно если одна и таже форма может применяться в разных местах, например банально: форма аутентификация юзера ;)


ну а че тут сложного.

схема такая

PHP:
скопировать код в буфер обмена
  1. // определение что выводить в блоке для быстрого входа на сайт или отображения своего ника, если заход на сайт произошел
  2. function login_block($session){
  3. if (login($session) == 1){ //если проверка сессии совпала с записью в базе
  4. выводим ник и ссылку на личный кабинет, например.
  5. }
  6. else {
  7. выводим форму логиния
  8. }
  9. }



дальше также подумываешь кодить? ;)

да. до тех пор пока не придет ясность смысла ООП. и после прихода этой ясности не придет необходимость использования ООП.

самостоятельно пишу небольшие проекты или для себя полезные програмки. хватает и функциональной модели.

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

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

я примерно так ситуацию вижу, но ментальный смысл ООП не дает мне покоя.. если все тоже самое на функциях можно сделать, то в чем то должна быть очевидная выгода ООП
71. DeepVarvar - 26 Марта, 2013 - 21:25:38 - перейти к сообщению
Soft пишет:
выводим форму логиния
Интересует как реализовано именно это действие.
72. Soft - 26 Марта, 2013 - 21:37:21 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function login_form($current_page){
  2.  
  3. $login_form = '<form action="loginer.php" method="post">
  4. LOGIN <input type="text" name="login">
  5. PASS<input type="password" name="pass">
  6. <INPUT TYPE="HIDDEN" NAME="current_page" VALUE ="'. $current_page .'">
  7. <input type="submit" value=">>">
  8. </form>';
  9.  
  10. return $login_form;
  11. }


loginer.php проверяет правильность логина и пароля, и возвращает юзера уже с нормальными кукисами на current_page
73. digi - 26 Марта, 2013 - 21:52:39 - перейти к сообщению
я правильно понял, что каждый их этих 10 сайтов - это уникальный набор функций, написанный под каждый сайт индивидуально с учетом всех нюансов верстки, поведения, ссылок и т.д.? т.е. даже если и есть файлы с одинаковыми названиями и в них есть функции с одинаковыми названиями, то это либо кописаст, либо вообще каждая функция в каждом проекте выполняет свою уникальную задачу?

в общем-то, если нет задачи самому становится профессиональным программистом, то этих познаний будет достаточно ;)) в случае если будешь владельцем бизнеса, то разумеется нужно будет нанять менеджера проектов, который в курсе что и как надо делать по нормальному и доверять ему, а не пытаться навязывать свои понимания программирования ;)
74. Soft - 26 Марта, 2013 - 22:09:59 - перейти к сообщению
digi пишет:
я правильно понял, что каждый их этих 10 сайтов - это уникальный набор функций, написанный под каждый сайт индивидуально с учетом всех нюансов верстки, поведения, ссылок и т.д.? т.е. даже если и есть файлы с одинаковыми названиями и в них есть функции с одинаковыми названиями, то это либо кописаст, либо вообще каждая функция в каждом проекте выполняет свою уникальную задачу?


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

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

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

многие функции просто копипасчу из предыдущего проекта, изменяю некоторые значения и она готова к использованию.

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


вот об этом я и хотел тут пост создать… обычно я менеджер проектов (своих собственнных) иу меня много вопросов по теории создания сайтов и насколько важно ООП
75. XelaNimed - 16 Апреля, 2013 - 12:24:07 - перейти к сообщению
Всем всего самого.

Уважаемые, проясните бестолковому. Имеется базовый класс в котором перегружаются методы __set, __get, __call, __construct. Не могу понять как расширить эти методы в производных классах. Приведу пример:
CODE (htmlphp):
скопировать код в буфер обмена
  1. class Base {
  2.  
  3.   private var $_opt = array();
  4.  
  5.   public function __call($name, $arguments){
  6.     $var = strtolower(substr($name, $name[3] == "_" ? 4 : 3 ));
  7.     if (substr($name,0,3) == 'set') {
  8.       $this->set($var, $arguments[0]);
  9.       return $this;
  10.     } elseif (substr($name,0,3) == 'get') {
  11.       return $this->get($var);
  12.     }
  13.   }
  14.  
  15.   public function set($var, $value) {
  16.     if(isset($this->_opt[$var])) {
  17.       $this->_opt[$var] = $value;
  18.       return $this;
  19.     } else {
  20.       return false;
  21.     }
  22.   }
  23.  
  24.   public function get($var) {
  25.     return isset($this->_opt[$var]) ? $this->_opt[$var] : NULL;
  26.   }
  27. }

Вышеприведенный пример позволяет использовать несуществующие методы класса, ловя их в __call и исходя из имени вызываемого метода производить дальнейшие действия. Но что если в производных классах понадобиться расширить метод?! Как это реализовать?!

 

Powered by ExBB FM 1.0 RC1