Представление 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-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Чтобы вырастить плодоносящий сайт - его полезно регулярно поливать и удобрять с помощью рекламы и оптимизации Компания "RedLine" |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.