Представление 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

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Представление Laravel | | 2012-08-19 20:13:51 | | Статьи Web-мастеру | | Laravel гибкая и расширяемая библиотека PHP для веб разработки. Освобождая вас от спагетти кода, Laravel помогает  вам создавать прекрасные приложения с помощью простого и выразительного синтаксиса. | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: