Архив рубрики: Programming

Определение мобильного устройства на PHP

Порой нужно определить с мобильного устройства пришел пользователь или же с обычного компьютера.
Существует много различных библиотек для этого. Если же нет возможности подключить более полноценную библиотеку, то можно воспользоваться следующим способом.
Читать далее

Удалить весь JavaScript из текста сообщения

Для удаления всех JavaScript-ов из текста сообщения можно воспользоваться следующим регулярным выражением:
/<script\b[^>]*>(.*?)<\/script>/is
В PHP делаем вот так:

$textClear = preg_replace('/]*>(.*?)<\/script>/is', '', $text);

Шаблон проектирования — Модель — Представление — Контроллер (MVC)

Model-view-controller («модель-представление-контроллер», «модель-вид-контроллер») — схема использования нескольких шаблонов проектирования, с помощью которых модель приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента таким образом, чтобы модификация одного из компонентов оказывала минимальное воздействие на остальные. Данная схема проектирования часто используется для построения архитектурного каркаса для разрабатываемого приложения.

Концепция:

  • Модель (Model) — содержит данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать.
  • Представление, вид (View). — используется для отображения (визуализации, рендеринга) данных из модели.
  • Контроллер (Controller) — обеспечивает связь между пользователем системы и моделями данных.

В системе модель не зависит ни от контроллера, ни от представления, а те, в свою очередь, зависят от модели.
Читать далее

Шаблон проектирования — Одиночка

Одиночка (Singleton) — порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр класса.
Применение — когда необходим только один экземпляр класса, с возможностью доступа к нему из любой точки приложения.
Примеры использования:

  • Запись сообщений в лог-файл
  • Доступ к базе данных

В случае когда Одиночка используется для организации доступа к базе данных, могут возникнуть проблемы, когда будет необходимо работать с несколькими серверами баз данных.
Читать далее

Триггеры в MySQL

Триггер в MySQL — поименованный объект БД, который ассоциирован с таблицей и активируемый при наступлении определенного события, события связанного с этой таблицей.
Такими событиями могут быть:

  • INSERT — при операциях вставки или аналогичных ей выражениях (INSERT, LOAD DATA, и REPLACE)
  • UPDATE — когда сущность (строка) модифицирована
  • DELETE — когда запись удаляется (запросы, содержащие выражения DELETE и/или REPLACE)

Кроме того, для каждого события есть два варианта:
BEFORE — выполняется до исполнения команды. Допустим, при BEFORE INSERT могут быть изменены данные перед вставкой их в таблицу или рассчитаны дополнительные поля для вставки.
AFTER — данное событие вызывается, после завершения исполнения команды. Как правило, это событие используется для обновления статистических данных или вставки данных в другие таблицы.
Читать далее

Шаблоны проектирования. Введение

Шаблоны проектирования (design patterns) — архитектурные конструкции, решающие часто возникающие задачи при разработке и проектировании программного продукта.
Как правило, шаблон проектирования не является законченным решением, а всего лишь пример решения задачи, который в большинстве случаев необходимо немного модифицировать под конкретную задачу.
Все шаблоны проектирования делятся на 4 основные группы, в которые входят уже конкретные шаблоны.
Читать далее

Простая разработка с Erlang

На днях решил побаловаться чем-нибудь интересным, так сказать, расширить свой кругозор в мире программирования. Под руку попался Erlang. Википедия про него говорит следующее:

Erlang [ˈɜːlæŋ] — функциональный язык программирования со строгой динамической типизацией, предназначенный для создания распределённых вычислительных систем. Разработан и поддерживается компанией Ericsson. Язык включает в себя средства порождения параллельных облегчённых процессов и их взаимодействия через обмен асинхронными сообщениями в соответствии с моделью акторов.

Поиск хорошей литературы указывал всегда в книгу Джо Армстронга «Programming Erlang»
С первых страниц книга располагает к себе, а вот язык не совсем, но это только на первый взгляд.

Когда дело дошло до кода чуть сложнее Hello World, сразу в глаза бросились преимущества этого языка. Одну из фишек я и хочу показать.

Читать далее