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

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

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

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

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

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

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

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

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

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

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

В 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
  • 2 года назад

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

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

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

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

12 основных команд для вставки данных в MySQL с примерами

Следующая команда соединит нас с БД devdb, имя пользователя devuser и пароль mysecretpwd.

mysql -u devuser -pmysecretpwd devdb
mysql>

Мы будем вводить данные в таблицу employee. Структура таблицы приведена ниже:

mysql> desc employee;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(20) | YES  |     | NULL    |                |
| dept   | varchar(10) | YES  |     | NULL    |                |
| salary | int(10)     | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
Читать далее...

Новый установщик Symfony: самый быстрый способ начать работу с Symfony

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

Совсем недавно команда Symfony презентовала установщик для своего фреймворка. Основная задача которого - упростить процесс установки Symfony.

До настоящего времени установка Symfony подразумевала несколько шагов:

Установщик сделает все это за один шаг. Он загружает архивированный файл, содержащий исходный код и вендоров, таким образом вам не придется выполнять дополнительных действий при установке Symfony.

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

50 самых часто используемых команд в UNIX/Linux с примерами

Конечно, не стоит воспринимать эту статью как подробное руководство, но она определенно даст вам отправную точку при работе с Linux. Советую поставить себе в браузере закладку на этот список.

Если я что то упустил, то дайте мне знать в комментариях.

Создание tar архива

$ tar cvf archive_name.tar dirname/

извлечение существующего архива:

$ tar xvf archive_name.tar
Читать далее...

Чего ожидать от PHP7. Часть 1

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

Совершено независимо от того как вы относитесь к PHP 7, он будет выпущен в этом году. Рабочее предложение по PHP 7 прошло практически единогласно (32 к 2). Теперь набор функций уже зафиксирован и мы увидим первый релиз уже в середине июня.

Но что это значит для конечного пользователя? Все мы видели с каким нежеланием веб хостинги переходили на PHP 5.х. Сколько мы увидим новых проблем связанных с обратной совместимостью и насколько это замедлит переход на последнюю версию?

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