Дисциплины - Объектно-ориентированное программирование

ООП в PHP - Фрэймворк Laravel - Миграции

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

Для создания новой миграции нам понадобится интерфейс командной строки Laravel — «Artisan».

Например, миграцию с именем Maintext можно создать либо с помощью команды make:migration:

php artisan make:migration maintext

Тогда в папке database/migrations/ создается файл с именем миграции и датой создания. Только что созданная миграция будет всегда последней в списке.

Файл миграции выглядит так:

Class Maintext {
  /**
  * Внести изменения в базу данных.
*
  * @return void
  */
  public function up()
 {
    //
  }

  /**
  * Отменить изменения базы данных.
  *
  * @returnvoid
*/
  public function down()
  {
    //
  }
}

Класс миграции содрежит два метода: up() и down(). Метод up предназначе для создания таблицы базы данных, метод down - для уничтожения. Класс миграции предназначен для создания и управления структуры таблицы базы данных. Модель тоже связана с определенной таблицей. Тогда лучше одновременно создавать миграцию и модель. Для этих целей воспользуемся другой artisan-командой:

php artisan make:model Maintext -m

Где make:model - создает модель, префикс -m указывает на создание миграции связанной с этой моделью.

Рассмотрим метод up() миграции созданной с помощью команды make:model

    public function up()
    {
        Schema::create('maintexts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }

Обратите внимание на название таблицы maintexts, которая будет создаваться по выполнению данной миграции. Модель Maintext автоматически будет связана с таблицей maintexts.

Внутри функции мы можем использовать следующие красивые методы для определения структуры таблицы:

  • increments() — добавить автоинкрементируемое поле — его будет иметь большая часть ваших таблиц;

  • string() — создать поле VARCHAR — правда, «строка» куда более описательное имя, чем в стандарте SQL;

  • integer() — добавить целочисленное поле;

  • float() — поле с дробным числом (число с плавающей точкой);

  • boolean() — логическое («булево») поле — истина (true) или ложь (false);

  • date() — поле даты;

  • timestamp() — поле «отпечатка времени», так называемый «Unix timestamp»;

  • text() — текстовое поле без ограничения по длине;

  • enum()->default() — текстовое поле с вариантами выбора и значением по-умолчанию;

  • blob() — большой двоичный объект (BLOB).

Внесем в метод up следующие изменения:

    public function up()
    {
        Schema::create('maintexts', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->text('body');
            $table->string('url');
            $table->enum('lang', ['ru', en])->default('ru');
            $table->timestamps();
        });
    }

Для создания таблицы с предопределенными полями, остается только выполнить миграцию с помощью artisan-команды migration:

php artisan migrate

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
814301 БГУИР
814302 БГУИР
814303 БГУИР
894351 БГУИР
90421 БГУИР


Изображения Видео

1. Абстрактная фабрика https://www.youtube.com/watch?v=1mVONOCxfLg
2. Фабричный метод https://www.youtube.com/watch?v=5UqUDR6_2cY
3. Шаблон декоратор https://www.youtube.com/watch?v=Lwb9bm8yKD0
4. Dessign patterns on PHP https://github.com/domnikl/DesignPatternsPHP
5. Приёмы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
6. Приемы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
7. Ajax http://erud.by/ajax
8. Ajax http://erud.by/ajax
9. Ajax http://erud.by/ajax
10. Документация Laravel http://laravel.com
Задание к курсовой работе
Задание к курсовой работе
Вопросы к экзамену