You'll sometimes have groups of gems that only make sense in particular environments. For instance, you might develop your app (at an early stage) using SQLite, but deploy it using mysql2 or pg. In this example, you might not have MySQL or Postgres installed on your development machine, and want bundler to skip it.
Иногда у Вас может возникнуть необходимость использовать разные наборы гемов в разных окружениях. К примеру: вы разрабатываете приложение, используя SQLite, но при этом на сервере используете Postgres. В таком случае, Вам не нужно, чтобы Postgres устанавливался на локальной машине.
Не совсем понятно, что имеется в виду под термином "совмесТная работа".
Изменение структуры? Это делается миграциями. Один решил, что нужно в БД добавить таблицу, делает миграцию, пушит в гит. Остальным придется это изменение принять перед своими пушами, ну и после pull-a они увидят, что добавилась новая миграция и должны будут ее накатить на свою БД.
Другого пока ничего не придумали.
<?php
/*
* Скрипт перехватывает поток, предназначенный для программы sendmail
*
* Настройка:
* 1. в php.ini прописать путь к этому файлу
* sendmail_path = "php -f c:\Tools\mailtool\mailtool.php"
*
* 2. указать в переменной $mailDir путь к каталогу, куда будут складываться
* отправленные письма
*/
$mailDir = "c:\\server\\mail\\";
$fileName = date('d.m.Y-H.i.s') . "[". round(microtime(), 3) ."]";
// получаем поток
$contents = file_get_contents("php://stdin");
// Нужно все одиночные \n Заменить на \r\n
$pattern = "/(\\n(\\r)?)|(\\r(\\n)?)/m";
$replacement = "\r\n";
$contents = preg_replace($pattern, $replacement, $contents);
// запишем в файл
file_put_contents($mailDir . "{$fileName}.eml", $contents);
?>