Рубрика «php» - 200

Доброго вечера, Хабрахабр.

Сегодня я расскажу о небольшом компоненте формы, который мне довелось написать для замечательного PHP фреймворка Yii. Этот компонент (а точнее, модель формы) позволяет редактировать config-файлы прямо из веба. Статья навеяна недавним постом о подобной функциональности, но та реализация основана на БД. Это не совсем нэйтивно для конфигурационных файлов Yii. К тому же за такое решение придётся заплатить лишними запросами к базе/кэшу, а их в проектах с высокой посещаемостью нужно экономить.

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

Несмотря на то, что внедрение зависимостей в сущности считается плохой практикой с точки зрения DDD, существуют ситуации в которых это очень удобно. Правомерность использования такого подхода, а ровно как и сравнение его с альтернативами (двойная диспетчеризация, события) не является темой данной статьи. Я хочу рассказать о технической реализации — об интеграции Symfony Dependency Injection Component (далее DIC) с Doctrine для автоматического внедрения зависимостей в загружаемые сущности. Используемые версии Symfony и Doctrine — 2.*.
Читать полностью »

Кто из нас не сталкивался с необходимостью что-то сделать самостоятельно, но не знал «как именно»? Лично я неоднократно. То надо магнилолу в автомобиле настроить, то найти некий серийный номер на агрегате. Задачи бывают разные. И в поиске ответов на вопросы я шел на тематические форумы. Впрочем, это касается не только автомобилей, а любой сферы нашей жизни. Одни люди задают вопросы, а другие отвечают.

Одним из распространенных ответов на вопрос «как это сделать» является пошаговая инструкция в стиле «берешь это здесь, прикручиваешь сюда». Человек её смотрит-читает, повторяет действия и получает решенную задачу. Такую инструкцию либо выкладывают на форуме в сообщениях, либо в виде файла (в популярном формате), либо ссылаются на сайт-источник. В любом случае такая помощь работает. Я решил пойти немного дальше в этом вопросе и предлагаю сервис в интернете по созданию такого рода инструкций (handbooks).

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

В процессе рефакторинга одного проекта, первую итерацию мы написали с душой. ООП, неймспесы, геттеры/сеттеры, и так далее.

В общем, как можно догадаться, оно не взлетело, и вот почему.

На многие вещи в PHP при применении ООП происходит страшный overhead. Вдруг оказывается, что правильные геттеры/сеттеры настолько жрут ресурсы, что неправильные паблик свойства гораздо быстрее, чем можно себе только представить. И еще куча проблем.

Простому тесту и посвящена эта статья, а выводы делать вам самим.
Читать полностью »

При разработке одного из проектов столкнулся с необходимостью настроить вывод постов в двух вариантах:

  • Расширенный — Название, крупное изображение, анонс, некоторые ссылки
  • Компактный — Название, маленькое изображение

Динамический шаблон Wordpress

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

Общий алгоритм следующий:

  1. При загрузке страницы проверяется состояние параметра style в базе
  2. В зависимости от параметра посты выводятся в том или ином формате
  3. При нажатии на флажок переключения вида запускается функция getPage
  4. Функция getPage принимает значение переключателя и отправляет данные на обработку и ОЖИДАЕТ ЗАВЕРШЕНИЯ ОБРАБОТКИ
  5. Файл style_updater.php принимает данные и обновляет Базу данных.
  6. После этого функция getPage перезагрузит страницу

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

Предистория

Начальство поставило задачу организовать смс-рассылку для структурных подразделений организации. Компания-провайдер sms-рассылки предоставляет протокол smpp. Необходимо было организовать рассылку через smpp коротких текстовых сообщений, получать отчеты о доставке. В качестве sms-шлюза был выбран Kannel.
Статья представляет из себя «быстрый старт» по Kannel и содержит в себе базовые настройки шлюза и примеры кода, на основе которых можно написать собственную систему смс-рассылки.
Установка и конфигурирование будет рассматриваться на примере Fedora.

Ремарка

Эта статья не является клоном этой http://habrahabr.ru/post/124302 и этой http://habrahabr.ru/post/123380 статей.
Я знаком с ними и пользовался ими в процессе работы, моя и эти статьи будут иметь много общего, но хотелось как-то систематизировать всю накопленную в процессе работы информацию для дальнейшего использования в работе.
Читать полностью »

Вышел PhpStorm 6.0. Мы делали его для того, чтобы вы писали код еще качественнее, еще проще, еще быстрее.

(кстати, молодец La2ha, что решил опубликовать новость о релизе на Хабре раньше нас, а то мы тормозим очень стараемся все внимательно проверить, прежде чем публиковать)

А теперь — взгляните на подробности о том, что мы добавили и улучшили.

Новый PhpStorm 6.0 облегчает работу с Composer и другими инструментами
Читать полностью »

Привет.

Хочу поделиться небольшим модулем, предназначенным для создания страницы настроек в своём приложении. А заодно узнать у сообщества, что в нём можно было бы улучшить.

Задача по своей идее простая — сделать табличку в БД, хранящую параметры типа «ключ -> значение», а к ней сделать страничку редактирования, позволяющую изменять данные значения. ну и конечно же реализовать программный интерфейс для доступа к параметрам хранимым в БД.

Срок реализации — около получаса. В интернете почему-то готового решения было не найти. Исправим положение, авось кому пригодится.
Читать полностью »

В PEСL как-то перестали поддерживать расширения для libevent. В частности, libevent версии 2 не поддерживался ни одноимённым расширением libevent, ни расширением event(последний релиз был в 2004 году). Поэтому было решено переписать завалявшееся с 2004 года расширение «event».
Читать полностью »

12 марта стала доступна новая версия PhpStorm 6.0
image
Читать полностью »


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