Kronus - уеб-базиран прокси с ръцете си
Необходими за прилагането на уеб приложение, което е уеб прокси сървър (както е посочено в определението по-горе) и има функции:
изпълнение
Пишем в PHP. За да се справят с DOM дърво вземе simple_html_dom библиотека. За CSS е имало желание да използва PHP-CSS-синтактичен анализ. но тя трябваше да бъде изоставена, тъй като това анализатора дръжки определени файлове за дълго време.
Необходимо е да се определят елементите, които са необходими:
- Възрази срещу обработването на заявките (най-лесно - изпратени, получени и разделени заглавията от тялото и се върна на резултата).
- съхранение на обекта на исканата URL адрес (това ще бъде необходимо да се отпуснат, за да го хост, път, файл и т.н.).
- Обектите е файлове (HTML, CSS, и т.н.), изтеглени при поискване.
- Фабрика за файлови обекти.
От гледна точка на UI ще бъде само две файлове:
- index.php - тук потребителят въвежда желаната си URL адрес.
- view.php - тук пренасочване на потребител след въвеждане на адреса на index.php.
От горното е такъв клас диаграма:
Ако разгледаме кода от гледна точка на "кой ще спечели е, когато" ние получаваме това:
- На view.php искане идва от URL кодирано.
- URL стои в page_factory (PF).
- Най-PF, наречена get_page метод, който изтегля съдържанието на URL адрес.
- В зависимост от отговора на CONTENT_TYPE сървъра се генерира и се връща към желания обект-страница (HTML, CSS, основни, и т.н.).
- Този процес се нарича метод обект, който изпълнява различни превръщане (вж. Метод в class.basic_page.php, class.css_page.php, class.html_page.php).
- След това, на потребителя се предава от обекта на водещата CONTENT_TYPE и обработена тяло обекта.
тестване
Аз трябва да кажа, че на теста - не ми опорна точка. Така че струва най-непретенциозен и нещата assertEquals 🙂 Да, тестове са тестове в папката (вече всички, създаден по силата PHPUnit). Проверих в - всички произведения (PHP 5.3.8). После се сетих, че е налице услуга Травис CI (Free Домакин Platform Непрекъснато интеграция за общността на отворения код), по които има интеграция с GitHub'om. Реших да се включат в WebProxy тестване и внедряване на PHP 5.3, 5.4, 5.5, с помощта на Травис CI (вж. .travis.yml файл). Както се вижда от стартирането на Травис, WebProxy работи на всички три клона на одитирания PHP. Така че в Readme, можете да добавите малко елемент с красива картина - Травис CI статус.
Сега WebProxy подходящ за лесно сърфиране в статични страници, но развитието не е на мястото си. Плановете - правилните форми на обработка, възможността за получаване на Cookies (по избор), и т.н.
Демонстрация на Аз няма да направя kronus.me, като общежитие не одобрява, и черупки (което не е за съжаление), не е под ръка. Така че, разполагане с Localhost.