Реализовать web интерфейс системы, обеспечивающей: добавление проектов; добавление тестов в проект; запуск теста и визуализация результата; просмотр ранее запущенных тестов; минимизация перезагрузок страницы (AJAX)
integer N сек Описание поля N Первый график N Values
Исполняемый файл SERVER CLIENT
паттерн MVC паттерн Front Controller. Общая точка входа в приложение Smarty.net для шаблонов Zend library
Инициализация smarty Связывание переменных Smarty->assign(paramName,$paramName); Вывод шаблона Smarty->display(template.html) Шаблон … {$paramName->attribute}
Tests.php Projects.php Projects id projectName dataDir ZEND_DB_TABLE Отделение SQL логики от приложения Projects Gateway insert(projectName) update(id,projectName) delete(id) getAll() findByName(projectName)
Общая точка входа в приложение Инициализация окружения Аутентификация Поддержка нескольких языков URL – host/controller/action?parametrs INDEX.PHP Инициализация smarty, zend_db, окружение Разбор URL Вызов app/controller/action.php
$.ajax({ method : "get", url : "/launchTest", data : { testId : Id }, beforeSend : function() { $("input").attr('disabled', 'disabled'); $("#loading").show("slow"); }, success : function(data) { checkFinish(Id); }, error: showError });
Client Server Js: startTest() /launchTest/checkFinish Js: checkFinish() Js: show() /launchTest/ Запуск теста, асинхронный Запись вывода stdout в файл AJAX Success == yes да нет
$("#addProject").validate({ rules:{ bin:{required: true, accept: "com|exe}, xml:{ required: true, accept: "xml}, projectName:{ required: true, validName: true, remote: "/addproject/checkProject"}}, messages:{ bin:{accept: "Com или Exe надо"}, xml:{accept: "Xml надо"}, projectName: {remote: "Проект с таким названием уже существует»} }, onkeyup: false });
Система: Универсальный web интерфейс; Визуализация результатов работы программы; Возможность описания вывода программы и графиков; Просмотр ранее запущенных тестов. Интерфейс: Валидация на клиенте; Динамическое обновление страницы без перезагрузки. Использование библиотек: Библиотека Jquery – Javascript; Фреймворк Zend Library; Шаблонизатор Smarty.net.