Представление Laravel
"Laravel гибкая и расширяемая библиотека PHP для веб разработки. Освобождая вас от спагетти кода, Laravel помогает вам создавать прекрасные приложения с помощью простого и выразительного синтаксиса. Разработка должна быть творческим процессом, который доставляет удовольствие, а не причиняет боль. Насладитесь свежим ветром."
Данный текст (на английском языке) можно найти на странице проекта Laravel и если поверить ему, то все должно быть прекрасно. Давайте проверим приведенное утверждение с помощью построения простого TODO приложения и посмотрим, насколько сложно будет процесс создания.
Миграции
Сначала создадим базу данных. Приложение использует очень простую схему, единственная таблица с 5 столбиками для хранения ID, заголовка, описания и времени, когда задача была создана или обновлялась в последний раз.
Laravel имеет инструмент, который называется миграции (вы уже можете быть знакомы с ним, если использовали библиотеки подобные Ruby on Rails). Миграции - файлы, которые используются для обновления базы данных. При выполнении они изменяют схему базы данных таким образом, что вы легко можете применить обновление.
Для нашего приложения миграция выглядит так:
<?php class Create_Todo_Table { public function up() { Schema::table("todos", function($table) { $table->create(); $table->increments("id"); $table->string("title", 20); $table->text("description"); $table->timestamps(); }); } public function down() { Schema::drop("todos"); } }
Метод up()
вызывается, когда миграция выполняется. А метод down()
вызывается для возврата в исходное состояние.
Модель
Так как Laravel использует схему MVC (модель-вид-контроллер), нам нужно создать модель. Как и в другие библиотеках MVC, модель является компонентом, который отвечает за связь с базой данных. Наша таблица проста и модель тоже будет простой:
<?php class Todo extends Eloquent { public static $timestamps = true; }
Имя класса “Todo, и Laravel автоматически ассоциирует его с таблицей todos
в базе данных. Eloquent - класс ORM для модели, который используется в Laravel. Он обеспечивает работу с объектами базы данных.
Свойство $timestamps
получает значение true, что указывает на автоматическое обновление полей created_at
и updated_at
при создании или обновлении записи соответственно.
Контроллер
Теперь создадим контроллер. В нем содержится вся логика приложения и он должен обеспечивать функционал:
- Возвращение всех записей в таблице в виде списка;
- Возвращение информации определенной записи по указанному id;
- Удаление записи по указанному id;
- Представление формы для добавления новой записи:
- Добавление новой записи в базу данных и представление сообщения о завершении операции.
Таким образом у нас будет следующий контроллер с пятью методами, которые будут вызываться для совершения действий. Объявление действия должно иметь префикс “action_”.
<?php class Todo_Controller extends Base_Controller { public function action_list() { $todos = Todo::all(); return View::make("list") ->with("todos", $todos); } public function action_view($id) { $todo = Todo::where_id($id)->first(); return View::make("view") ->with("todo", $todo); } public function action_delete($id) { $todo = Todo::where_id($id)->first(); $todo->delete(); return View::make("deleted"); } public function action_new() { return View::make("add"); } public function action_add() { $todo = new Todo(); $todo->title = Input::get("title"); $todo->description = Input::get("description"); $todo->save(); return View::make("success"); } }
Код достаточно простой и понятный. Первый метод action_list()
получает все записи в базе данных. Здесь проявляется мощь Eloquent, который облегчает задачу, используя только Todo::all() для получения данных. Затем он возвращает вид со всеми записями, связанными с переменной $todos
.
Другие методы также легко разобрать. Они выполняют манипуляции с объектом базы данных и возвращают вид со связанными данными. Последний метод может быть исключением, action_add()
вызывается при передаче формы для добавления новой записи TODO. Input::get()
используется для получения значений из переданной формы.
Вид
Теперь пришла пора заняться видом. Laravel использует собственный механизм шаблонов Blade, который дает нам простой и легко читаемый код. Мы приведем пример первого вида - список. С помощью выражения make
/with
при возвращении вида в методе action_list()
мы поместили результат работы Todo::all()
в $todos
. Теперь можно использовать ее в виде:
<h2>Todo list</h2> <p>{{ HTML::link_to_action("todo@new", "Add new todo") }}</p> <ul> @foreach($todos as $todo) <li>{{ HTML::link_to_action("todo@view", $todo->title, array($todo->id)) }} - {{ HTML::link_to_action("todo@delete", "Delete", array($todo->id)) }}</li> @endforeach </ul>
Сначала Blade создает ссылку на действие контроллера action_new()
. Затем используется выражение foreach
, которое очень похоже на оригинальное одноименное выражение PHP. Для каждой задачи мы создаем ссылку на вид записи. Вторым параметром является ссылка на текст $todo->title
, а далее следуют любые параметры действия. Нам нужен ID записи, которую надо выводить - $todo->id
. Также создаем ссылку на задачу удаления с использованием ID в качестве параметра.
Заключение
Действительно, создание приложения с помощью Laravel - простая задача. Код получается понятным и структурированным.
Возможно, представленный обзор подвигнет вас использовать Laravel для своего следующего проекта.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/ypeY0ERcnBs/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-04-22 » Комментирование кода и генерация документации в PHP
- 2024-04-22 » SEO в России и на Западе: в чем основные отличия
- 2024-04-22 » SEO для международного масштабирования
- 2024-04-22 » Как использовать XML-карты для продвижения сайта
- 2024-04-22 » Цифровой маркетинг: инструменты для продвижения и рекламы в 2024 году
- 2024-04-22 » Что такое CSS-модули и зачем они нам?
- 2024-04-17 » 23 сервиса для эффективного экспресс-аудита любого сайта
- 2024-04-08 » Яндекс переходит на новую версию Wordstat
- 2024-04-08 » Яндекс интегрировал в свой облачный сервис эмпатичную нейросеть
- 2024-04-08 » Новая версия нейросети Claude превзошла по мощности аналоги Google и OpenAI
- 2024-04-08 » Как пользоваться GPT 4 и Claude бесплатно и без VPN
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
"Я придерживаюсь простого правила: все дела этого дня должны быть сделаны в этот день". Герцог Веллингтон. |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.