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 :: Не понимаю ООП [5]

 PHP.SU

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


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

> Без описания
digi
Отправлено: 26 Марта, 2013 - 16:07:38
Post Id


Посетитель


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


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




Soft, а ты можешь сырцы какого-нить проекта законченного показать? ;))
 
 Top
Soft
Отправлено: 26 Марта, 2013 - 16:20:06
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2013  
Откуда: Россия, Орел


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




проект не закончен, но обработка биллинговых сообщений сделана.
генерация пдф файлов тоже сделана на основе принятых смс от билинга + работа с базой.
Скачать файл: requests.php
Скачан раз: 144
 
 Top
Soft
Отправлено: 26 Марта, 2013 - 16:23:38
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2013  
Откуда: Россия, Орел


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




Обработчик билинга: sms.php

генератор пдф (mpdf) файлов найден в сети… он через ООП написан правда.
структуру папок не буду рассказывать… не суть, как файлы друг друга ищут
Скачать файл: sms.php
Скачан раз: 172

(Отредактировано автором: 26 Марта, 2013 - 16:25:29)

 
 Top
digi
Отправлено: 26 Марта, 2013 - 16:25:44
Post Id


Посетитель


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


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





ух! Улыбка) бодряк! Улыбка))))

(Отредактировано автором: 26 Марта, 2013 - 16:25:56)

 
 Top
Soft
Отправлено: 26 Марта, 2013 - 17:23:25
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2013  
Откуда: Россия, Орел


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




и как понять этот бодряк?

жить буду? не смертельный диагноз?
 
 Top
digi
Отправлено: 26 Марта, 2013 - 17:39:34
Post Id


Посетитель


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


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




ты первый "сайт" в своей жизни пишешь? ;)
 
 Top
Soft
Отправлено: 26 Марта, 2013 - 20:31:00
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2013  
Откуда: Россия, Орел


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




нет, но их было до 10-и
 
 Top
digi
Отправлено: 26 Марта, 2013 - 20:41:03
Post Id


Посетитель


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


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




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

интересно как у тебя работа с формами устроена ;) особенно если одна и таже форма может применяться в разных местах, например банально: форма аутентификация юзера ;)
 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Марта, 2013 - 20:43:14
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Soft пишет:
один раз приходилось фнкцию внутри самой себя же вызывать - такая уж универсальная и нужная получилась))

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



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2013  
Откуда: Россия, Орел


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




digi пишет:
интересно как у тебя работа с формами устроена ;) особенно если одна и таже форма может применяться в разных местах, например банально: форма аутентификация юзера ;)


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

схема такая

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



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

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

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

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

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

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

(Отредактировано автором: 26 Марта, 2013 - 21:23:30)

 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Марта, 2013 - 21:25:38
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Soft пишет:
выводим форму логиния
Интересует как реализовано именно это действие.
 
 Top
Soft
Отправлено: 26 Марта, 2013 - 21:37:21
Post Id



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2013  
Откуда: Россия, Орел


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




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

(Отредактировано автором: 26 Марта, 2013 - 21:44:21)

 
 Top
digi
Отправлено: 26 Марта, 2013 - 21:52:39
Post Id


Посетитель


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


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




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

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



Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Март 2013  
Откуда: Россия, Орел


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




digi пишет:
я правильно понял, что каждый их этих 10 сайтов - это уникальный набор функций, написанный под каждый сайт индивидуально с учетом всех нюансов верстки, поведения, ссылок и т.д.? т.е. даже если и есть файлы с одинаковыми названиями и в них есть функции с одинаковыми названиями, то это либо кописаст, либо вообще каждая функция в каждом проекте выполняет свою уникальную задачу?


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

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

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

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

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


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


Частый гость


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


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




Всем всего самого.

Уважаемые, проясните бестолковому. Имеется базовый класс в котором перегружаются методы __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 и исходя из имени вызываемого метода производить дальнейшие действия. Но что если в производных классах понадобиться расширить метод?! Как это реализовать?!

(Отредактировано автором: 16 Апреля, 2013 - 12:25:15)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB