• Standard PHP Library (SPL) — Часть 1: Структуры данных

    Привет, Хабр! В данной статье речь пойдет про Standard PHP Library (SPL). На хабре до сих пор нет толкового мануала об этой библиотеке, которая уже стала частью ядра PHP (с версии 5.3). Данная библиотека содержит набор интерфейсов, классов структур данных, итераторов и функций, с помощью которых можно значительно упростить себе жизнь и повысить качество кода. В данной статье я рассматриваю такую часть библиотеки, как структуры данных. Также я покажу альтернативные решения поставленных задач и сравню скорость выполнения в обоих случаях.

    Подробнее
  • Настройка редактора Visual Studio Code для разработки на PHP

    • Перевод
    • Tutorial


    Всем привет!

    Пора перейти от слов к действиям и познакомиться с Visual Studio Code поближе. В этом посте представлена поэтапная настройка VS Code для разработки на PHP.

    Если кратко, то мы поговорим о том как:
    1. Скачать и установить Visual Studio Code.
    2. Настройть статистический анализ кода на PHP в параметрах пользователя.
    3. Скачать и установить расширение PHP Debug с портала Visual Studio Marketplace.
    4. Настройть расширение PHP Debug для использования XDebug.
    Читать дальше →
  • Сервис-ориентированная архитектура (SOA)

    • Перевод


    Сервис-ориентированная архитектура (service-oriented architecture, SOA) придумана в конце 1980-х. Она берёт своё начало в идеях, изложенных в CORBA, DCOM, DCE и других документах. О SOA написано много, есть несколько её реализаций. Но, по сути, SOA можно свести к нескольким идеям, причём архитектура не диктует способы их реализации:


    • Сочетаемость приложений, ориентированных на пользователей.
    • Многократное использование бизнес-сервисов.
    • Независимость от набора технологий.
    • Автономность (независимые эволюция, масштабируемость и развёртываемость).

    SOA — это набор архитектурных принципов, не зависящих от технологий и продуктов, совсем как полиморфизм или инкапсуляция.

    Читать дальше →
    • +26
    • 24,7k
    • 2
  • Книга «Экстремальное программирование: разработка через тестирование»

      image Возвращение знаменитого бестселлера. Изящный, гибкий и понятный код, который легко модифицировать, который корректно работает и который не подкидывает своим создателям неприятных сюрпризов. Неужели подобное возможно? Чтобы достичь цели, попробуйте тестировать программу еще до того, как она написана. Именно такая парадоксальная идея положена в основу методики TDD (Test-Driven-Development — разработка, основанная на тестировании). Бессмыслица? Не спешите делать скороспелые выводы. Рассматривая применение TDD на примере разработки реального программного кода, автор демонстрирует простоту и мощь этой методики. В книге приведены два программных проекта, целиком и полностью реализованных с использованием TDD. За рассмотрением примеров следует обширный каталог приемов работы в стиле TDD, а также паттернов и рефакторингов, имеющих отношение к TDD. Книга будет полезна для любого программиста, желающего повысить производительность своей работы и получить удовольствие от программирования.
      Читать дальше →
    • Локальный веб-сервер под Linux, с автоматическим поднятием хостов и переключением версий PHP

      Скорее всего какие-то части этой статьи уже знакомы многим хаброжителям, но в связи с покупкой нового рабочего ноутбука я решил собрать все крупинки воедино и организовать удобное средство для разработки. Мне часто приходится работать со множеством маленьких проектов, с разными версиями PHP, часто переводить старые проекты на новые версии. В далёком прошлом, когда я был пользователем Windows то использовал OpenServer. Но с переходом на Linux мне нехватало той простоты создания хостов и переключений версий которые были в нём. Поэтому пришлось сделать еще более удобное решение на Linux =)

      Цели


      1. Использовать текущий на момент написания статьи софт
      2. Чтоб разграничить локальные домены, будем использовать специальный домен .loc
      3. Переключения версий PHP реализуем через поддомен c помощью fast-cgi
      4. Автоматическое создание хоста с помощью vhost_alias и dnsmasq

      Что имеем в итоге. При переходе на
      56.test.loc
      Apache запустит c версией PHP 5.6.36
      /var/www/test.loc/public_html/index.php
      Поменяв поддомен на
      72.test.loc
      будет запущен тот же файл но уже с версией PHP 7.2.7

      Другие версии доставляются аналогичным описанным ниже способом.

      Для создания еще одного сайта просто создаем в /var/www/ папку имеющую окончание .loc, внутри которой должна быть папка public_html являющаяся корнем сайта

      Вот собственно и все. Как без дополнительных мучений, перезапусков, и редактирований конфигов имеем автоматическую систему для работы с сайтами.
      Читать дальше →
    • Офис под Agile: где разместить тысячу разработчиков?

      Всем привет. Я работаю в московском офисе Технологического Центра Дойче Банка. Для тех, кто не знает, — мы занимаемся разработкой приложений для CIB (Corporate and Investment Banking) бизнеса в Нью-Йорке, Лондоне, Франкфурте, Токио, Сингапуре, Чикаго, Сиднее. В России в Техцентре работают более 1000 человек — это примерно 130 команд. Всего в мире таких центров у Дойче Банка четыре: в России (Москва и Санкт-Петербург), США, Румынии и Индии.



      Примерно полтора года назад стало понятно, что мы перестали помещаться в наш офис и нам надо искать себе новый дом.
      Читать дальше →
    • Пятничный PHP: бесплатные вебинары от Skillbox

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



        Так вот, в сегодняшней подборке — бесплатные вебинары по PHP. Темы самые разные, полезную для себя информацию может почерпнуть как новичок (основной упор именно на них), так и программист с опытом.
        Читать дальше →
        • +17
        • 3,4k
        • 3
      • Composer — менеджер зависимостей для PHP

          Composer (getcomposer.org) — это относительно новый и уже достаточно популярный менеджер зависимостей для PHP. Вы можете описать от каких библиотек зависит ваш проект и Composer установит нужные библиотеки за вас! Причём Composer — это не менеджер пакетов в классическом понимании. Да, он оперирует с сущностями, которые мы будем называть «пакетами» или библиотеками, но устанавливаются они внутрь каждого проекта отдельно, а не глобально (это одно из основных отличий от старого-доброго PEAR).

          Кратко, как это работает:
          1. У вас есть проект, который зависит от нескольких библиотек.
          2. Некоторые из этих библиотек зависят от других библиотек.
          3. Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код.
          4. Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта.

          При создании Composer авторы черпали идеи и вдохновение из аналогичных проектов: npm для Node.js и Bundler для Ruby.

          Изначально он был спроектирован и разработан двумя людьми Nils Adermann и Jordi Boggiano, сейчас в проекте участвует более двадцати контрибьюторов, Проект написан на PHP 5.3, распространяется под лицензией MIT и доступен на github.

          Первые коммиты были сделаны апреле 2011 года и на сегодняшний день Composer находится в стадии «alpha3». Однако, он уже достаточно стабилен и используется многими популярными PHP проектами (например, Symfony 2). Список проектов использующих Composer можно посмотреть на сайте packagist.org — это официальный репозиторий Composer пакетов. Кстати, на недавней конференции Devconf 2012 разработчик фреймворка Yii в своём докладе упомянул, что Yii2 скорее всего тоже будет использовать Composer.

          В этой статье я кратко опишу основные возможности Composer и мы попробуем создать демонстрационный проект использующий Composer для загрузки необходимых библиотек. Все примеры будут доступны на github.com и bitbucket.org.

          Читать дальше →
        • Как мы перестали тратить неделю на выдачу dev-стенда

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

            Читать дальше →
            • +15
            • 3,4k
            • 5
          • Небольшие трюки с Elasticsearch

              Небольшая заметка, скорее для себя, о мелких трюках по восстановлению данных в Elasticsearch. Как починить красный индекс если нет бэкапа, что делать если удалил документы, а копии не осталось — к сожалению в официальной документации об этих возможностях умалчивают.
              Читать дальше →
              • +13
              • 3,2k
              • 5