Простая балансировка нагрузки для MySQL и PHP с помощью библиотеки mysqlnd

  • PHP
  • 2 года назад

MySQL всегда занимал первое место в качестве СУБД для работы с PHP. Так было практически с создания языка. Конечно сейчас, применяются и PostgreSQL, SQL Server или Oracle, но для работы в web зачастую используется MySQL.

Выбор пал на MySQL потому, что на запуск решения не приходилось тратить много времени. libmysqlclient распространялся вместе с PHP до тех пор пока не был лицензирован под GPL, после чего эта библиотека была исключена из состава PHP.

Читать далее...

Обзор компонентов Symfony2 : Авторизация

  • PHP
  • 2 года назад
  • 4/6

В случае если любой из провайдеров аутентификации (см. Провайдеры аутентификации) подтвердит непроверенный токен, то будет возвращен аутентифицированный токен. Аутентификационный подписчик должен напрямую установить этот токен в TokenStorageInterface при помощи метода [setToken()](http://api.symfony.com/2.6/Symfony/Component/Security/Core/Authentication/Token/Storage/TokenStorageInterface.html#setToken()).

После этого пользователь считается аутентифицированным, то есть идентифицированным. Теперь в любой части приложения вы можете использовать этот токен для определения доступен ли определенный URL пользователю или может ли он изменять определенный объект. Само решение о праве доступа принимается экземпляром AccessDecisionManagerInterface.

Читать далее...

Что нового в Symfony 2.7: Twig в роли полноправной составляющей фреймворка

  • PHP
  • 2 года назад

Когда я (далее Я заменяйте на Fabien Potencier) начинал работать над Symfony2, twig не существовал вовсе. Поэтому для упрощения работы с PHP я создал Symfony Templating Engine.

Позднее, осознав все неудобства работы с PHP в качестве шаблонизатора, я решил написать свой язык для шаблонов, а именно - Twig, в основу которого я взял язык Jinja2 из Python. Таким образом Symfony2 стал первым популярным фреймворком, который использовал шаблонизатор не на PHP. Конечно, тогда я и не мог представить, что Twig станет настолько популярным среди разработчиков Symfony и поэтому я предусмотрел возможность использования в Symfony2 как Twig, так и PHP.

Читать далее...

Использование классов избирателей для проверки прав доступа в Symfony 2

  • PHP
  • 3 года назад

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

Для того, чтобы использовать классы избирателей (Voters), сначала стоит понять как Symfony с ними взаимодействует. Все они просматриваются каждый раз при вызове метода isGranted() службы security.context. Каждое правило либо разрешает, либо запрещает доступ к определенному ресурсу.

Читать далее...

Composer - все дело в lock файле

  • PHP
  • 3 года назад

Composer давно и, видимо, надолго занял твердое место в качестве менеджера пакетов для PHP. Он довольно прост, эффективен и встречается повсеместно.

Известно, что достаточно создать файл composer.json, в котором просто перечислить список необходимых пакетов и их версий и запустить composer install.

Потом просто сохраняете вашу версию в систему контроля версий, и любой человек работающий с вами в команде просто выполняет composer install и получает проект со всеми установленными зависимостями.

Читать далее...

Определение и проверка параметров конфигурации для бандла в Symfony 2

  • PHP
  • 3 года назад

После загрузки параметров из различных источников, их значение и структуру можно проверить при помощи “Definition” части компонента Config. Чаще всего параметры устроены иерархично. Так же, как правило, на них накладываются определенные ограничение, например, параметр может принимать только числовое значение или быть одним из нескольких предопределенных значений.

В следующем примере конфигурации используется четкая иерархия и несколько правил проверки значений (значение auto_connect может иметь только булево значение).

Читать далее...

Шаблоны проектирования в PHP : Цепочка обязанностей

  • PHP
  • 3 года назад
  • 5/4
  • Паттерн Chain of Responsibility (Цепочка обязянностей) позволяет избежать жесткой зависимости отправителя запроса от его получателя (т.е. обеспечивается слабая связанность компонентов системы), при этом запрос может быть обработан несколькими объектами.
  • Объекты-получатели связываются в цепочку. Запрос передается по этой цепочке, пока не будет обработан.
  • Вводит конвейерную обработку для запроса с множеством возможных обработчиков.
Читать далее...

Symfony 2 Joboard : Отправка писем через Mailer

Symfony по-умолчанию содержит в себе один из лучших решений в PHP для организации рассылки - Swift Mailer. Конечно же библиотека полностью интегрирована с Symfony и включает в себя некоторые дополнительные функции. Давайте начнем с отправки простого письма с токеном, в котором партнеру сообщается, что его аккаунт был активирован. Но сначала надо настроить несколько параметров в файле parameters.yml:

Читать далее...