Pull to refresh
4
0
xRay @xRay

Пользователь

Send message

GenericObject

Reading time12 min
Views834
<?php

/**
* Пример реализации Generic-класса
*
* Возможности:
* 1. Осуществляет доступ к параметрам класса через методы get* set* (accessors/mutators)
*     Пример: $object->setName('Dima'); $object->getName();
*     При изменении стандартного поведения метода (добавление дополнительной логики)
*     можно просто определить его в классе при этом не изменяя интерфейс класса.
* 2. Поддерживает встроенную валидацию данных с возможностью использовать или заранее
*     определенные типы данных (numeric, string, email, date и др.)
*     или регулярные выражения.
* 3. Имплементирует паттерн Lazy initialization для инициализации объектов.
*     Позволяет загружать параметры объекта из БД (например) не сразу при инициализации,
*     а только при первом запросе.
*
* Видимые недостатки:
* 1. Отсутствует возможность использовать автокомплит в IDE, так как методы явно не определены
*
* Плюсы:
* 1. Позволяет избежать дублирования кода при определении однотипных методов set и get
* 2. Сокращает код классов и централизует управление параметрами
* 3. При необходимости можно расширить функциональность. Например, добавив callback функции
*     или принудительную фильтрацию данных.
* 4. Избавляет от рутинных обязанностей проверки входящих данных, тем самым
*     обеспечивая некоторый уровень безопасности.
*     Это совсем не дает 100% гарантии — не стоит забывать об этом.
* 5. Не вносит коррективы в интерфейс классов. Можно легко сочетать обычные классы и классы
*     наследующие GenericObject без видимых различий для клиентов класса. При необходимости
*     можно легко отказаться от использования просто переопределив все гетеры и сетеры.
* 6. Упрощает работу с классами, предоставляя удобный и естественный способ
*     инициализации объектов:
*     $obj1 = new Class(123);
*     $obj2 = new Class(array(
*         'param1' => 'value1',
*         'param2' => 'value2')
*     ));
*/


Далее код реализации и пример использования

20 полезных дополнений FF, которых у вас нет

Reading time5 min
Views8.4K
Последние два месяца мое увлечение плагинами FF переросло в настоящую страсть. С приходом третьей версии «лиса» стало возможным устанавливать несколько десятков дополнений без нагрузки на систему.
Сейчас в моем арсенале более 50-ти дополнений при растратах памяти всего в 110 Mb.
Прежде чем постоянно использовать плагин, я тщательно тестирую его на предмет проф-пригодности, нахожу аналоги, взвешиваю альтернативы. Вам предлагаю самые сливки для удобного веб-серфинга в сети. Итак, начнем…
Читать дальше →

Черный список для расширений

Reading time1 min
Views4.8K
Оказывается в firefox и некоторые другие продукты Mozilla встроен чёрный список для расширений. Обновляется он автоматически каждый день с серверов Mozilla, и в настройках не отключается.
Читать дальше →

Хранение набора чекбоксов в одном поле БД. Битовая маска.

Reading time2 min
Views19K
Часто при составлении сайтов с каталогами нам приходится оперировать с однотипными карточками каталога. Рассмотрим пример:
У нас имеется каталог СТО которые оказывают различные услуги клиентам. Есть предопределенный список услуг, среди которых производится выбор. Список услуг представляет собой набор чекбоксов, если услуга оказывается то чекбокс помечается, в противоположном случае отметка не ставится. Предположим количество услуг в каталоге равняется десяти(просто для определенности).
Самым простым способом было бы хранение состояния каждого чекбокса в отдельном поле, однако при этом мы для каждой новой услуги(которая будет указываться на сайте и учавствовать в поиске) будем вынуждены расширять таблицу, и изменять поиск.
Но мы пойдем другим путем.
Читать дальше →

Как найти нужный шрифт, не зная его названия?

Reading time3 min
Views409K
Я уверен, что у любого дизайнера был такой момент, когда он видел где-то какой-то шрифт, который так мог бы пригодится в проекте, но… что за шрифт?.. Ответ на этот вопрос затаился в глубине Вашего сознания, либо в глубине Вашего «незнания» (что разумеется простительно).



В этой статье мы рассмотрим несколько ресурсов, которые могут помочь вам в идентификации понравившегося шрифта.

Конечно, нельзя рассчитывать, что эти источники дадут вам 100 процентную уверенность в том что вы найдете нужный шрифт, но что помогут, так это точно.
Читать дальше →

TraceMonkey — супер-производительный javascript

Reading time1 min
Views1.4K
firefox
Ура! Новое, фантастически быстрое, улучшение движка JavaScript(SpiderMonkey) в Mozilla было опубликовано.
Кодовое имя этого творения — TraceMonkey.
Этот движок использует метод добавления своего кода в реальном времени для ускоренной компиляции в SpiderMonkey новый метод трансляции байт-кода в машинный код на лету.
Читать дальше

Визуализация reflow

Reading time1 min
Views2.1K
Reflow — это процесс вычисления размеров составных блоков Web-страницы.

Сатоши визуализировал данный процесс, происходящий в недрах движка Gecko. Одним словом, он сделал «красиво».

Как он это сделал?

The Middler: программа для взлома незащищённых аккаунтов Gmail

Reading time2 min
Views17K
На хакерской конференции Defcon был показана программа The Middler (с открытыми исходниками, написана на Ruby) для автоматического сбора аккаунтов у пользователей Gmail, которые не включили у себя в настройках функцию всегда использовать защищённое соединение (“Always use https”).



Кстати, программа подходит не только для Gmail, но и для других сервисов, которые используют HTTPS только для аутентификации, а потом не защищают сессию. На хакерской конференции был успешно произведён демонстрационный взлом одного из онлайн-банков, сервисов LinkedIn, LiveJournal и Facebook, вмешательство в процесс апдейта программного обеспечения на ПК и iPhone и внедрение вредоносного Javascript прямо в сессии браузера во время сёрфинга по безопасным сайтам.

The Middler не только автоматически анализирует сетевой трафик и находит в нём кукисы, но и самостоятельно запрашивает кукисы со стороны клиента, то есть процесс автоматизирован по максимуму. Программа гарантирует сбор всех незащищённых аккаунтов в компьютерной сети (или публичном хотспоте), к трафику которой она имеет доступ.
Читать дальше →

Сервис Feed43 теперь говорит по-русски

Reading time2 min
Views6.1K
Итак, свершилось. Сервис Feed43, создателем которого я являюсь, переведен на русский язык. В связи с этим хочется подробнее рассказать о самом сервисе, а также привести пример создания с помощью него RSS-канала, мониторящего хабракарму.

Зачем нужен Feed43?

Наш сервис дает возможность вам самим создавать RSS-каналы из любых веб-страниц. Фактически, Feed43 предоставляет универсальный API на основе RSS к любому сайту, любой странице и даже любой части страницы.
  • Хотите читать новости с сайтов, не предоставляющих RSS?
  • Хотите предоставлять разнообразные RSS-потоки для читателей вашего собственного сайта/блога, не заморачиваясь при этом с программированием?
  • Хотите отслеживать список самых кассовых фильмов, количество полученных Россией олимпийских медалей, популярные записи в блогах?
Все это теперь возможно.

Читать дальше →

Удобное решение для работы с БД

Reading time2 min
Views6.4K
logo_by_chernev
Обычно для работы с mySQL я использовал «phpmyadmin», но сегодня мой взор был направлен на новое решение «SQL buddy», я скачал, загрузил на свой сервер, и…
И это просто супер! Такой и должна быть удобная работа с БД!

Возможно «SQL buddy» не имеет столько расширенных функций как «phpmyadmin», но для рутинных и небольших работ она прекрасно подходит.
Читать дальше

PHP + Ajax = Web explorer?!

Reading time1 min
Views3.1K
Сегодня я предлагаю одолеть одну очень популярную задачку open source методом. Задача тривиальная и давно имевшая множество решений. Но для меня лично вопрос еще открыт. А именно: веб-бейзд файл менеджер…

extplorer.png - upload images with Picamatic

eXtplorer — с помощью Ajax (ExtJS, ку-ку!) и PHP наш подопытный отлично справляется…
Что же он умеет?

Пользовательские поддомены

Reading time1 min
Views21K
С появлением новых проектов в сети иногда кажется, что задача эффективной организации пользовательских поддоменов (bob.someblog.com) кому-то представляется непростой. На самом деле, этот вопрос решается за одну минуту.
 

Читать дальше →

SMSter.ru — полтора месяца спустя: группы друзей, комментарии, каналы и API

Reading time1 min
Views840
В начале июня был анонсирован запуск нового микроблоггингового сервиса SMSter.ru. За это время пользователи сервиса разместили там 4824 сообщения (чаще всего они делали это через аську, веб-интерфейс и смс), а мы совершенно безвозмездно отправили 15355 SMS-оповещений об этом тем пользователям, которые подписались на них.

Какая новая функциональность появилась за это время в сервисе?

1. Группы друзей. Пользователи SMSter могут объединять своих друзей в группы и отправлять сообщения, которые будут видны только друзьям, состоящим в этой группе. Удобно если хочется позвать выпить пиво только близких друзей :)
Читать дальше →

Что новенького?

Reading time5 min
Views857
Предлагаю собрать воедино все, чего мы дождались в новой версии хабра.
В итоге собрано:
фич (и других нововведений): более 50
багов (и сомнительных решений): более 25

Последний update: 12 августа, все основные баги и фичи собраны
ну посмотрим, что же у нас там?

Динамический css

Reading time2 min
Views3.5K
Browsers-small
При подгонке сайтов до единого вида во всех браузерах, верстальщик использует не один css хак.
Но зачем обычному пользователю с IE получать избыток кода для других браузеров firefox, opera, safari?!
Это проблема легко решается с помощью динамического css.
Читать дальше

Одно из самых необычных дополнений к Firefox… Pencil Project

Reading time1 min
Views4.2K
Pencil Project — совершенно удивительное расширение для Firefox, которое вместо привычных манипуляций с вебом позволяет… быстренько набросать GUI интерфейс для Windows XP или GTK+, или, скажем, для свежего стартапа.

Все просто как раз два три

Вся неправда про Суперхабр

Reading time3 min
Views20K


Пользуясь случаем, пока все спят, я расскажу вам всю неправду о суперхабре. Надеюсь, коллеги не будут против, если я внесу немного неясности в вопрос, что же такое суперхабр и зачем он нужен с технической точки зрения?

Итак, для тех кому это интересно, расскажу об составляющих частях этого проекта.

Читать дальше →

Ext 2.0 Alpha Release

Reading time1 min
Views800
28 сентября состоялся первый публичный альфа-релиз второй версии популярного JS-фреймворка Ext. Всю мощь и открывающиеся возможности можно оценить посетив раздел примеров.

P.S. Особенно меня порадовала возможность интеграции с AIR.

Прямые ссылки на AJAX веб-сайтах – наша технология Fullajax Direct Link.

Reading time7 min
Views10K
Приветствую всех читателей. Популярность AJAX такая, что это, по сути, уже стандарт де-факто для многих проектов. Хотя, как и все технологии (особенно, новые и/или модные), она часто применяется (чего уж грех таить) и там, где без нее не обойтись, и там, где вполне можно, а зачастую и нужно. Впрочем, сегодня речь пойдет о другом.

Одним из неприятных моментов при использовании AJAX – является отсутствие прямых ссылок на динамически сгенерированные страницы или их отдельные части. Здесь кроется и вообще-то концептуальный вопрос – а что, собственно говоря, является в таком подходе страницей – она не имеет некоторого статического представления, каждый раз совершенно другая (не путать с динамической генерацией на сервере), и, фактически, предоставляет пользователю окно в многомерное представление самой себя.

Но все же – допустим, у нас есть простенький, но претенциозный веб-сайт визитка, где по переходам меню AJAX подгружает и выводит контент, а мы хотим дать знакомому по ICQ ссылку на контактную страницу (или любую другую, не суть важно).

Есть два подхода решения проблемы ссылок.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity