Оповещения Bootstrap в Laravel

Apr 11, 03:56 am Категория:   Комментарии

Если долго смотреть в админку сайта, то можно превратиться в блогера. Потекут из-под пальцев тексты глубокого смысла, слетятся на них почитатели таланта писательского и жизнь станет совсем исключительной. Правда админку сначала нужно написать. А состоит она, как оказалось, из кучи второстепенных фишек, натыканных вокруг формы публикации. Лично я решил начать собирать эти фишки с алертов: сообщений, предупреждений и прочего интерактива. В используемом мной Bootstrap есть готовые их версии на чистом CSS и проскриптованные. Совершил действие – получил реакцию. И главное – просто и без всякий выпрыгивающих модальных окон. Хотя и с ними тоже можно.

Алерты и прочие оповещения совсем не рокет сайенс, но без них теряется связь с приложением и приходится только догадываться, что там произошло, записался ли файл, нет ли проблем с загрузкой фото и т.п. Вроде работает, но как-то некомфортно. Поэтому все фреймворки по фронтенду предлагают соответствующие сниппеты. И для получения полноценных оповещений остаётся лишь формировать информативные сообщения в контроллере и отображать их в представлении. А чтобы не париться по поводу программирования этой функциональности в каждом новом проекте, нужно подключать готовые пакеты и добавлять несколько строк в blade-шаблоны. А так же взять за правило формировать сами сообщения по факту производства активностей.

С пакетами всё просто: можно написать свой или использовать чужой. Готовых пакетов для алертов много. Мне за последнее время попалась пара: vinkla/alert и laracasts/flash. Я начну свои эксперименты со второго пакета. Если не пойдёт или что-то не понравится, попробую первый. Если и с первым ничего не выйдет, то напишу свой. А скорее всего, я всё перепробую и напишу свой, но начну таки с laracasts/flash. И начало это, как принято в Laravel, состоит из команды

composer require laracasts/flash

которая пакет установит. После установки, по традиции, редактирую файл config/app.php и делаю две вставки

'providers' => [
     ...
    Laracasts\Flash\FlashServiceProvider::class,
];
'aliases' => [
    ...
    'Flash' => Laracasts\Flash\Flash::class,
];

Практически всё. Теперь в шаблонах blade необходимо в нужном месте вставить одну строчку.

@include('flash::message')

Всё, можно применять. Для этого можно использовать фасад, алиас которого я прописал в файле конфигурации, либо функцию-хэлпер:

     // Хотим сообщить об ошибке с помощью фасада
     Flash::error('Что-то пошло не так!');
    // Используем хэлпер для сообщение об успехе
     flash()->success('Всё отлично получилось.');

Доступно 5 видов сообщений:

  • Flash::info(‘Сообщение для вывода информации’)
  • Flash::success(‘Сообщение об успешном производстве действия’)
  • Flash::error(‘Сообщение об ошибке’)
  • Flash::warning(‘Предупреждение’)
  • Flash::overlay(‘Сообщение для вывода в модальном окне’, ‘Заголовок окна’)

Текст сообщения и его тип в виде значений ключей flash_notification.message и flash_notification.level сохранятся в сессии и будут извлечены при создании страницы. Если вставка в шаблоне для этого пакета есть, то всё должно произойти само собой. Ручная обработка сообщений, что может потребоваться при использовании не Bootstrap, а чего-нибудь другого, производится довольно просто:

@if (Session::has('flash_notification.message'))
    
{{ Session::get('flash_notification.message') }}
@endif

Что на русский можно перевести как “Если есть сообщение в сессии, то будем его транслировать в соответствии с заданным уровнем тревожности”. Скобочки и буковки в этом коде расставить по вкусу в соответствии с используемыми инструментами. И лучше сохранить код в виде всё того же blade шаблона и вставлять его куда надо.

Если для алертов используются модальные окна, то нужно после подключения библиотек jQuery.js и Bootstrap.js добавить такой скрипт:


Вот кажется и всё.

Аутентификация в Laravel

Apr 6, 04:15 am Категория:   Комментарии

Второй раз зайду в тему. Для меня действительно было шоком осознание того, что админка и пароль на вход в закрытые зоны могут создаваться отдельно. Такой вот шаблон, отпечатавшийся в мозгах до уровня принятия формы извилины. Плохо, что тупил. Хорошо, что перестал. К паролям.

Весь текст статьи

Синдром вахтёра - админка

Apr 4, 03:29 am Категория:   Комментарии

Как я не оттягивал момент начала работы с админкой, но он таки наступил на меня всей своей неотвратимой массой. Это может показаться странным, но сразу после установки в Laravel админки нет. От слова совсем. Никакой. Это легко можно проверить, запустив artisan с параметром route:list. Нормально, да? На дворе весна, а ты тут сиди и придумывай админку. Думаю, что разработчики в этом направлении тоже идут, что подтверждают нововведения в версии 5.2, но пока почти всё приходится делать самому.

Весь текст статьи

Послать по адресу

Apr 3, 08:01 pm Категория:   Комментарии

От теории к практике. Быстро! А то стоит одиноко в интернете вся из себя такая продающая страница, клиентов собрала легион, а сообщить мне об этом не может. Пока писал рассуждения о форме почтовой понял, что главное – не заморачиваться. Рассуждать можно долго, а связь должна быть прямо вот сразу. Путь в документацию Laravel – это практически тупик. Если знаешь как делать, то и по документации поймешь. А не знаешь… Ну и вот.

Весь текст статьи

Психанул. Одностраничник на Laravel.

Apr 2, 09:06 pm Категория:   Комментарии

Ещё раз прошёлся по близлежащим интернетам с целью изучения примеров сайтов на Laravel. Искал варианты с исходниками, разумеется. Всё что нашёл не выдерживает никакой критики. Либо только админка времени выхода первого айфона, либо клиентской части вообще нет, а то и просто набор вьюх без базы данных из серии “я и моё любимое животное (я справа)”. И тогда я решил сделать сайт с нуля. С сассами, бутстрепами и ещё какой-нибудь нежностью. Пусть даже всего из одной страницы.

Весь текст статьи

Модельный бизнес

Mar 28, 08:30 am Категория:   Комментарии

Кажется я сильно погорячился с заявлением, что мне для начала нужны только миграции, а модели потом. Ну закачал я данные в базу, ну порадовался, что могу ими теперь пользоваться. А ведь и не могу. От слова совсем. Для работы с базами данных в Laravel предназначены модели. В них же рекомендуют выносить из контроллеров и бизнес логику. А раз нужны модели, то таблицы нужно приводить в порядок, описывать связи, устанавливать правила и описывать как оно вообще должно работать.

Весь текст статьи

Евроремонт по-ларавельски

Mar 26, 08:41 am Категория:   Комментарии

Каждый фреймворк имеет раздел типа “Быстрый старт”. В этом разделе в духе “3 клика, 2 минуты, готовый результат” рассказывается о том, как просто и быстро можно начать пользоваться их замечательным продуктом. И это правда. Но только про первую дозу, которая, как все знают, бесплатна. А потом уже не соскочить и приходится платить. Временем, деньгами, нервами и… В общем – платить. В публикации по выбору фреймворка для фронтенда набежал нехилый список дополнений, делающих интеграцию, разработку и внешний вид более лучшими. Уточню.

Весь текст статьи

Bootstrap, Foundation и другие мимимишки

Mar 22, 10:42 pm Категория:   Комментарии

Первые тесты фреймворков семейства Laravel показали, что Google хочет от вебмастера мобильной версии сайта. Бета Я.Вебмастера, несмотря на разницу в цифрах с основной версией сервиса, тоже настаивает на мобилизации. Аргументация бронебойная: в мобильной выдаче поиска нет смысла показывать неадаптированные сайты. Правда, есть один нюанс в этой самой адаптации, заключающийся в том, что вёрстка в деле мобилизации находится на 9-м месте, а то и дальше. Но сейчас не об идеологии, а о технологии мобилизации. Как её добиться?

Весь текст статьи

Laravel на прокачку

Mar 22, 05:40 am Категория:   Комментарии

Пока голова занимается обоснованием необходимости переноса этого сайта на Laravel, я готовлю установленную версию фреймворка к великим делам. Причём не важно, с этим сайтом или с другим, но дела будут. А значит нужно установить всё, что… нужно. Это как в статьях типа “7 неотложных дел перед сексом на Красной площади” – чётко и по полочкам разложенное личное мнение, претендующее на звание истины в последней инстанции. Ну если быть скромнее, то чек-лист по доводке свежеустановленного Laravel. Пожалуй, я повторю пункты, прописанные где-то ранее. Чисто чтобы были в одном месте.

Весь текст статьи

Организация базы данных: Миграции

Mar 20, 11:10 pm Категория:   Комментарии

После всех отступлений и других телодвижений я опять добрался до базы, мать их, данных. В небольшой статье, посвящённой анализу базы Textpattern я вплотную подошёл к проектированию базы данных нового сайта на Laravel. Чтобы наше шоу не продлилось вечно, я напомню о том, что Laravel – это фремворк для веб-ремесленников. А значит, что главное результат, а не теория. Поэтому буду краток. Если получится.

Весь текст статьи

Физическое наступление. Нюансы и настройки.

Mar 20, 03:14 am Категория:   Комментарии

Было бы нечестно оставить неофита с Laravel в стадии демонстрации имени и версии. На самом деле велика вероятность, что при установке этого фреймворка что-то пойдёт не так. Самое удивительное, что некоторые нюансы исчезают из документации, но продолжают иметь место быть. Это касается, к примеру, разрешений, которые я назначал в прошлой статье служебным директориям. С чем связано это утаивание я не знаю, но для себя в чек-листе эти пункты прописал. Поделюсь ещё парой наблюдений и наработок.

Весь текст статьи

Лирическое отступление. Laravel, окружение и установка.

Mar 19, 06:00 am Категория:   Комментарии

Между делом обновил тестовый сервер, чтобы на нём можно было кувыркаться с современными фреймворками. Стыдно признаться, но у меня на нём стоял Linux Ubuntu 12.04 со старыми версиями PHP, Apache и MySQL. А некоторые обязательные для работы с Laravel пакеты не стояли и ставиться отказывались. Обновился до версии 14.04 LTS, на которой по дефолту PHP 5.5.9. Но этого оказалось мало. Раз уж мне пришлось готовить новую площадку под Laravel, напишу, что пришлось сделать, чтобы Laravel запустился.

Весь текст статьи

Организация базы данных

Mar 16, 01:52 pm Категория:   Комментарии

В публикации про роутер я не писал, что он по сути является частью абстракции контроллер и что вызываемые из него контроллеры не являеются тем, чем кажутся. А сейчас я напишу о базе данных и тоже не предупрежу, что она не является моделью. И не напишу, что строка кода use Illuminate\Database\Eloquent\Model; – это не совсем та модель, что думает начинающий кодер. И что в MVC модель не класс или объект, а слой абстракции, содержащий в себе бизнес-логику, проверку данных, хранение и поиск данных я тоже умолчу. Я много про что не напишу, т.к. сейчас я хочу просто перенести данные из Textpattern и не хочу заморачиваться на понимаение места миграций и классов в общей картине мира.

Весь текст статьи

Пара как бы СМИ и обменник на Laravel

Mar 12, 08:16 pm Категория:   Комментарии

Говорят, что весь веб построен по образу и подобию порноресурсов. с точки зрения технического специалиста, это надёжность, способность работать под высокими нагрузками, раздача большого объёма трафика и т.п. А маркетологи отметят невозможность выйти из объятий порносайтов по ссылке. Можно хоть укликаться, но в браузере будет только порно. Разве что откроется десяток-другой новых окон с тем же самым контентом. Похоже представители второй древнейшей профессии начинают перенимать диджиталопыт первой. Попал я на сайт СМИ на Laravel, ткнул ссылку, а меня инфообменник на Laravel переадресовал на другой сайт СМИ на Lararavel. Ой, всё!

Весь текст статьи

Эксперимент продолжается. Роутер.

Mar 12, 02:11 am Категория:   Комментарии

После эксперимента с Lumen появилось три варианта развития ситуации: продолжать пилить экспериментальный сайт, запустить для сравнения тот же сайт на Laravel * и, наконец, разработать методику перевода сайтов с Textpattern на… Или же перевод сайтов на Laravel с… Или, к примеру, зарубиться по Bootstrap с Foundation и размахнуться на SASS через Elixir и Gulp и вааще. Всё такое вкусное, даже и не знаю, что выбрать. Это в теории. А если по уму, то этот сайт и нужно переводить. Сначала “как есть”, а потом “как получится”.

Весь текст статьи

Ша - шаблон проектирования

Mar 9, 02:02 am Категория:   Комментарии

Две вещи я не понимаю в этом мире: как можно делать бестолковые тестовые задания и как можно не понимать, что нельзя давать делать бестолковые тестовые задания. Учить новый язык или новый фреймворк можно по-разному, но для получения какого-либо вменяемого результата следует делать не “надувной” проект из учебника, а нормальный боевой сайт. В случае с Laravel можно переводить сайты с TxP на новую платформу. При этом, разумеется, новые сайты могут иметь старый внешний вид, структуру и что-нибудь ещё, но спроектированы и реализованы в соответствии с новой парадигмой.

Весь текст статьи

Lumen, что ж ты маленький такой

Feb 20, 11:19 pm Категория:   Комментарии

Не буду тянуть кота за хвост и сразу признаюсь, что Lumen – это микрофреймворк на PHP, являющийся близким родственником Laravel. Настолько близким, что “из коробки” используется ряд одинаковых пакетов и можно расширять с помощью опять же одних и тех же пакетов. Смысл Lumen не в том, что он маленький, как следует из названия, а в том, что он очень быстрый.

Весь текст статьи

Вот ты и попался, сайт на Laravel

Feb 18, 10:25 am Категория:   Комментарии

Можно долго рассуждать о путях развития человечества. Находить всякие уровни продвинутости, стадии осовременивания и прочую удалённость от предков, религий и предрассудков. Но лучше не тратить время. Во что бы ты не верил, дорогой username, ты остаёшься всё тем же первобытным и суеверным существом. И не важно, веришь в лешего или в существование гравитационных волн. Может это и не так плохо, как кажется на первый взгляд. Поэтому, поговорим о приметах.

Весь текст статьи

Объекты, паттерны и прочий полиморфизм

Feb 17, 10:56 am Категория:   Комментарии

Существуют различные подходы к сравнению языков программирования. Но PHP имеет славу однозначного отстоя. “Рождён чтобы умирать” – это сказано именно про него. Созданный для наколенной вёрстки домашних страничек он жил, старел и набирал армию разработчиков этих самых примитивных страничек. Понятно, что придумать выбор хуже PHP практически невозможно. На этом с PHP можно было бы попрощаться, если бы не пара нюансов: на PHP базируется один из самых популярных вебфреймворков Laravel и это 4-й по популярности язык программирования. В мире.

Весь текст статьи

И что мы теперь будем делать с Ларавелем?

Feb 12, 07:57 pm Категория:   Комментарии

На заре половой жизни мне в руки попался какой-то текст с заголовком типа “Вот ты заполучил меня и что мы теперь будем делать?” За точность не ручаюсь, т.к. не помню ни автора, ни о чём был опус. Но уж если книга ходила в виде текстов, то она прошла отбор привередливых читателей и содержала в себе какую-то умную мысль, а то и две. Хотя речь не о книге, а о вынесенном в заголовок вопросе. Почему я вспомнил о книге? А потому, что вопрос “что делать” должен предшествовать всякой разумной инициативе, а встреча с Laravel обещает массу секса. Особенно разработчикам, ранее имевшим дело только с CMS.

Весь текст статьи

Если использовать фреймворк, то какой Laravel выбрать

Feb 9, 11:04 pm Категория:   Комментарии

Не, ну кроме шуток, выбор из одного варианта иногда бывает сложнее, чем можно себе представить. Особенно если речь идёт о Laravel. Ветераны помнят, что переход от 3-й версии фреймворка к 4-й был сродни революции. Почти такая же встряска ждала веб-ремесленников когда вместо версии 4.3 появилась 5.0. Потом ещё один шаг к 5.1 и объявление этой версии LTS (long term support) – 3 года поддержки. А затем, почти без остановки – 5.2. И каждый раз появляются новые возможности, пропадают старые наработки и сайты размером со средний портал превращаются в одну большую ошибку. Так какую версию фреймворка использовать, чтобы сократить потери нервных клеток до минимума?

Весь текст статьи