В предыдущей статье мы построили простейший MVC каркас и убедились в легкости и элегантности этого архитектурного шаблона. У нас был всего один контроллер — контроллер главной страницы с единственным действием (метод index) для отрисовки вида. В этой статье мы добавим класс для работы с маршрутами и модифицируем класс Load для разделения вида на общий для всех страниц шаблон и шаблон контента.
Читать полностью »
Рубрика «php» - 229
Создаем прототип микрофреймворка на PHP. Часть 2: реализация роутинга, разделение видов
2012-08-27 в 3:03, admin, рубрики: cmf, framework, mvc, php, site, Веб-разработка, метки: cmf, framework, mvc, PHP, siteСоздаем прототип микрофреймворка на PHP. Часть 1: реализация MVC шаблона
2012-08-27 в 3:03, admin, рубрики: cmf, framework, mvc, php, site, Веб-разработка, метки: cmf, framework, mvc, PHP, site
Многие начинают писать проект для работы с единственной задачей, не подразумевая, что это может вырасти в многопользовательскую систему управления, ну допустим, контентом или упаси бог, производством. И всё вроде здорово и классно, всё работает, пока не начинаешь понимать, что тот код, который написан — состоит целиком и полностью из костылей и хардкода. Код перемешанный с версткой, запросами и костылями, неподдающийся иногда даже прочтению. Возникает насущная проблема: при добавлении новых фич, приходится с этим кодом очень долго и долго возиться, вспоминая «а что же там такое написано то было?» и проклинать себя в прошлом.
Вы можеть быть даже слышали о шаблонах проектирования и даже листали эти прекрасные книги:
- Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидесс «Приемы объектно ориентированного проектирования. Паттерны проектирования»;
- М. Фаулер «Архитектура корпоративных программных приложений».
В общем, сегодня речь пойдет о самом популярном (разве что после Singleton) шаблоне проектирования MVC и его простой реализации дабы восполнить пробел и помочь вам в рефакторинге и разрешении неприятной ситуации в которую, возможно попал ваш проект.
Читать полностью »
Как я делал нотную капчу
2012-08-25 в 19:19, admin, рубрики: php, Веб-разработка, интерфейсы, капча, метки: Noty, PHP, капчаОднажды в далеком 2009 году я делал сайт для музыкантов. Единственным средством обратной связи на сайте была гостевая книга. Чтобы не пустить ботов, спамеров и нехороших людей, нужна была капча. Так как сайт для музыкантов, то я подумал, пусть капча тоже будет музыкальной.
То, что получилось, выглядит примерно так:
или так:
Читать полностью »
Arduino будильник управляемый из браузера
2012-08-25 в 15:32, admin, рубрики: arduino, php, сиськи, метки: arduino, com-порт, PHP, сиськи Добрый день, уважаемые читатели!
Да, вы совершенно правы — это очередной гов.. топик об Arduino.
Давеча я при помощи дядюшки Лао обзавелся этим замечательным устройством, и по сложившейся традиции не удержался выложить свой «Hello World» на хабр.
Итак — Arduino будильник, управляемый из браузера. Без использования Ethernet шилда, и ему подобных приблуд.
Если интересно — прошу под кат.
Читать полностью »
Создание форумов phpBB в облаке за несколько минут
2012-08-24 в 9:40, admin, рубрики: php, phpbb, windows azure, windows azure web sites, Блог компании Microsoft, Облачные вычисления, облачные сервисы, форумы, метки: phpbb, windows azure, windows azure web sites, облачные сервисы, форумы
Создание собственных форумов на базе популярного движка phpBB стало еще проще и доступнее. В галерее готовых шаблонов облачного сервиса Windows Azure Web Sites (бесплатно доступного для 10 сайтов) появился шаблон форума phpBB. Это дает возможность в несколько кликов развернуть форум и масштабировать его в облаке.
Для создания собственного форума проделайте следующие простые шаги.
Шаг первый. Зарегистрируйтесь на сайте http://windowsazure.com/ru-ru/ и получите 90-дневный бесплатный доступ к облачной платформе. Запросите доступ к новым функциям платформы по адресу https://account.windowsazure.com/PreviewFeatures.
Шаг второй. Перейдите в панель администрирования Windows Azure по адресу http://manage.windowsazure.com/ и с помощью мастера создайте новый сайт на базе сервиса Web Sites. В галерее готовых шаблонов выберите форум phpBB.
Webasyst Фото: приложение для организации и публикации фотографий
2012-08-23 в 10:17, admin, рубрики: cms, php, webasyst, Блог компании Webasyst, вебасист, фото, фреймворк, метки: PHP, webasyst, вебасист, фото, фреймворк Мы выпустили бесплатное приложение «Фото» для загрузки, хранения и публикации фотографий в вебе. Работает на основе PHP-фреймворка Webasyst. Лицензия — LPGL.
Приложение можно установить на свой сервер или хостинг (PHP/MySQL) и публиковать фотографии одним из следующих способов: 1) во фронтенде приложения (в общедоступной галерее) по альбомам, тегам, единым фотопотоком, 2) получением в бекенде ссылки или HTML-кода на выбранные фотографии с последующим добавлением их в блог, ЖЖ, форум или куда угодно, 3) не публиковать вообще и хранить все фотографии приватно для себя и своей команды в бекенде (приложение многопользовательское).
Приложение для тех, кто хочет организовать фотохранилище на своем сайте, а не во Вконтакте или Фейсбуке.
Демо: фронтенд, бекенд (в демо отключены права на загрузку и редактирование фотографий)
Скачать: приложение (исходный код; ≈231 КБ), фреймворк
Коротко об основных функциях приложения:
Читать полностью »
AMatch, часть 2. Коды ошибок, собственные ошибки, новый формат callback
2012-08-22 в 14:32, admin, рубрики: amatch, pattern matching, php, validation, ооп, Программирование, метки: amatch, pattern matching, PHP, validation, оопВ этой статье я расскажу о некоторых новшествах, появившихся в проекте AMatch с момента написания первой статьи.
Напомню, что AMatch — класс, с помощью которого валидация входных параметров из большого набора if-ов превращается в удобную, лаконичную запись. К примеру:
Example: simple
$match = AMatch::runMatch($params)
->doc_id(0, '<') // Левое значение меньше
->subject_id(0, '!=') // Не равен нулю
;
$result = $match->stopMatch();
if (!$result) {
die(var_export($match->matchComments(), true)); // для наглядности умрём
}
Почему все работают с ООП? Кратко о главном или «пища» для размышления
2012-08-22 в 13:40, admin, рубрики: php, ооп, Программирование, метки: PHP, оопНе знаю пока, зачем и почему первым постом я выбрал именно этот. Да я прекрасно понимаю, что из этого поста я получу много отрицательных комментариев и возможно карма будет неизбежно испорчена, но будем надеяться оно того стоит.
На что хотелось бы обратить Ваше внимание, что я не хочу никого переубеждать или менять точку зрения. Этот пост, как и звучит в заголовке, просто заставит Вас задуматся.
В этот же момент я пропишу немного материала, которая позволит исключить часть негатива, который вызывает данный пост в истинных ООП-ков.
Читать полностью »
RedBeanPHP — CodeFirst PHP фреймворк
2012-08-22 в 10:55, admin, рубрики: orm, php, RedBeanPHP, Веб-разработка, Песочница, метки: orm, PHP, RedBeanPHP
В данном посте речь пойдет об весьма интересном ORM фреймворке RedBeanPHP. Примечателен он прежде всего возможностью создавать структуру базы данных на лету. К тому же фреймворк прост в использовании как две копейки. Моё повествование будет разделено на 3 части.
В второй части основная тема будет — модели. В третей — изменение логики работы фреймворка.
Перед написанием поста я потрудился и сделал тестовое приложение для того, что бы убедиться на своем опыте в возможности невероятно облегчить работу. Ведь я наверно не один, кто прописывает поля в нескольких местах с жутким осознанием бессмысленности этой работы, особенно на начальном этапе разработки. Наконец появился аналог Entity Framework Code First из .NET, который в свое время вызвал у меня дикий восторг. И так по порядку.
Читать полностью »
Гео-модуль для PHP приложений
2012-08-22 в 9:17, admin, рубрики: api, php, z-payment, Блог компании Платежная система Z-Payment, Веб-разработка, географические наименования, геоинформационный сервис, геолокация, КЛАДР, ФИАС, яндекс.карты, метки: api, z-payment, географические наименования, геоинформационный сервис, геолокация, КЛАДР, ФИАС, яндекс карты Вопрос «Где?» возникает сразу же после вопроса «Что?» эта закономерность верна и в вебразработке. Многие сайты запрашивают информацию у пользователя, предлагая ему ввести свой адрес, т. е. страну, регион, город, улицу, дом почтовый индекс. Но как потом обрабатывать эти данные, если они были указаны в свободной форме? В своих первых проектах мы использовали свой «велосипед», но по мере роста и развития это «чудо» превратилось в «чудовище», которое поставило крест на эффективной обработке гео-информации о наших пользователях. Мне была поставлена задача прибить этого монстра, заменив его стандартизованной гео-базой и простым интерфейсом для работы с ней. Гугление на эту тему не дали готового решения, поэтому пришлось отбросить простой вариант и сделать свой гео-модуль.
Читать полностью »