Тестовое задания для программиста PHP + MongoDB
2015-09-26 в 15:39 PHP MongoDB
Очень небольшое тестовое задания для оценки навыков программиста среднего уровня владения PHP и работы с MongoDB.
PHP + Captcha - автоматизируем защиту форм
2015-05-28 в 01:05 PHP Captcha
Одна из нетривиальных задач в реализации надежного и комфортного в поддержке веб-проекта – защита и ограничние принимаемых от пользователей данных.
Часто для этого применяется механизм защиты с помошью captcha (каптчи) [Completely Automated Public Turing test to tell Computers and Humans Apart]. Изначально задача каптчи – это защита от ввода данных с помощью компьюетра с использование специально обученного скрипта. И в большинстве случаев – это достаточно надежный механизм. Механизму сто лет в обед, поэтому статья, конечно посвящена не написанию очередног генератора каптч.
Здесь я попробую решить попутную, достаточно занудную задачу – как определить, что к нам начал "стучаться" робот, а не обычный человек. Ведь мы не хотим лишний раз создавать неудобство своим пользователям и заставлять разгадывать каптчи. Итак, попытка создать универсальный простой механизм для защиты определенных мест в своем PHP-проекте, будь то форма аутентификации или форма обратной связи.
Часть 6. Bun Framework MCV - архитектура runtime php-приложения
2015-02-19 в 00:07 Bun Framework PHP
В предыдущих статьях я рассказал о создании базовых компонентов для своего фреймворка: модуль конфигурации приложения, компоненты http: Request & Response, а также интересный компонент – Dependency Injection Container – который позволит нам управлять зависимостями в приложении. Далее, чтобы наше приложение могло что-то делать, необходимо создать компоненты фреймворка, которые отвечают непосредственно за runtime приложения. У нас уже есть класс Bun\Core\Application, который принимает все стартовые запросы нашего приложения, далее мы сделали компонент Router, который позволяет определить какую конкретную функцию приложения вызвал пользователь. Далее нам нужен набор копонент MVC – который позволит непосрдетсвенно реализовать эту самую функцию приложения. Первым компонентом будет Controller - класс, котоому предается управление непосредственно после запуска приложения. Контроллер будет иметь доступ к слою Model (модели), чтобы работать с данными, и также с слою View (отображение) – чтобы отображать информацию для пользователя. Как правило в php-приложениеях в практике MVC под View чаще всего понимаются шаблоны (Templates).
Начнем с того, что представим небольшую схему runtime нашего приложения, основанного на Bun Framework.
Часть 5. Bun Framework :: Dependency Injection Container
2014-06-05 в 20:08 Bun Framework Dependency Injection PHP
Мы уже создали достаточно функциональых компонетов фреймворка, чтобы задуматься о том, как мы будем их инициализировать, использовать и управлять зависимостями между ними. В предыдущих статьях был разработан компонент конфигурации фреймворка, набор компонентов Http: Request & Router. Класс роутер у нас получился зависим от конфигурации и класса запроса. В этой статье я раберу на примере Bun Framework. Создание и тестирование небольшого но полноценного сервиса, который будет управлять зависимостями в PHP-приложении.
Часть 4. Bun Framework - HTTP-компоненты + Router
2014-06-04 в 20:27 PHP Bun Framework HTTP Router Projects
В предыдущих частях было описано создание окружения для разработки фреймворка, а также разработан компонент конфигурации приложения и фреймворка.
Теперь, как и было обещано, переходим к разработке компонетов HTTP: Request и Response – которые будут абстрагировать нас от обработки глобальных переменных HTTP-запроса (или cli запроса), а Response — от вывода результата (HTTP-ответа или вывода в консоль). По поводу работы фреймворка через консоль, я напишу отдельную статью (или несколько), так как это того заслуживает, пока что поставим TODO в тех местах в приложении, где это будет требоваться.
Часть 3. Bun Framework – конфигурация приложения
2014-06-01 в 04:51 Bun Framework PHP PHPUnit
Продолжаем серию статей по разработке Bun Framework. После того, как мы подготовили рабочий "скелет" приложения нашего фреймворка, переходим к неотъемлемой части всех веб-приложений – конфигурации. Ранее я уже упоминал, что модуль Bun\Core\Config войдет в ядро фреймворка, и кроме того в этой статье я затрону базовые зависимости модуля конфигураций: абстракция работы с файловой системой или типизированные исключения. И на последок в данной статье для проверки работоспособности написанного модуля я покажу простой пример организации unit-тестов написанного компонента фреймворка.
Часть 2. Bun Framework – настройка окружения и запуск скелета
2014-05-28 в 15:02 Bun Framework PHP Projects
Я не сразу перейду к разработке непосредственного самого фреймворка, а сначала посвящу небольшую статью настройки окружения и среды разработки на PHP, которую я буду использовать. Далее я поделюсь как и какие программы использую в работе, как настраиваю среду для работы проектов, какие сервисы использую для хранения кода и т.п.
Часть 1. Разработка PHP-фреймворка :: Начало
2014-05-26 в 19:10 PHP Projects Bun Framework
Первая статья о разработке собственного фреймворка будет посвящена обзору основных намеченных возможностей и архитектурных особенностей нового фреймворка. Здесь я опишу модули и компоненты, разработка которых будет описана подробно в следующих статьях. Итак, определимся, как мы организуем код фреймворка и приложений, которые его будут использовать, и далее накидаем roadmap разработки основных компонентов.
Запуск блога jakulov.ru
2014-05-26 в 17:22 PHP Projects
Наконец-то. Дописал движок своего блога, теперь можно начинать записи. Хочу посвятить данный блог изложению своего видения на PHP программирование, применение различных паттернов в веб-приложениях, поделиться опытом, обсудить спорные моменты.
В ближайшее время планирую выпустить цикл статей про разработку собственного фреймворка. В нем будет описана разработка с нуля полноценного фреймворка для веб-приложений на PHP. Я считаю, это отличный опыт в плане самообучения, постижения новых приемов в программировании, организации кода в своих проектах.
Также планируется несколько статей про разработку небольших полезных виджетов на JavaScript/jQuery и небольшой цикл статей, про разработку движка блога на базе вышеописанного фреймворка.