Есть тестирование БАЗОВОГО функционала, а есть - тестирование всего функционала.
Базовый делается обязательно и не за отдельную плату, а в рамках разработки.
Полное тестирование - делается: доп. работами или заменяется ТП по договору.
Обычно: ТП на срок 6 или 12мес. включена в договор на разработку.
Сверх этого: договор тех.поддержки на определенный срок за доп. деньги.
Заказчику задаете вопрос: "ищем и исправляем возможные ошибки все сразу или по мере возникновения?"
И после выбора: доп.работы в договор разработки или же ТП(в рамках разработки на определенный срок + доп.договора), соответственно.
решил подключить файл в котором нужно было вывести переменную, а так как include производиться внутри функции __get() теряется области видимости этих самых переменных
Задача решается выносом модуля (функции) из шаблона уровнем выше: на уровень модулей.
Сейчас: шаблон->модуль
Нужно: шаблон, модуль
Тогда можно вывести нормально переменные: модуль->шаблон
Вакансия не соответствует поставленной цели: или занимайтесь тут PHP, или ищите другую вакансию (где требуется Ruby-unior).
Учите PHP для работы с использованием ООП и сложными структурами в нативном виде (без всяких фреймворков).
Необходимо Вам добавить усилия и трудолюбия для достижения цели.
Не получается - читаем мануал ОЧЕНЬ внимательно и стараемся понять: "что я сделал не так", исправляем и двигаемся дальше к цели.
А вот в этом то вся и "МАГИЯ" профессионализма разработчиков фреймворков!
Ответ: б
Подключение класса - при первом востребовании объекта с проверкой на существование из любого места (через глобальный "сквозной" массив-реестр запрошенных классов и не только).
Для каждого устройства - свой отдельный класс.
Легко!
добавляем в таблицу товаров колонку parent (id)
Получаем: id, name, price, parent
price есть - товар без подсвойств (обычный).
прайса нет - берем все у которых parent = текущему id - это будут свойства.
и в них тоже price и кидаем в корзину как отдельные позиции.
1. Совмещение чистого бланка с заполненным (очистка, контраст, размер, поворот).
2. Вычитание (из заполненного бланка чистого).
3. Пересечение "островного" шаблона областей (где должны быть надписи) с результатом п.2 и выявление заполненных и не заполненных полей.
4. Профит!