Какой класс Вы бы выбрали?

Печать RSS
66

M
Автор
Пришелец
0
10. МегабиТ, ну что Вы, извините меня, тупите. Я просто хочу, чтобы Вы выбрали, какая реализация лучше. И дело тут совсем не в парсинге, а в проектировании.
Изменил: manyrus (11.05.2011 / 20:17)
А

Чатланин
0
manyrus (11 Мая 2011 / 20:17)
10. МегабиТ, ну что Вы, извините меня, тупите. Я просто хочу, чтобы Вы выбрали, какая реализация лучше. И дело тут совсем не в парсинге, а в проектировании.
:X первая, если вам легче
M
Автор
Пришелец
0
12. МегабиТ, аргументируйте smile
A

Чатланин
0
Первый простой и без выпендрежа)
Второй более правильный, но раздутый... Имхо, по этой причине ZF такой огромный и тормозной, зато грамотный).

Оба класса, по сути, выполняют одинаковые действия и в использовании особой разницы не заметишь. Выбирать, имхо, нужно будет исходя из конкретной ситуации...
A

Чатланин
0
Я бы вообще во втором варианте сделал бы так:
1. Сделал бы класс-фабрику Parse
2. Сделал бы интерфейс драйверов с методами (parseString(), parseFile() и тд)
3. Добавлял бы драйвера для xml, json, ini и т.д.

Parse/
-- Interface.php (class Parse_Interface)
-- Xml.php (class Parse_Xml)
-- Ini.php (class Parse_Ini)
-- Json.php (class Parse_Json)
Parse.php (class Parse)

Инициализация:
$parse = Parse::factory('xml');
$data = $parse->parseFile('test.xml');

В Parse::factory() идет инициализация драйвера и его проверка на принадлежность к Parse_Interface

Добавлено через 03:08 сек.
тут мы вообще избавляемся от хард кода, который портит всю малину)
        switch ($type) {
            case Parse::INI :
                return new ParseIniFile();
                break;
            case Parse::XML :
                return new ParseXmlFile();
                break;
            case Parse::JSON :
                return new ParseJsonFile();
                break;
        }

Просто добавляем/убираем файл драйвера.
Изменил: Ant0ha (15.05.2011 / 11:01)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск