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

Печать RSS
269

Автор
Господин ПЖ
0
Выполняю сейчас тестовое задание для одной московской компании

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

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

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

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

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

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

пример тут https://github.com/visavi/korablik/blob/master/index.php
Изменил: Вантуз-мен (18.05.2016 / 10:41)

Оранжевые штаны
0
Инициализация потомка из родителя это велосипед и возможно они ожидают увидеть в ответе указание на это, сделать это конечно можно, но смысл тогда в потомке? имхо
Автор
Господин ПЖ
0
2. WmLiM, так вот и я так думаю, всех кого спросил тоже не понимают для чего так попросили сделать, но мне кажется в задании немного неточно сформулировано описание

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

2000 лет д.н.э.
0
__CLASS__ в родительском классе выведет имя наследника если метод инициализирован наследником.
речь об этом?

Оранжевые штаны
0
6. ramzes, возможно ты имел ввиду get_class() ?

2000 лет д.н.э.
0
Эмм.. ну да.
вообще какое то идиотское последнее условие. чем внимательнее его читаю, тем больше знак вопроса в фразе "зачем?"
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск