Ru-MaNGOS

Вернуться   Ru-MaNGOS > Флуд > Флудильня

Важная информация

Флудильня Разговоры на любые темы.

Мы устаем постоянно работать. Иногда надо где-то немного отдохнуть. Пожалуйста, не надо здесь устраивать бардак.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.11.2011, 10:28   #1
Праведник
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
Праведник На верном пути
По умолчанию

Кот ДаWINчи, в ООП/MVC с глобальными переменными будете видиться ещё чаще
Быть может не в таком контексте, а в виде регистра, но сути не меняет

Последний раз редактировалось Праведник; 03.11.2011 в 10:32.
Праведник вне форума   Ответить с цитированием
Старый 03.11.2011, 20:03   #2
Easy
Пользователь
 
Регистрация: 26.08.2011
Сообщений: 35
Сказал(а) спасибо: 6
Поблагодарили 5 раз(а) в 4 сообщениях
Easy На верном пути
По умолчанию

Синглтон просто используют чаще всего не по назначению. Основная задача - это что бы был один экземпляр какого либо объекта. А его юзают что бы просто глобальным сделать объект.

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



Цитата:
Сообщение от Праведник Посмотреть сообщение
Кот ДаWINчи, в ООП/MVC с глобальными переменными будете видиться ещё чаще
Быть может не в таком контексте, а в виде регистра, но сути не меняет
ещё как меняет.

вот тут в коде что?
PHP код:
$module = ....
include ...
$module ....
include... 
вот это - плохо. в любом файле переменная может нечаянно быть перетёрта из за того что имя слишком распространённое, особенно $n, $i, $s, $row, $res... и прочие.

когда вы юзаете
Core::model()->db->row
или просто $row
где больше шансов что переменная может быть перетёрта особенно если проект делает не один человек?
Но есть и страшнее последствия процедурного программирования.
Предположим что файл инклудится и в родительском файле объявляется переменная (как раз случай с этого сайта).
процедурный стиль
PHP код:
if ($file)
    include 
$file
не при всех настройках сервера этот код будет зщищён.

а в ООП будет что то типа
PHP код:
class A
{
    
$file;

    function 
exec()
    {
         include 
$file;
    }

и что будет если открыть файл напрямую? да не чего
как правило, только в index.php будет вызов что то типа
i
PHP код:
nclude "core/core.php";
App::run(); 
любой другой файл обычно содержит только классы и вызовы из классов. Так что не как не запустить в обход index.php

Я не утверждаю что ООП - значит без дыр
Это далеко не так, остаются в любом случае передаваемые параметры GET и POST которые просто как правило обрабатываются и проверяются в одном месте при получении, это удобней.
Easy вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 23:26. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot