Автор оригинала: jonjonson
korchasa, я понимаю, что тема несколько другая, но всё же хочу ответить на
private в php - это нечто декларотивное и не более того. Да, это флажок, но программисты на php не волки и не станут на него реагировать, если увидят простое решение с возможностью замены private на public.
Полностью согласен. Но такие флажки и помогают жить. Правильное название метода тоже флажек, но как много он дает
cDLEON
От критики кода воздержусь, разговор сейчас не об этом. Все таки инкапcуюляцию вы отрицаете полностью, включая инкапсуляцию данных (__set/__get вас спасет?).
В классе XMLparser есть метод Load:
PHP:
function Load($filename)
{
if(!($file=@file_get_contents($filename)))
{
echo "file:<b>".$filename."</b> not found!";
return false;
}
$this->Parse($file);
}
Что он делает я думаю всем понятно. Наверняка (ну не телепат я) используется следующим образом:
PHP:
$parser = new XMLparser();
$el = $parser->Load('structure.xml');
unset($parser);
//дальше идет работа с элементами
Влом писать три строчки, хочется в одну:
PHP:
$el = XMLparser::parseFile('structure.xml');
//дальше идет работа с элементами
Предрекая ваш гневный возглас "всего лишь 2 строчки экономит", отмечаю, что не только экономит, но и принудительно уничтожает объект парсера, соответственно программисту про это помнить не приходится.
Для примера private-методов код слишком простой. Можно было бы, конечно, сделать надуманный пример, но судя по дискуссии, я знаю чем бы это закончилось.