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

PHP-Дайджест № 119 (10 – 29 октября 2017) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 RC5 и другие релизы, предложения из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!

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

С момента нашей последней публикации об интерфейсе статистики для IP-АТС Asterisk прошел уже почти год. Проект растет, развивается, фидбек от клиентов и хаброюзеров позволил многое переосмыслить и существенно доработать его функционал.

Также мы запустили сайт, партнерку, wiki, паблики в соц. сетях, написали биллинг, переписали демон синхронизации на golang… и сделали еще кучу классных штук — всего не перечислишь.

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

Web-интерфейс для вашей Asterisk. Статистика для call-центров, отделов продаж, прослушивание звонков и многое другое - 1

Под катом я детально раскрою все пункты и подробно расскажу о работе с интерфейсом.
И конечно, в честь «годовщины», всем подарки!
Читать полностью »

Одним из главных аспектов при разработке программного обеспечения вообще и web-приложений в частности я считаю способность программного обеспечения быть изменяемым — адаптируемым к изменениям окружающего мира. Это не значит, что разработчик должен заранее предусмотреть будущие изменения среды обитания своего кода, это значит, что код должен переносить множество циклов рефакторинга, оставаясь при этом работоспособным как можно дольше. А для этого нужно, чтобы последствия изменений, вносимых в код, были либо обозримы, либо предсказуемы. Под катом я суммировал свое понимание областей сокрытия кода, сформировавшееся в результате тесных, практически интимных, отношений с Magento 2 (платформой для построения интернет-магазинов). Изложенное ниже относится во-первых, к языку PHP, во-вторых — к web-приложениям, в-третьих — ко всему остальному.

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

Добрых суток. Как-то за кадром остался вопрос прироста производительности стандартных функций PHP при работе с массивами в версии 7.*.

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

Magento Dare to Share. Осень — сезон Magento митапов - 1

21-го сентября в Киеве состоялся очередной Magento «Dare to Share» Meetup.
Вашему вниманию предлагаются видео докладов прозвучавших в рамках мероприятия, а также анонсы следующих Magento ивентов этой осенью.

  1. Антон Криль, Magento Lead Architect (@AntonKril on Magento Dare to Share. Осень — сезон Magento митапов - 2 ) — Magento 2 directions (Укр.)
  2. Анастасия Сухорукова, Magecom (@a_sukhorukova on Magento Dare to Share. Осень — сезон Magento митапов - 3 ) — Микросервисы для Мagento
  3. Игорь Миняйло, Magento Architect (@iminyaylo on Magento Dare to Share. Осень — сезон Magento митапов - 4 ) — Magento Contribution Day как формат Хакатона
  4. Игорь Сидоренко, Vaimo (@wurkindylkildyl on Magento Dare to Share. Осень — сезон Magento митапов - 5 ) — Динамическое редактирование фронтенда в Magento
  5. Олег Посиняк, Magento Cloud (@OlegPosyniak on Magento Dare to Share. Осень — сезон Magento митапов - 6 ) — Magento Cloud

Тезисы докладов и анонсы следующих ивентов можно прочитать под Катом.
Читать полностью »

Поиск и исправление багов в исходниках PHP - 1

Честно предупреждаю: воспринимайте этот текст с определённой долей скептицизма. Я лишь недавно начал знакомство с внутренностями PHP, но хотел бы рассказать вам о том, что творится за кулисами бага #75237.

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

Добавление рекордов с OAuth 2: Laravel Passport + Unity. Часть 1 - 1

В конце прошлого лета я задумался над простым способом авторизации пользователей форума в мобильном приложении. Как раз в это время вышла версия Laravel 5.3 вместе с пакетом Laravel Passport, где подобное предлагалось из коробки. Раньше я не работал с OAuth 2, так что начал не спеша разбираться. Решил испытать механизм на крысах, в небольшой игре на Unity про Крысу на Стене. Сама игра — простейший раннер, но механизм авторизации может представлять некоторый интерес, если ранее не сталкивался с этим. Я пользовался официальной документацией и статьей про Passport. На хабре подходящей статьи до сих пор не появилось, поэтому решил сам скомпоновать материал, реализовав для интереса добавление рекордов и базовое взаимодействие с клиентом на Unity. Ввиду моей неторопливости это растянулось почти на год, так что сейчас в примерах используются уже Laravel 5.5 и Unity 2017.1.

В первой части статьи разберёмся, как с помощью токена авторизации добавить рекорд пользователя на сайт.
Читать полностью »

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

Привет! Как и обещали, сегодня мы готовы отвечать на вопросы про бэкенд в Avito, разработку серверной части в целом и про высокие нагрузки в частности. Как работается с сайтом, на который ежемесячно заходит почти четверть населения России? Спросите у нас! Отвечать будем с 12 до 19 часов по московскому времени. Под катом я представляю пять моих коллег, которые сегодня будут с вами на связи и напоминаю о возможных темах диалога.

AMA!

AMA. Avito. Backend - 1

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

В статье описана первичная настройка сервера. Описанные действия, проводились на виртуальной машине Vagrant и VPS.

Установка Nginx

Установим Nginx последней стабильной версии (на данный момент 1.12.1).

Для настройки репозитория нужно добавить в конец файла /etc/apt/sources.list пару строк.

Открываем файл sources.list для редактирования

sudo nano /etc/apt/sources.list

Дописываем в конец файла строки:

deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx

Где xenial – кодовое имя дистрибутива Ubuntu (16.04 – это xenial).

Сохраняем и закрываем файл.

Для проверки подлинности подписи репозитория nginx необходимо добавить ключ, которым были подписаны пакеты и репозиторий, в связку ключей программы apt.
Читать полностью »


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