[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Шаблоны в ПХП + укажите на ошибки ООП
REZzANATOR
Как обычно начинается в данном разделе
"Я тут подумал что, процедурно это дурно и решелся на ООП". )

Почитав мануальчики, решился что нить попробовать написать.

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

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

Другой вопрос.
Интересно кто какие использует методы отделения хтмл от пхп.
Я не беру во внимание смарти, мне интересно какие не глобальные методы шаблонизации.
В гостевой я использовал просто функцию:
PHP
str_replace();

Слюни текут в сторону MVC, но как то рановато еще мне до него.



Спустя 13 часов, 44 минуты, 29 секунд (17.09.2009 - 08:58) stepan написал(а):
Вот этот посмотри мне очень понравился и есть чего нового изучить. wink.gif

Спустя 51 минута, 1 секунда (17.09.2009 - 09:49) glock18 написал(а):
Вот еще могу добавить от себя. В плане ООП поинтересней будет, пожалуй.

http://phpforum.ru/index.php?showtopic=20512

Если гостевуху будете качать, то в первом посте она кажется с неправильным дампом приаттачена.

Спустя 1 час, 43 минуты, 40 секунд (17.09.2009 - 11:32) twin написал(а):
Мой моск противится тому, чтобы писать такие маленькие скрипты с ООП, по этому объективной оценки дать не смогу. Кроме разве одного - смесь ООП с говнокодингом, это сюр по моему. smile.gif
И способ хранения данных мягко скажем суров для такой продвинутой гостевухи, раз она по последнему писку. В сто раз проще и надежнее использовать сериализацию.

Что касаемо локальной реализации - пару моментов увидел при беглом просмотре.
1. mesage.php
PHP
if (is_numeric($_GET['id'])) $id_mes = htmlspecialchars($_GET['id']);

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

2. Message.php

PHP
$this->user = htmlspecialchars(trim($user));
        $this->email = htmlspecialchars(trim($email));
        $this->site = htmlspecialchars(trim($site));
        $this->text = htmlspecialchars(trim($text));

всё таки эта функция разрабатывалась для браузера, а не для файла. На выходе всё таки нужно данные обрабатывать, а не перед записью.

PHP
if ($file = fopen(self::path_bd, "a+")){
            $arr_file = $this->get_file_array();

            if ($arr_file == "") $this->id = 1;
            else $this->id = count($arr_file) + 1;

            $paste = "~|~ ~id#".$this->id." ~|~ ".$this->user." ~|~ ".$this->email." ~|~ ".$this->site." ~|~ ".$this->text." ~|~ ".$this->send_new." ~|~ ".$this->date." ~|~";

            flock($file, LOCK_EX);

вот тут, если после открытия файла производишь какие то действия, лочить файл нужно сразу. Это пойдет на пользу, потому что пройдет некоторое время, и завершатся начатые процессы. Вообще рекомендуется делать паузу в этом месте, sleep(1) к примеру, чтобы небыло совместного доступа.

и еще
PHP
if(preg_match( "[".$this->id."\s]", $line)) {
                $pred_line = ($line_num == '0' ? $line_num : $line_num -1);
                echo $line_num;
                return true;
                break;
            }
бряк после ретурна не нужен совсем. Некрасиво это.

А так норм. Правда скобки фигурные после функции не очень смотрятся, но это дело вкуса.

Спустя 20 часов, 11 минут, 59 секунд (18.09.2009 - 07:44) REZzANATOR написал(а):
Спасибо, принял ошибки во внимание. Изучаем и пишем дальше.
Чуть позже выложу обновленную версию.

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


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.