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

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

Для большинства разработчиков работа над 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
  • 1 год назад

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

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

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

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

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

В первой части мы рассмотрели наиболее важные аспекты обратной совместимости и новый функционал в 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
  • 1 год назад

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

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

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

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