LINUX.ORG.RU

Релиз Laravel 5.1 - web-фреймворка для языка PHP

 ,


1

1

В истории Laravel это первый релиз, который предлагает долгосрочную поддержку. Первоначально фреймворк всегда следовал мантре «релиз раньше, релиз чаще», которая пользуется популярностью в приложениях с открытым исходным кодом.

С ростом популярности фреймворка настало время сфокусироваться на потребностях крупных организаций и критически важных приложений, которые нуждаются в обновлениях безопасности и не могут быстро обновляться на очередную значительную версию фреймворка.

Laravel 5.1 будет получать обновления безопасности в течении трёх лет.

Долгосрочная поддержка, возможно, самая главная особенность этого выпуска, но релиз так же включает некоторые другие новые функции.

Новая документация

Документация была полностью переработана. Это было огромным достижением. Бесчисленные часы были потрачены на тонкую настройку каждой страницы. Тейлор сказал, что он лучше задержит релиз фреймворка, чем выпустит его с плохой документацией. Ещё одна новая функция документации — поиск в режиме реального времени с автозаполнением.

PSR-2

Приложение и генераторы теперь соответствуют PSR-2. Самые большия изменения от текущего стиля Laravel — табы заменены на пробелы и управляющие структуры находятся на одной строке.

Получение сервисов внутри шаблонов

Теперь вы можете запросить сервис прямо внутри blade-шаблона:

@extends('layouts.app')
@inject('stats', 'StatisticsService')
<div>{{ $stats->getCustomerCount() }}</div>

Вещание событий

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

Улучшенное модульное тестирование приложения

С включением пакета тестирования, процесс написания модульных тестов стал проще, чем раньше:

public function testNewUserRegistration()
{
    $this->visit('/register')
         ->type('Taylor', 'name')
         ->check('terms')
         ->press('Register')
         ->seePageIs('/dashboard');
}

Чтобы глубже познакомится с этими и другими функциями, смотрите Laracasts и руководства от Мэтта Стауффера

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Или я чего-то не знаю, или какое-то странное представление у разработчиков Laravel о модульных тестах.

Kilte ★★★★★ ()
Ответ на: комментарий от Kilte

Или я чего-то не знаю, или какое-то странное представление у разработчиков Laravel о модульных тестах.

Я посмею предположить, что ты очень много чего не знаешь.

BaBL ★★★★★ ()

В новости о том что PHP 20 лет беснуется толпа хейтеров. А тут зарелизился самый популярный PHP фреймворк и до сих пор никто не набежал. Подозрительно.

anonymous ()
Ответ на: комментарий от anonymous

Давай еще каждый хеллоууорлд пыха отдельно обсуждать.

anonymous ()

«релиз раньше, релиз чаще»

«релизь раньше, релизь чаще» Shaman007.

xaizek ★★★★★ ()

Теперь вы можете запросить сервис прямо внутри blade-шаблона

Ну не могу удержаться от сарказма — это даже в моем велосипеде с самого начала было.

документация

А доки это хорошо, надо будет позырить что они там намутили в итоге.

странное представление о модульных тестах

Да, селениум какой-то ))

deep-purple ★★★★★ ()

запилить шаблонизатор для шаблонизатора:

@extends('layouts.app') @inject('stats', 'StatisticsService') <div>{{ $stats->getCustomerCount() }}</div>

---

<div><?= $stats->getCustomerCount() ?></div>

anonymous ()
Ответ на: комментарий от anonymous

раз уж использует контроллеры то и нехер инициализацию и настроики вывода пихать во вью

@extends('layouts.app') @inject('stats', 'StatisticsService')

стало

$this->layout = 'layouts.app'; $this->stats = new StatisticsService();

anonymous ()
Ответ на: комментарий от BaBL

Возможно и так. Но модульные тесты (они же unit-тесты) насколько мне известно предназначены для тестирования классов, функций и всего такого прочего. Причём здесь тыкание интерфейса? Это уже скорее похоже на функциональное тестирование.

Kilte ★★★★★ ()
Ответ на: комментарий от deep-purple

Ну не могу удержаться от сарказма — это даже в моем велосипеде с самого начала было.

А по-моему это вообще паршивая идея. Лучше сразу передавать в шаблоны необходимые данные. Потом хотя бы рефакторить проще будет (при условии, что в IDE не запилили поддержку этой фичи). Ну не знаю короче. Не нравится мне всё это.

Kilte ★★★★★ ()
Ответ на: комментарий от Kilte

Иногда реально бывает нужно дернуть кого-то уже в шаблоне.

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

Например?

Ну допустим есть сервис URLGenerator, который позволяет получить URL на основе имени маршрута. Но тогда лучше сделать расширение определяющее функцию, доступную только в шаблонах.

Какая ещё может быть необходимость, я не представляю. Если только это не «надо сделать вчера».

Kilte ★★★★★ ()
Ответ на: комментарий от deep-purple

Да, селениум какой-то ))

Селениум - это функциональные тесты, а не модульные.

no-such-file ★★★★★ ()
Ответ на: комментарий от Kilte

Ну а разве «пробросить что-то в шаблон» это не то же самое что и «пробросить в шаблон вообще все»? Минус второго варианта — не получится песочницы.

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

Обычно пробрасывать всё — не самая хорошая идея. Что-то сродни God object. Пусть лучше шаблон знает только о том, что ему действительно необходимо. Да, так не очень удобно, но поддерживать потом должно быть проще.

Kilte ★★★★★ ()
Ответ на: комментарий от Kilte

Мне кажется что концепт огораживания пошел от возможности менять шаблонизаторы как перчатки, от того, что хотелось меньшей связности компонентов.

deep-purple ★★★★★ ()
Ответ на: комментарий от Kilte

Но вот необходимость в шаблонизаторе, как выше уже анон отметил — это тот еще холиварный вопрос.

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

Шаблонизаторы на бэкэнде вообще не нужны, ИМХО. А особенно не нужны всякие блэйды, твиги и смарти. Только тормоза лишние и польза сомнительная. Вот Plates например, хороший, годный шаблонизатор. В конце-концов 2015-й год на дворе, с рендерингом отлично справляется клиент.

Kilte ★★★★★ ()
Ответ на: комментарий от ladserg

Аксиома Эскобара

Чем он лучше YII'я?

Symfony приятнее. Пользовался всеми тремя, если что. А вообще вопрос предпочтений. В целом терпимый фреймворк.

eduard_pustobaev ★★ ()
Последнее исправление: eduard_pustobaev (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.