Метка «PHP» - 45

Разрабатываем новый формат файла для бэкапа сайтовСейчас работаю над новым PHP-скриптом, который будет бэкапить не только базу данных, но и файлы сайта.

Изначально планировалось использовать один из распространённых форматов архивов. В данном случае, первое, что приходит в голову — ZIP и TAR. Для них есть множество готовых классов, а расширение ZIP даже входит в стандартную поставку PHP. Но изучив спецификации форматов, а также опробовал готовые решения, склонился к изобретению своего велосипеда.

Просьба «велосипедохейтеров» воздержаться от комментариев в стиле «хватит нам велосипедов». В конце концов, без создания «велосипедов» не было бы ни Google, ни Google Chrome, ни Facebook, ни WinRAR и 7-Zip.Читать полностью »

В процессе разработки нескольких Интернет-сервисов мы заметили, что значительная часть их функционала является общей, и руководствуясь принципом DRY (Don't Repeat Yourself — не повторяйся), приняли решение вынести общий функционал в отдельный модуль.

К модулю были предъявлены следующие требования:

  • независимость от использующих его сервисов;
  • простота «клиентского» кода;
  • многопоточность и высокая скорость работы.

Читать полностью »

Не так давно появилась задача создать простой сервис по созданию PDF отчетов на основе офисных документов для интранета. И вроде бы все просто, но вот с сохранением Excel в PDF возникли проблемы. Интересно? Прошу под кат.

Читать полностью »

Доброго времени суток, читатели!
Недавно задался целью сделать поиск на своем сайте, написанном на Kohana Framework. Решил использовать именно морфологический поиск, т.к. считаю его более правильным (относительно полнотекстового поиска с применением LIKE). Поиски готовых модулей для Kohana с требующимся функционалом не увенчались успехом, но я нашел отличную библиотеку: phpMorphy, которая замечательно подошла для решения моих задач.
Читать полностью »

Во время работы над серверной частью одного iphone приложения, всплыла любопытная особенность Zend_Soap_Server. Приводила она к спонтанно (на первый взгляд) возникающим ошибкам при возвращении php-ных массивов. У нас выявление и отладка заняли несколько человеко-часов, и, возможно, данная статья позволит кому-то те же самые несколько часов сэкономить.
Читать полностью »

Конфиг с человеческим лицом? Билдер!Многие фреймворки любят магию и сложные многоуровневые массивы для конфигурации/передачи параметров. Что первое, что второе — зло с точки зрения истинно-ленивого программера, который любит IDE и доки всегда под рукой, а не тыкать в интернет/тело вызываемого метода. Мы можем победить это, как образец взяв параметры метода из одного фреймворка и создав конфиг-билдер.
Читать полностью »

ООП билдер «массивных» параметровМногие фреймворки любят магию и сложные многоуровневые массивы для передачи параметров. Что первое, что второе — зло с точки зрения истинно-ленивого программера, который любит IDE и доки всегда под рукой, а не тыкать в интернет/тело вызываемого метода. Мы можем победить это, как образец взяв параметры метода из одного фреймворка и создав ООП-билдер.
Читать полностью »

Дайджест интересных новостей и материалов из мира PHP за последние две недели №8 (29.12.2012 — 11.01.2013)

Новогодние праздники подходят к финишу, и мы снова в строю со свежей порцией новостей и материалов из мира PHP.

Приятного чтения!
Читать полностью »

Думаю, каждому программисту знаком принцип единственной ответственности, Избавляемся от дублирования сквозного кода в PHP: рефакторинг кода с АОП ведь не зря он существует: соблюдая его, можно написать код лучше, он будет более понятным, его будет легче дорабатывать.

Но чем больше каждый из нас работает с кодом, тем больше приходит понимание того, что на существующем уровне языка — объектно-ориентированном — этого сделать невозможно. А мешает нам в соблюдении принципа единственной ответственности такой факт, как сквозная функциональность.

Эта статья о том, как можно избавиться от дублирования сквозного кода, и как сделать его чуточку лучше с помощью АОП.

Читать полностью »

В данной статье приводится пример создания простого сайта-блога с использованием паттерна Dependency Injection. Применяется подход с внедрением зависимостей во все возможные компоненты Symfony: контроллеры, doctrine-репозитории, формы.

Для упрощения статьи сократим число страниц сайта до двух:

  • Добавление нового поста (/add)
  • Отображение списка всех постов (/list)

Финальная архитектура приложения будет выглядеть следующим образом:
Руководство по использованию Dependency Injection в Symfony2
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js