((#Laravel4.2)) ==Laravel 4.2== Полный список изменений этой версии можно увидеть, выполнив команду %%(t)php artisan changes%% в установленной версии 4.2 или ((https://github.com/laravel/framework/blob/4.2/src/Illuminate/Foundation/changes.json==посмотреть в файле изменений на Github)). В это описание вошли только значительные улучшения и изменения данной версии. .(alert) **Примечание:** Во время разработки версии 4.2 многие небольшие исправления и улучшения были включены в различные подверсии Laravel 4.1. Поэтому не забудьте также ознакомиться со списком изменений Laravel 4.1! ===Требование PHP 5.4=== Laravel 4.2 требует PHP 5.4 или выше. Это обновлённое требование PHP позволяет нам использовать новые возможности PHP, такие как типажи, чтобы обеспечивать более выразительные интерфейсы для таких инструментов как ((docs/v4/billing==Laravel Cashier)). Также PHP 5.4 даёт преимущество в скорости и производительности по сравнению с PHP 5.3. ===Laravel Forge=== Laravel Forge (кузница) - новое веб-приложение для простого создания и управления PHP-серверами в облаке по вашему выбору, включая inode, DigitalOcean, Rackspace и Amazon EC2. Поддерживая автоматическую настройку Nginx, доступ по ключам SSH, автоматизацию работы Cron, мониторинг серверов через NewRelic & Papertrail, "Push To Deploy" ("нажми, чтобы развернуть"), настройку обработчика очереди Laravel, и многое другое, Forge предоставляет наиболее простой и доступный способ для запуска всех ваших приложений Laravel. Сейчас установочный файл конфигурации Laravel 4.2 %%(t)app/config/database.php%% по умолчанию настроен на использование Forge, что обеспечивает более удобное развёртывание свежих приложений на платформе. Больше информации о Laravel Forge можно найти на ((https://forge.laravel.com/==официальном сайте Forge)). ===Laravel Homestead=== Laravel Homestead (ферма) - официальное окружение Vagrant для разработки надёжных приложений на Laravel и PHP. Подавляющее большинство необходимых для коробок операций обрабатывается перед тем, как коробка подготавливается к распространению, что позволяет ей загружаться чрезвычайно быстро. Homestead включает в себя Nginx 1.6, PHP 5.5.12, MySQL, Postgres, Redis, Memcached, Beanstalk, Node, Gulp, Grunt и Bower. Homestead содержит простой конфигурационный файл %%(t)Homestead.yaml%% для управления несколькими приложениями Laravel в одной коробке. Сейчас по умолчанию установленный Laravel 4.2 содержит файл конфигурации %%(t)app/config/local/database.php%%, который настроен на использование базы данных Homestead, что делает начальную установку и настройку Laravel удобнее. В официальную документацию также была включена ((docs/v4/homestead==документация Homestead)). ===Laravel Cashier=== Laravel Cashier (кассир) - простая, удобная библиотека для управления подписками биллинга с помощью Stripe. Начиная с версии Laravel 4.2, мы добавили документацию по Cashier к основной документации Laravel, хотя установка самого компонента по-прежнему не обязательна. Эта версия Cashier содержит много исправлений, поддерживает множество валют и совместима с последним Stripe API. ===Обработчики очереди - демоны=== Команда Artisan %%(t)queue:work%% теперь поддерживает параметр %%(t)--daemon%% для запуска обработчика в "режиме демона", это значит, что обработчик будет продолжать выполнять работу без перезагрузки фреймворка. Это приводит к значительному снижению загрузки процессора за счёт несколько более сложного процесса развёртывания приложения. Больше информации о демонах - обработчиках очереди можно найти в ((docs/v4/queues#daemon-queue-worker==документации по очередям)). ===Драйверы Mail API=== В Laravel 4.2 вошли новые драйверы Mailgun и Mandrill API для функций %%Mail%%. Для многих приложений это обеспечивает более быстрый и надёжный способ отправки электронной почты, чем варианты SMTP. Новые драйверы используют HTTP библиотеку Guzzle 4. ===Мягко удаляемые типажи=== Более чистая архитектура для "мягких удалений" и других "глобальных областей" была добавлена в PHP 5.4 с помощью типажей. Эта новая архитектура позволяет проще создавать подобные глобальные типажи и чище разделять задачи внутри самого фреймворка. Больше информации о новых %%SoftDeletingTrait%% можно найти в ((docs/v4/eloquent#мягкое==документации Eloquent)). ===Удобная аутентификация и запоминаемые типажи=== Теперь Laravel 4.2 по-умолчанию использует простые типажи, содержащие необходимые свойства для пользовательских интерфейсов аутентификации и напоминания паролей. Это обеспечивает более чистый файл модели %%User%% по умолчанию. ==="Simple Paginate"=== В построитель запросов и Eloquent был добавлен метод %%simplePaginate%% (простое разбиение на страницы), который обеспечивает более эффективные запросы при использовании простых ссылок "Далее" и "Назад" в вашем постраничном представлении. ===Подтверждение миграций=== Теперь в работающих приложениях деструктивные операции миграций будут запрашивать подтверждение. Команды можно выполнять без дополнительных подтверждений, используя параметр %%(t)--force%%. ((#Laravel4.1)) == Laravel 4.1== ===Полный список изменений=== Полный список изменений для этой версии можно увидеть, выполнив команду %%php artisan changes%% в установленной версии 4.1 или ((https://github.com/laravel/framework/blob/4.1/src/Illuminate/Foundation/changes.json==посмотреть файл изменений на Github)). Это описание содержит только основные улучшения и изменения в версии. ===Новый компонент SSH=== В эту версию вошёл полностью новый компонент %%SSH%%. Эта функция позволяет вам легко подключаться через SSH к удалённым серверам и выполнять команды. Чтобы узнать больше, загляните в ((docs/v4/ssh==документацию компонента SSH)). Новая команда %%(t)php artisan tail%% использует новый компонент SSH. Чтобы узнать больше, загляните в ((docs/v4/ssh#tailing-remote-logs==документацию команды)) %%(t)tail%%. ===Boris в Tinker=== Теперь команда %%(t)php artisan tinker%% использует ((https://github.com/d11wtq/boris==Boris REPL)), если ваша система поддерживает его. Для использования этой возможности должны быть установлены расширения PHP %%(t)readline%% и %%(t)pcntl%%. Если у вас нет этих расширений, будет использована оболочка из 4.0. ===Улучшения Eloquent=== В Eloquent добавлено новое отношение %%hasManyThrough%%. Посмотрите, как им пользоваться, в ((docs/v4/eloquent#hmt==документации Eloquent)). Также был добавлен новый метод %%whereHas%% для возможности ((docs/v4/eloquent#querying-relations==получения моделей на основе ограничений отношений)). ===Подключения чтения/записи к БД=== Теперь автоматическая обработка отдельных подключений чтения/записи доступна во всём слое БД, в том числе в построителе запросов и Eloquent. Чтобы узнать больше, загляните в ((docs/v4/database#read-write-connections==документацию)). ===Приоритет очереди=== Теперь поддерживаются приоритеты очереди с помощью передачи в команду %%(t)queue:listen%% списка, разделённого запятыми. ===Обработка неудавшихся заданий очереди=== Теперь в очередях есть возможность автоматической обработки неудавшихся заданий при использовании нового переключателя %%(t)--tries%% в %%(t)queue:listen%%. Больше информации об обработке неудавшихся заданий можно найти в ((docs/v4/queues#failed-jobs==документации очередей)). ===Тэги кэша=== "Секции" кэша были заменены "тэгами". Тэги кэша позволяют назначать несколько "тэгов" элементу кэша и получать элементы по тэгу. Больше информации об использовании тэгов кэша можно найти в ((docs/v4/cache#теги==документации кэша)). ===Гибкие напоминатели паролей=== Движок напоминателя паролей был изменён для обеспечения большей гибкости разработки при проверке паролей, выводе сообщений о состоянии в сессии, и т.д. Чтобы узнать больше об использовании расширенного движка напоминателя паролей, загляните в ((docs/v4/security#сброс_и_изменение==документацию)). ===Улучшенный движок путей=== В Laravel 4.1 вошёл полностью переписанный слой путей. API прежний, но регистрация путей на все 100% быстрее по сравнению с 4.0. Весь движок был значительно упрощён, и зависимость от Symfony Routing была минимизирована до составления выражений для путей. ===Улучшенный движок сессий=== Также в версию вошёл полностью новый движок сессий. Также как и улучшения путей, новый слой сессий проще и быстрее. Мы больше не используем средства обработки сессий Symfony(а значит и PHP), а используем своё решение, которое проще и легче в обслуживании. ===Doctrine DBAL=== Если вы используете функцию %%renameColumn%% в ваших миграциях, то вам надо будет добавить зависимость %%(t)doctrine/dbal%% в ваш файл %%(t)composer.json%%. Этот пакет больше не входит в Laravel по умолчанию.