Я бы вообще во втором варианте сделал бы так:
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)