Тестовое задание

1. Вантуз-мен (18.05.2016 / 10:40)
Выполняю сейчас тестовое задание для одной московской компании

там в тесте по PHP имеется следующий текст
Напишите класс, при создании которого можно указать url, предусмотрите возможность указать его после инициализации класса.

Класс должен уметь получать содержимое страницы по указанному url, при этом получение данных должно быть защищено от всех возможных исключений и ожидать ответа не более 10 сек. Класс должен реализовывать методы, на вход одного из которых поступает массив сопоставлений текста, а на вход второго два значения (тоже сопоставления).

Класс должен уметь производить замену текста в соответствии с данными полученными через эти методы. Оба метода могут вызываться несколько раз, при этом данные должны не заменяться, а дополняться.
Замена должна производиться рекурсивно, т.е. если после замены в тексте остались или появились вхождения для замены, то их тоже нужно заменить.
Предусмотрите защиту от зацикливания при замене.

Класс должен уметь выводить результат.

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

вроде все выполнил, но во последний пункт про наследника не очень понятен, как родитель может знать о дочернем классе? если использовать Принцип инверсии зависимостей тогда зачем наследоваться от родительского, не очень понятно, может кто прояснит свежим мозгом?

пример тут https://github.com/visavi/korablik/blob/master/index.php

2. Антон (18.05.2016 / 12:08)
Инициализация потомка из родителя это велосипед и возможно они ожидают увидеть в ответе указание на это, сделать это конечно можно, но смысл тогда в потомке? имхо

3. Вантуз-мен (18.05.2016 / 12:12)
2. WmLiM, так вот и я так думаю, всех кого спросил тоже не понимают для чего так попросили сделать, но мне кажется в задании немного неточно сформулировано описание

4. Антон (18.05.2016 / 13:12)
3. Vantuz, по моему это просто задание с подвохом, сколько таких уже выкладывали на хабре.
Ошибка в описании это хорошо для тебя в первую очередь, ты можешь указать на нее, сказав что таким образом вам будут писать школьники если вы им скажите написать так, а настоящие "тру" программисты таких ошибок не допускают. И дальше можно рассказать им историю о их будущем проекте написанном по таким заданиям, как будет легко сопровождать\обслуживать подобный код.
В общем я думаю задание нацелено не на выполнение, а на проверку квалификации соискателя.

5. Вантуз-мен (18.05.2016 / 17:28)
В общем понятно, спасибо

6. ramzes (19.05.2016 / 16:18)
__CLASS__ в родительском классе выведет имя наследника если метод инициализирован наследником.
речь об этом?

7. Антон (19.05.2016 / 18:09)
6. ramzes, возможно ты имел ввиду get_class() ?

8. ramzes (19.05.2016 / 22:05)
Эмм.. ну да.
вообще какое то идиотское последнее условие. чем внимательнее его читаю, тем больше знак вопроса в фразе "зачем?"

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