Построение Symfony форм на Bootstrap 3: Вывод блока подсказки

А вот пример результата:

Для начала создадим форму с разметкой bootstrap. Затем добавим подсказку к полю. Есть хорошая новость - начиная с версии 2.6 Symfony уже поддерживает вывод форм с разметкой для bootstrap.

Прежде чем начать, я считаю, что вы уже добавили стили bootstrap в свою разметку страницы. Так же вы должны иметь основные понятия по созданию и выводу форм в Symfony. Если же в каком-то из этих моментов вам не хватает знаний, то я советую прочитать следующие статьи:

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

Как установить MongoDB на Ubuntu 14

Для установки вам понадобится:

  • сервер Ubuntu 14
  • пользователь с правами sudo, но не root

На этом этапе мы будем импортировать открытый ключ MongoDB GPG. MongoDB уже включен в состав одного из официальных репозиториев Ubuntu, но официальный репозиторий MongoDB содержит последнюю версию, именно её и рекомендуют для установки. Ubuntu гарантирует подлинность программного обеспечения с помощью GPG ключей, поэтому сначала необходимо импортировать ключ для репозитория MongoDB.

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

10 принципов современной разработки на PHP

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

Для большинства разработчиков работа над PHP приложениями сейчас и десять лет назад отличается кардинально. В те времена многие из нас были веб-дизайнерами в чью ответственность входила не только разработка бекэнда, но и проектирование БД, системное администрирование, фронтэнд программирование, а иногда и создание UI.

За последние года картина довольно сильно изменилась. Простые сайты теперь представляют из себя целые SaaS приложения - зачем создавать очередной движок для блога, встраивать CMS или ecommerce систему, когда уже десятки разных продуктов существуют. Другими словами, всё что можно было автоматизировать уже оптимизировано. Но остается один момент не поддающийся этому процессу - нужды заказчиков.

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

Настройка HTTP аутентификации Nginx в Ubuntu 14

Nginx - легковесный, по сравнению с Apache, HTTP, обратный прокси сервер написанный Igor Sysoe. Официальную документацию к Nginx вы найдете здесь.

Для начала я полагаю, что вы создали свой VPS сервер и установили на него Nginx. Если же вы этого еще не сделали, то статья по начальной настройке сервера поможет вам настроить свой VPS сервер, а информация по установке Nginx вы найдете в нашем сообществе.

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

Обзор компонентов Symfony2 : OptionsResolver

Я думаю, вы не раз писали что-то подобное:

$options = [
    'page' => isset($input['page']) ? $input['page'] : 1,
    'items' => isset($input['items']) ? $input['items'] : 10
];

Нам требуется массив пользовательских настроек. В случае отсутствия каких-либо опций мы используем значения по умолчанию. Поэтому, проверяем заданы ли настройки, если нет, то берем значения по умолчанию. Согласитесь, такой код очень плохо читается и занимает довольно много места, так как повторяется этот участок, как правило, далеко не один раз.

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

Структура веб-приложений

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

Одна из постоянных задач, с которой я сталкиваюсь в роли веб-разработчика, это какую архитектуру выбрать для моего приложения. Я считаю, что на эту проблему стоит потратить немало времени. Мне понравились идеи, которые изложил Kris Wallsmith на SymfonyCon. Конечно, я не разделяю его мнения полностью, но его речь вдохновляет, да и всегда интересно заглянуть за кулисы и понять других разработчиков.

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

Применение кеширования Doctrine DBAL в Symfony2

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

В Symfony2 DoctrineBundle отвечает за внедрение и настройку Doctrine, включая DBAL. Но этот бандл пока не поддерживает настройку кеширования DBAL (но поддерживает его для ORM части Doctrine).

Для начала вам потребуется создать CompilerPass внутри своего бандла. Он будет отвечать за выгрузку службы dbal и добавления необходимых настроек для поддержки кеширования.

<?php
// src/Acme/HelloBundle/DependencyInjection/Compiler/AddDbalCacheConfigurationPass.php

namespace Acme\HelloBundle\DependencyInjection\Compiler;

use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;

class AddDbalCacheConfigurationPass implements CompilerPassInterface
{
    public function process(ContainerBuilder $container)
    {
        $id = 'doctrine.dbal.default_connection.configuration';

        if ($container->hasDefinition($id)) {
            $container
                ->getDefinition($id)
                    ->addMethodCall('setResultCacheImpl', array(new Reference('doctrine.orm.default_result_cache')))
            ;
        }
    }
}
Читать далее...

Чего ожидать от PHP 7, часть 2

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

В первой части мы рассмотрели наиболее важные аспекты обратной совместимости и новый функционал в PHP 7. В этой же статье мы рассмотрим 6 других нововведений в PHP 7, о которых, однозначно, стоит знать.

Новый экранирующий символ \u позволит указывать символы юникода в шестнадцатеричном формате внутри строк PHP:

Формат использования имеет следующий вид: \u{CODEPOINT}, например символ зеленого сердца можно напечатать так: `\u{1F49A}.

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