Микро-толки — дайджест #8

В этом микро-толке мы затронули довольно много тем. Было обсуждение и MySQL, и неочевидного поведения PHP, и "трюков" javascript. А началась наша встреча с понятия, которое сейчас очень сильно хайпится — Serverless.

Serverless архитектура имеет 2 основных определения:

  1. Backend as a Service или приложения, которые полностью или в значительной мере зависят от сторонних вендоров для реализации логики бекенда или хранения состояния приложения. Это определение было популярно до 2015 года.
  2. С выходом AWS Lambda в 2014-2015 годах стало популярно определение Function as a Service — такая архитектура приложения, при которой часть серверной логики выполняется в вычислительных контейнерах без состояния.

Довольно хороший обзор Serverless архитектуры дается в статье "Serverless Architectures". Кроме того в рамках второго определения становится очень популярным Serverless Framework.

Микро-толки — дайджест #1

Данная статья представляет собой дайджест тем, которые обсуждались в рамках PHP micro-talks #1 с коллегами.

Вкратце о регламенте:

  • 15 минут
  • 7 ссылок IT-тематики
  • 1 ссылка общей тематики

Реализация фильтрации по тегам в Yii и не только

Теггирование различных элементов очень часто встречается в разработке сайтов. Сами теги реализуются просто — это отдельная таблица с названиями тегов и таблица связки многие-ко-многим между тегами и какими-то сущностями. Однако реализация фильтрации по тегам — не такая уж простая задача. Фильтровать сущности по тегам как правило приходится одним из следующих вариантов:

  • выбрать все элементы без тегов
  • выбрать элементы, имеющие все указанные теги (и возможно, другие теги)
  • выбрать элементы, имеющие один или несколько из указанных тегов (и возможно, другие теги)

Рассмотрим каждый из этих случаев и приведем пример конкретной реализации фильтрации на Yii.

Качественный импорт дампа базы mysql

Наверяка вам не раз приходилось импортировать дампы базы данных. И не смотря на всю тривиальность этой задачи, часто возникают вопросы, а иногда и проблемы связанные с этим. Ниже приведен весь код, который необходим, чтобы быстро применить дамп базы из командной строки.

SET NAMES utf8;
DROP DATABASE `mydb`;
CREATE DATABASE `mydb` DEFAULT CHARACTER SET utf8;
USE `mydb`;
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET autocommit=0;
SET foreign_key_checks=0;
SET unique_checks=0;
SOURCE /path/to/db_dump.sql;
COMMIT;
SET autocommit=1;
SET foreign_key_checks=1;
SET unique_checks=1;

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

Вывод результата запроса консоли mysql в вертикальном формате

Случалось ли такое, что при выборке из таблицы с множеством столбцов вы получали совершенно нечитаемый вывод на экран (из-за того, что столбцы расползались по нескольким строкам)?

Оказывается, можно вывести каждую строчку по-отдельности в виде пар «ключ: значение». Для этого всего лишь нужно в конце запроса вместо ; поставить G