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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Моя первая программа на PHP ООП
 
 автор: Ильдар   (29.07.2011 в 20:00)   письмо автору
 
 

Прошу проверить и сделать замечания.
Написал первую свою программу с применением возможностей ооп.

<? 
// подсчт разницы между двумя единицами времени
class Time {
    public 
$mintime;
    public 
$maxtime;
    
    public function 
GapOfTimes() {
        
$max strtotime($this->maxtime);
        
$min $this->mintime;
            
$diff $max-$min;
            print 
gmdate("H"$diff)." час, ".gmdate("i"$diff)." минут, ".gmdate("s"$diff)." секунд";
        }
    public function 
setMaxtime ($time) {
        
$this->maxtime $time;        
        }
    public function 
setMintime ($time) {
        
$this->mintime $time;
        }
    }

$time = new Time;
$time->setMintime(time()); 
$time->setMaxtime("today 22:25:00"); 
$time->GapOfTimes();
?>

  Ответить  
 
 автор: psychomc   (29.07.2011 в 21:29)   письмо автору
 
   для: Ильдар   (29.07.2011 в 20:00)
 

если честно, то ваш пример - это приблизительно то же самое, если бы Вы написали

Прошу проверить и сделать замечания.

<?php
echo "Hello, Word!";


подберите такой пример, который будет раскрывать основные концепции ООП. здесь же смысла нету совсем. можно это всё сделать одной маленькой функцией GapOfTimes с 2 параметрам $mintime и $maxtime

  Ответить  
 
 автор: Ильдар   (29.07.2011 в 21:53)   письмо автору
 
   для: psychomc   (29.07.2011 в 21:29)
 

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

  Ответить  
 
 автор: cheops   (29.07.2011 в 22:58)   письмо автору
 
   для: Ильдар   (29.07.2011 в 20:00)
 

Вот что не понравилось, вы создайте объект, который требует двух временных меток, которые вы заполняете двумя различными методами. Если внешний программист забудет их вызвать - объект останется несогласованным. Лучше, если бы эти временные метки передавались через конструктор, т.е. чтобы нельзя было создать неинициализированный объект.

Опять же не понятно, почему одна временная метка требует одного формата, а другая - другого. Идиально было бы, чтобы обе они принимали либо время в UNIXSTAMP, либо форматированную строку, а методы setMaxtime() и setMintime() сами бы пытались бы извлечь временную метку в зависимости от того, что им поступает - строка или число. Ваша задача не просто задействовать класс, а сделать его максимально удобным для внешнего программиста - чтобы он практически не думал о нем во время работы, а так ему нужно будет постоянно обращаться к классу или документации, чтобы вспомнить какому из методов нужно строку, а кому число.

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

  Ответить  
 
 автор: Ильдар   (30.07.2011 в 04:31)   письмо автору
 
   для: cheops   (29.07.2011 в 22:58)
 

Отлично, вот это здоровая критика. Спасибо.
Что значится под словом "метка" ?
> "вы создайте объект, который требует двух временных меток"

  Ответить  
 
 автор: cheops   (30.07.2011 в 10:02)   письмо автору
 
   для: Ильдар   (30.07.2011 в 04:31)
 

Здесь "значение", двух временных значений, просто время обычно представляют как шкалу от прошлого к будущему, а значения на этой шкале традиционно называют метками шкалы.

  Ответить  
Rambler's Top100
вверх

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