Тестовое задания для программиста PHP + MongoDB
2015-09-26 в 15:39 PHP MongoDB
Очень небольшое тестовое задания для оценки навыков программиста среднего уровня владения PHP и работы с MongoDB.
Кастомизация форм на JavaScript – пишем свой autocomplete
2015-06-09 в 01:13 JavaScript jQuery Widget Projects
Казалось бы, куда еще один?! Но вот встала задача у меня – иметь в проекте один универсальный автокомплит, который можно навесить на input или на select, без лишнего кода подгружать данные через ajax. И при этом иметь гибкость, в плане возможности выбора пользователем нескольких значений, ввода значений, не предусмотренных в списке и прочие плюшки, настраиваемые с помощью опций. А главно, чего не хватает во многих подобных виджетах - простая и полноценная кастомизация выпадающего списка с опциями (как на картинке).
Итак, приступим к написанию, в статье будет довольно подробно описан процесс создания плагина на базе jQuery без использования widget фабрики из jQuery UI. Я назвал его Meta Input, т.к. сейчас работаю над проектом под кодовым названием Meta и в нем мне понадобился подобный виджет.
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, которую я буду использовать. Далее я поделюсь как и какие программы использую в работе, как настраиваю среду для работы проектов, какие сервисы использую для хранения кода и т.п.
Виджет выбора кода страны при вводе телефона на jQuery
2014-05-28 в 00:16 JavaScript jQuery Projects Widget
Отвлечемся от разработки PHP фреймворка на создание небольшого интересного jQuery UI виджета. Для тех, кто любит приукрасить свой сайт красиво-полезными примочками, или кому по работе сумасшедшее начальство просит сделать очередную неведомую хуйню – данная статья может быть вполне полезна. Итак пишем виджет для поля ввода телефонного номера с красивым выбором кода страны (прям как в скайпе, только лучше)
Часть 1. Разработка PHP-фреймворка :: Начало
2014-05-26 в 19:10 PHP Projects Bun Framework
Первая статья о разработке собственного фреймворка будет посвящена обзору основных намеченных возможностей и архитектурных особенностей нового фреймворка. Здесь я опишу модули и компоненты, разработка которых будет описана подробно в следующих статьях. Итак, определимся, как мы организуем код фреймворка и приложений, которые его будут использовать, и далее накидаем roadmap разработки основных компонентов.