Krististudio.ru

Онлайн образование
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Laravel уроки для начинающих

Первое приложение на Laravel. Пошаговое руководство (Часть 1)

Cо дня своего релиза в 2011 популярность фреймворка Laravel выросла на порядок. В 2015 году он стал самым популярным (starred) PHP фреймворком на GitHub. Сегодня Laravel выбирают в качестве основного инструмента разработчики по всему миру.

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

Цель этой статьи — создать руководство для тех, кто только начал изучать Laravel. Начать с идеи и построить реальное приложение.

Это не полное руководство по фреймворку, мы не охватим все детали Laravel и для начала необходимо выполнить ряд условий. Вот, что потребуется:

  • Локальная PHP среда (Homestead, Vagrant, MAMP и т.д.)
  • База данных. Я буду использовать MySQL.
  • PHPUnit
  • Node.js

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

Планирование

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

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

В качестве проекта для этого руководства мы будем делать каталог ссылок. Вот список основных целей для этого приложения:

  • Показать простой список ссылок
  • Создать форму для добавления новых ссылок
  • Проверить данные формы
  • Вставить данные в базу данных.

Первые шаги

Пришло время ринуться в бой и развернуть пустой проект. Я люблю хранить все свои рабочие проекты в директории

/Code и везде далее буду использовать этот путь. Вы можете изменить его на более привычный вам.

Откройте терминал и создайте новый каталог для кода проекта.

Затем установите программу установки Laravel :

После завершения процесса , можно создать новый проект, выполнив:

Эта команда создаст новый каталог и установит пустой проект Laravel.

Теперь нужно создать виртуальный хост, ссылающийся на

/Code/links/public, чтобы можно было загрузить сайт в браузере. В качестве домена я использовал links.dev.

Если все работает, вы должны увидеть страницу-заглушку Laravel:

Теперь сгенерируем систему аутентификации использую следующую команду:

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

Создаем список ссылок

Если держать в голове весь проект можно сойти с ума. Лучше разбить все на более мелкие задачи. Так что давайте начнем со списка ссылок.

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

Первым шагом будет создание миграции. В этом нам поможет консольный инструмент artisan.

Теперь откройте файл, который создала команда. Он находится по следующему пути database/migrations/<<ДатаВремя>>_create_links_table.php

Внутри метода up добавьте столбцы таблицы

Сохраните файл и запустите миграцию

Теперь надо добавить данные. В Laravel для этой цели есть две функции: заполнение начальными данными (seeding) и фабрики моделей.

Перед тем как продолжить процесс, самое время написать первый юнит-тест. Я предпочитаю делить тесты на две категории: функционал (features) и юниты (unit). Этот тест будет юнит-тестом, поэтому создаем файл ./tests/unit/SeederTest.php и добавляем тестирующий метод :

Этот метод должен выдать ошибку. Запускаем — так и есть

Стоп, мы не это вообще-то тестируем. При установке в Laravel уже есть один тестовый файл ExampleTest.php . Удалите его и запустите phpunit снова.

Теперь мы видим нашу настоящую ошибку

There was 1 failure:

1) SeederTest::testLinksTable Unable to find row in database table [links] that matched attributes [<"ti-tle":"dotdev.co">]. Failed asserting that 0 is greater than 0.

Для того, чтобы этот тест прошел удачно, необходимо создать файл, заполняющий базу данных.

Откройте DatabaseSeeder.php и добавьте следующее в метод run:

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

Отредактируем созданную модель app/Link.php добавив имя таблицы в бд:

Читать еще:  Уроки программирования на c

Теперь вернемся к ModelFactory.php и добавим наши ссылки:

Если мы снова запустим сейчас phpunit, ошибка все еще будет, т.к. ссылки с названием “dotdev.co” в базе еще нет. В нашем SeederTest мы можем создать эту запись в бд с помощью той же фабрики моделей:

Теперь, если выполнить phpunit все должно завершиться успешно.

Следующий шаг – собственно вывод самого списка ссылок. И само время написать новый тест.

Создаем новый файл ./tests/features/LinkTest.php. Спросим себя: что мы ожидаем увидеть? На странице списка ссылок мы можем найти известную нам ссылку, как мы делали выше, и подтвердить, что мы реально ее видим. Вот код такой проверки:

Phpunit снова выдает ошибку, что искомая строка не найдена. Откроем карту машрутов ./app/Http/routes.php и посмотрим куда указывает маршрут «/» .

Давайте сделаем выборку наших ссылок и отправим их в представление.

Отредактируем welcome.blade.php добавив простой цикл foreach:

Теперь phpunit позеленел. Тесты прошли успешно.

Мои поздравления! Первая функция реализована и покрыта тестами. Ничего не ломайте 😉

Laravel

Изучение Laravel / #1 — Что такое фреймворк Laravel?

Видеоурок

Полезные ссылки:

  1. Курс по языку PHP ;
  2. Официальный сайт Laravel ;
  3. Редактор Atom ;
  4. Редактор PhpStorm ;
  5. Локальный сервер MAMP ;
  6. Пакетный менеджер Composer .

Laravel — это MVC фреймворк для быстрого, удобного и, главное, правильного написания сайтов на языке PHP. Фреймворк обладает большим набором функций, плагинов и шаблонов, которые позволяют воплощать даже самые амбициозные проекты в жизнь.

Веб-фреймворк Laravel имеет открытый код и распространяется абсолютно бесплатно для всех разработчиков. Исходный код проекта можно найти на странице GitHub .

Фреймворк часто удостаиваться различных наград и похвал. К примеру, Laravel получает звание лучшего PHP фреймворка как для корпоративного, так и для личного использования. Популярность фреймворка постоянно растёт:

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

Laravel позволяет выполнить такие действия, как: Unit тестирование, отслеживание URL адресов, установка безопасности, работа с сессиями и создание системы авторизации, легкая работа с базой данных, работа с почтой, отслеживание ошибок и еще множество других вещей. Все это возможно реализовать и без Laravel, но используя его вы будете использовать уже готовые решения, а также ваш код получится намного проще и меньше, нежели писать все самостоятельно.

Установка Laravel

Перед установкой Laravel вам необходимо выполнить установку пакетного менеджера Composer. Для этого перейдите на их официальный сайт и скопируйте 4 команды для скачивания и установки Composer в проект. Эти команды укажите в терминале находясь в самом проекте.

После установки Composer можно выполнить установку Laravel. Для этого зайдите в проект и откройте терминал. В терминале пропишите команду:

Эта команда позволит установить Laravel глобально в систему. Выполните её лишь один раз и при создании будущих проектов игнорируйте данную команду, не устанавливая Laravel повторно.

Далее необходимо установить Laravel локально внутрь какого-либо проекта. Для этого в терминале пропишите команду:

Здесь APP_NAME это название вашего будущего проекта.

После установки Laravel будет добавлен к вам в проект и вы уже сможете им пользоваться.

Большое задание по курсу

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

Laravel — лучшее, что случилось в PHP сообществе!

Laravel — пожалуй, лучшее, что случалось в PHP сообществе! Девиз этого фреймворка — «The PHP Framework For Web Artisans», что можно перевести как «PHP фреймворк для вэб-ремесленников». И это максимально точно описывает его концепцию. Вы просто разрабатываете приложение или сайт полостью сосредотачиваясь на создании продукта, всё остальное на себя берёт фреймворк.

Laravel интуитивно понятен и user-friendly к разработчику. В основе фреймворка лежат так называемые Symfony Components — компоненты которые лежат в основе другого одноимённого фреймворка Симфони, первая версия которого вышла 22 октября 2005, за 5 с лишним лет до появления Laravel.

Laravel вышел 11 июня 2011 и быстро стал популярен за счёт использования уже проверенных в бою симфони-компонент и более удобной работе с ними. В отличии от Symfony, Ларик интуитивно понятен и многие вещи можно реализовывать даже не заглядывая в документацию. Создатель фреймворка Taylor Otwell прочитал ваши мысли и создал такую архитектуру, которая наиболее актуальна в современном мире вэб-разработки.

Laravel это не только фреймворк, но и огромное количество дополнительных сервисов объединённых в единую экосистему. Например, Forge — специальный хостинг для ваших приложений и сайтов. Homestead, Envoyer — простая и удобная система для zero downtime деплоя в production, Horizon — админка для мониторинга Redis, Spark, StyleCI, Statamic и многие другие сервисы упростят разработку приложений.

Читать еще:  Полиглот 13 урок английский

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

Самоучитель и уроки Laravel

Здесь будут приведены ссылки на статьи и видео для новичков и продвинутых разработчиков. Список пополняется. Присылайте свои материалы для размещения!

Для новичков

В данной подборке собраны статьи

  • Создать новый проект на Laravel 5.6: установка и настройка
  • Как узнать что пользователь находится в Online в Laravel 5.6
  • Подтверждение регистрации и верификация email в Laravel 5.6
  • Роутинг в Laravel: настройка routes
  • Шаблонизатор blade: трюки и хитрости
  • Работа с датами и временем с помощью Carbon
  • Авторизация с помощью модуля Auth
  • Что такое Vue и зачем он в Laravel?
  • Миграции: лучшие практики
  • Работа с моделями: Eloquent Active Records
  • Отношения между таблицами
  • Collection как замена масивам
  • Как сделать редирект в Laravel
  • Зачем нужны Middleware?
  • Лучшие практики валидации запросов
  • Elixir
  • Пагинация
  • Хранилище файлов
  • Сидирование данных и faker
  • Логирование событий и ошибок
  • Настройка Nginx
  • Работа с websocket

Админки

Обзор компонентов позволяющих легко и просто создать бэкофис для приложении, в простонародии называемыми админками.

Обзор всевозможных систем управления содержимым (Content Management System).

Пакеты и библиотеки

Пакеты и компоненты созданные специально для Laravel, либо способы адаптации библиотек под этот фреймворк.

Продвинутый уровень

Работа с ядром фреймворка, переопределение базовых свойств и компонент.

Прочее

Сравнение с другими PHP фреймворками

В своей весовой категории Laravel вне конкуренции по возможностям. Аналогичный функционал предоставляют фреймворки Symfony и Yii, однако они более громозки, требуют чтения огромного количества документации и большего времени на разработку одного и того же функционала. Однако, он не значительно проигрывает им по производительности.

Сравнение PHP фреймворков по количеству запросов в секунду

Сравнение PHP фреймворков по потреблению памяти

Сравнение PHP фреймворков по времени выполнения запроса

С полным отчётом по сравнению фреймворков можно ознакомиться здесь.

Однако, у Laravel есть киллер-фича — легковесный аналог Lumen, микрофреймворк, который в любой момент можно проапгрейдить до полноценного Laravel или установить часть его компонентов.

Для каких целей не подойдёт Laravel?

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

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

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

Нет, никто делать этого не запрещает, однако, приложения критичные к ресурсам и производительности лучше разрабатывать на других фреймворках или вообще на других более быстрых языках. Для создания прототипов, MVP и PoC таких систем Laravel отлично подойдёт. Но для сурового продакшена будет требовать в раз больше мощностей, чем приложения написанные на легковесных фреймворках.

Laravel для начинающих и чайников

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

Благодаря наличию множества фасадов легко реализуется абстрагирование от конкретных реализаций работы с тем или иным хранилищем. Всего одной строчкой в конфигурации можно перевести приложение с MySql на Postgres, с Memcache на Redis, а хранение файлов с локального хранилище на распределённые сервера Amazon. И т.п. Например, получить данные из быстрого кеша можно сделать так:

Ещё одна приятная вещь в Laravel — Fluent Interface, подход в архитектуре, благодаря которому можно строить цепочки вызовов, что делает код легко читаемым, а его написание в IDE становится максимально быстрым. Например, сделать запрос в БД можно таким образом:

Можно много что ещё сказать, но лучше 1 раз попробовать самому, чем 10 раз прочитать о чужом опыте. Начинайте прямо сейчас!

Уроки Laravel

Обучающие статьи по Ларавел.

Tailwind и Laravel

Недавно Adam Wathan выпустил Tailwind UI — коллекцию адаптивных компонентов для Tailwind CSS. Проект находится в стадии раннего доступа, поэтому…

Всё о валидации в Laravel

В этой статье мы расскажем, как можно проверить входящие данные через Контроллеры, Запросы формы (FormRequest) и Правила. Контроллеры По умолчанию…

Читать еще:  Уроки компас 3d v17 для чайников

Создание SPA CRUD на Laravel Inertia

Inertia.js — это еще один способ создания SPA (одностраничного приложения). Это не фреймворк и не замена существующих способов. Вся прелесть…

Blade компоненты в Laravel 7

Давайте посмотрим, что седьмая версия фреймворка привнесла в компоненты шаблонов. Макетный способ Сначала взглянем на макетный вариант повторного использования шаблонов.…

Организация ваших шаблонов

Часто наши приложения используют большое количество blade-шаблонов. Когда их становится больше десятка, то вы начинаете создавать их везде, где не…

Обнаружение медленных SQL-запросов

Представляем вам Slow Query Notifier для Laravel. Если пакет обнаружит медленный запрос в вашем приложении, то вы получите уведомление. Вдохновение…

Продвинутые советы по Маршрутизации в Laravel

Все мы используем простой синтаксис Route::get() и Route::post(), но в больших проектах это делать сложнее. В этой статье собраны несколько…

Рефакторинг тестов

Простота — один из главных факторов, почему люди выбирает Laravel. Это касается и тестов — фреймворк позволяет их делать проще,…

Использование кастомных кастов в Laravel 7

Custom Eloquent Cast (Кастомные касты) это пользовательские приведения типов. Исторически вы были ограничены дефолтным набором кастов, предоставленных Laravel, охватывающие только…

Способы валидации данных

Валидация (проверка) данных формы — очень важный фактор защиты от нежелательных данных в приложении. Фреймворк Laravel для этого предоставляет простые,…

Laravel 7 — Что нового?

Laravel 7 вышел 3 марта 2020 года и содержит следующие нововедения и улучшения. Laravel Airlock Автор: Taylor Otwell Laravel Airlock…

Рефакторинг: Сервисы, Статические Методы и Внедрение Зависимостей

Иногда нужно переместить бизнес-логику за пределы Контроллеров или Моделей, обычно в так называемые Сервисы. Но есть несколько способов их использования…

Руководство по Очередям и Задачам. Часть 3: Как запустить воркеры на продакшн-сервере

Теперь, когда вы создали свое первое Laravel-приложение с Очередями/Задачами по первому и второму уроку, пришло время развернуть его на рабочем…

Руководство по Очередям и Задачам. Часть 2: Подключения и настройки

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

Руководство по Очередям и Задачам. Часть 1: Создаем простое аналитическое приложение

Я уже много лет использую Задачи и Очереди в Laravel. Поначалу мне было очень тяжело, у меня в голове не…

Laravel

Изучение Laravel / #1 — Что такое фреймворк Laravel?

Видеоурок

Полезные ссылки:

  1. Курс по языку PHP ;
  2. Официальный сайт Laravel ;
  3. Редактор Atom ;
  4. Редактор PhpStorm ;
  5. Локальный сервер MAMP ;
  6. Пакетный менеджер Composer .

Laravel — это MVC фреймворк для быстрого, удобного и, главное, правильного написания сайтов на языке PHP. Фреймворк обладает большим набором функций, плагинов и шаблонов, которые позволяют воплощать даже самые амбициозные проекты в жизнь.

Веб-фреймворк Laravel имеет открытый код и распространяется абсолютно бесплатно для всех разработчиков. Исходный код проекта можно найти на странице GitHub .

Фреймворк часто удостаиваться различных наград и похвал. К примеру, Laravel получает звание лучшего PHP фреймворка как для корпоративного, так и для личного использования. Популярность фреймворка постоянно растёт:

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

Laravel позволяет выполнить такие действия, как: Unit тестирование, отслеживание URL адресов, установка безопасности, работа с сессиями и создание системы авторизации, легкая работа с базой данных, работа с почтой, отслеживание ошибок и еще множество других вещей. Все это возможно реализовать и без Laravel, но используя его вы будете использовать уже готовые решения, а также ваш код получится намного проще и меньше, нежели писать все самостоятельно.

Установка Laravel

Перед установкой Laravel вам необходимо выполнить установку пакетного менеджера Composer. Для этого перейдите на их официальный сайт и скопируйте 4 команды для скачивания и установки Composer в проект. Эти команды укажите в терминале находясь в самом проекте.

После установки Composer можно выполнить установку Laravel. Для этого зайдите в проект и откройте терминал. В терминале пропишите команду:

Эта команда позволит установить Laravel глобально в систему. Выполните её лишь один раз и при создании будущих проектов игнорируйте данную команду, не устанавливая Laravel повторно.

Далее необходимо установить Laravel локально внутрь какого-либо проекта. Для этого в терминале пропишите команду:

Здесь APP_NAME это название вашего будущего проекта.

После установки Laravel будет добавлен к вам в проект и вы уже сможете им пользоваться.

Большое задание по курсу

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

Ссылка на основную публикацию
Adblock
detector