Новое в Symfony 2.8: Улучшенная консоль

Теперь к столбцам в таблице можно применять стили

В Symfony 2.8 вы можете задавать индивидуальный визуальный стиль для каждого столбца таблицы.

Для начала инстанцируйте класс TableStyle, чтобы задать характеристики стиля:

use Symfony\Component\Console\Helper\TableStyle;

$rightAligned = new TableStyle();
$rightAligned->setPadType(STR_PAD_LEFT);
Затем примените индивидуальный стиль к любому столбцу таблицы при помощи цифрового индикатора этого столбца:

use Symfony\Component\Console\Helper\Table;

$table = new Table($output);
$table->setHeaders(['#', 'Path', 'Size']);

$table->setColumnStyle(2, $rightAligned);

// ...

$table->render();
Читать далее...

Шаблоны проектирования в PHP

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

Что же такое шаблоны проектирования? Шаблоны проектирования это не шаблоны анализа, это не описания стандартных структур (например, связанных списков). Это не определенные разработки приложений или фреймворков. По сути, шаблоны проектирования это «описания взаимодействующих объектов и классов, предназначенных для решения общей проблемы проектирования в определенном контексте». Иным словами, шаблоны проектирования предоставляют обобщенное, многократно применяемое решение проблем программирования, с которыми мы сталкиваемся каждый день. Шаблоны проектирования это не готовые классы или библиотеки, которые можно просто применить к вашей системе. Это не конкретное решение, которое можно преобразовать в исходный код. Шаблоны проектирования – это намного больше. Это шаблоны, которые можно использовать для решения проблемы в различных конкретных ситуациях.

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

Руководство по модульному тестированию. Часть I. Введение в PHPUnit

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

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

Тестирование API : Установка и использование Codeception

Существует несколько методов установки codeception. Мы воспользуемся composer для этой цели, вы, конечно, можете выбрать любой удобный для вам метод.

Для начала перейдем в каталог куда вы хотите установить codeception и где будут храниться ваши тесты. В моем случае - app1.

composer require "codeception/codeception:*"

или

php composer.phar require "codeception/codeception:*"

Через некоторое время codeception будет скачан. После установки вы сможете использовать его в командной строке. Выполним следующую команду, чтобы проверить, что все установилось корректно:

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

Тестирование API : Выбор фреймворка для тестирования (PHP, Codeception или Behat)

Существуют различные фреймворки для разработки приложений, которые значительно облегчают нам жизнь. Точно также существуют различные фреймворки для тестирования, которые могут использоваться для автоматического тестирования. Так какой же фреймворк использоваться? Тут все очень субъективно. У всех есть свои плюсы. Важно знать, чего вы хотите достигнуть и в какие сроки. Когда я впервые писал тесты для API, мне понадобилось 4 дня, чтобы найти подходящий инструмент, с помощью которых я мог бы автоматически тестировать все точки API и тесты перед тем, как сделать коммит. Да-да, если у вас нет автоматического инструмента, вам придется все делать вручную каждый день.

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

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

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

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

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

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

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

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

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

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

Подготовка к Zend сертификации : Строки и и регулярные выражения

  • PHP
  • 2 года назад
  • 3/3
  • выделяются одинарными или двойными кавычками
  • двойные кавычки применяются в случае парсинга переменных или использования специальных символов (\n). На скорость обработки данных не влияет
  • strlen($string) - возвращает длину строки, а именно количество байт, а не символов
  • str_word_count($string, $format, $charlist) - возвращает количество слов, $format (0 - возврат количества слов, 1 - массив из всех слов, 2 - ассоциативный массив, где в качестве ключей - положение в строке (индекс)), $charlist - список символов, из которых может состоять слово (то есть 3 - слово fri3nd будет посчитано).
  • count_chars($string, 1) - считает количество вхождений символов, 1 - режим, возвращает массив со всеми символами (0 - возвращает символы, не входящие в строку).
  • soundex($string) // высчитывает soundex ключ строки (строка длинной в 4 символа, начинающаяся с буквы), для поиска по произношению, например, soundex(“Euler”) == soundex(“Ellery”); // E460
  • metaphone($string, $phonemes) - высчитывает metaphone ключ для строки (является более точным сравнением чем soundex(), так как в ней учитываются правила произношения в английском языке, сгенерированные ключи разной длины), $phonemes ограничивает список возвращаемых символов.
  • trim($string, $optional_char_list) - убирает пробелы из начала и окончания строки (space/tab/newline); если задан $optional_char_list, то указанные символы так же удаляются.
  • ltrim($string, $optional_char_list) - удаляет пробелы из начала строки.
  • rtrim($string, $optional_char_list) - аналог chop(), удаляет пробелы с конца строки.
Читать далее...