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

1. manyrus (11.05.2011 / 19:20)
Интересно ваше мнение:
1) http://pastebin.com/QJcdt7nX
2) http://pastebin.com/jxbhN99H
Пожалуйста, комментируйте.

2. Михаил (11.05.2011 / 19:23)
Для чего классы использовать планируется?

3. manyrus (11.05.2011 / 19:26)
Парсинг xml/ini файлов в массив

4. Алексей (11.05.2011 / 19:43)
тебе недостаточно http://fr.php.net/manual/en/book.simplexml.php ?

5. orel (11.05.2011 / 19:50)
Дело не в том ,что есть более простые пути, а именно в том какой класс лучше!

6. manyrus (11.05.2011 / 19:51)
4. МегабиТ, это вообще здесь не причём smile Просто выберите, какую структуру кода Вы бы использовали. И да, ответ аргументируйте.

7. Алексей (11.05.2011 / 20:05)
manyrus (11 Мая 2011 / 19:51)
4. МегабиТ, это вообще здесь не причём smile Просто выберите, какую структуру кода Вы бы использовали. И да, ответ аргументируйте.
непричем? парсинг хмл файла не причем?

Добавлено через 01:00 сек.
также и на ини файлы есть своё решение в пхп http://www.php.net/manual/en/function.parse-ini-file.php , нужен массив? оно вернет массив

Добавлено через 01:40 сек.
нафиг громоздить

8. orel (11.05.2011 / 20:08)
Это мы знаем.Стандартные функции работы с xml и ini.Нужно выбрать класс который на ваш взгляд лучше.

9. manyrus (11.05.2011 / 20:13)
7. МегабиТ, кто тут тормозит? smile Откройте классы и посмотрите. Столько шума развели.

10. Алексей (11.05.2011 / 20:15)
manyrus (11 Мая 2011 / 20:13)
7. МегабиТ, кто тут тормозит? smile Откройте классы и посмотрите. Столько шума развели.
не лучший вариант с парсингом хмл, зачем писать обертку на уже существующие вещи?

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

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

13. manyrus (11.05.2011 / 20:28)
12. МегабиТ, аргументируйте smile

14. Ant0ha (15.05.2011 / 10:37)
Первый простой и без выпендрежа)
Второй более правильный, но раздутый... Имхо, по этой причине ZF такой огромный и тормозной, зато грамотный).

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

15. Ant0ha (15.05.2011 / 10:54)
Я бы вообще во втором варианте сделал бы так:
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;
        }

Просто добавляем/убираем файл драйвера.

URL: https://visavi.net/topics/21444