Giter VIP home page Giter VIP logo

web_systems_student_env's Introduction

Web systems student environment

Конфигурация Vagrant для курса "Web технологии" ОмГТУ кафедра ИВТ.

Coстав

Необходимое ПО

Установка Vagrant HostsUpdater

После установки Vagrant выполните в консоле команду

$ vagrant plugin install vagrant-hostsupdater

Установка Vagrant Vbox Guest edition

После установки Vagrant выполните в консоле команду

$ vagrant plugin install vagrant-vbguest

Подробное описание установки и конфигурирования необходимого ПО

[Как я перестал мучиться с настройками веб сервера и полюбил виртуалки] (https://docs.google.com/document/d/1hw6DfpxmV_E8oW_6w98TeqOhTFV0LUdv9yi-bk1qQjw/edit#heading=h.jnfv3ican53l)

Обновление базового образа Vagrant

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

Для обновления базового образа виртуалки, необходимо выполнить следующее

  • Принять [Pull Request] (https://help.github.com/articles/merging-a-pull-request/) сделаный преподавателем в ваш репозиторий.
  • $ git pull - Или любой другой способ забрать последную версию кода
  • $ vagrant destroy - уничтожение текущей виртуалки. ВНИМАНИЕ: все данные в БД будут потеряны. Если нужно сделайте предварительно дамп БД.
  • $ vagrant box remove webdb - Удаление текущего базового образа
  • $ vagrant up - Создание виртуалки. Vagrant сам скачает новую версию базового образа.

Виртуальные хосты

Инструменты разработчика

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

Подключение к ssh консоли виртуалки.

Linux (последнии версии Vagrant поддерживают данный способ и для Windows)

$ vagrant ssh

Windows

ip: 10.0.0.10 User: vagrant Password: vagrant

Создание таблиц, миграция и версионирование БД.

Для управлением версиями БД предлагается использовать [Phinx] (http://phinx.org)

Создание миграции

Для создания новой миграции выполните команды на виртуалке

$ cd /vagrant $ ./phinx create {Migration name}

{Migration name} должна быть в стиле [CamelCase] (https://ru.wikipedia.org/wiki/CamelCase) и уникальна в рамках миграций вашего проекта. Просьба {Migration name} выбирать таким образом, что бы описать суть миграции.

Далее в папке migrations вы найдете файл с соотвествующим названием. В нем будет класс с методом up. В этом методе описываете ваш код миграции.

Например

$ ./phinx create CreateUserTable

<?php

use Phinx\Migration\AbstractMigration;

class CreateUserTable extends AbstractMigration
{
    /**
     * Change Method.
     *
     * More information on this method is available here:
     * http://docs.phinx.org/en/latest/migrations.html#the-change-method
     *
     * Uncomment this method if you would like to use it.
     *
    public function change()
    {
    }
    */
    
    /**
     * Migrate Up.
     */
    public function up()
    {
    
    }

    /**
     * Migrate Down.
     */
    public function down()
    {

    }
}

Добавляем SQL создания таблицы

<?php

use Phinx\Migration\AbstractMigration;

class CreateUserTable extends AbstractMigration
{
    /**
     * Change Method.
     *
     * More information on this method is available here:
     * http://docs.phinx.org/en/latest/migrations.html#the-change-method
     *
     * Uncomment this method if you would like to use it.
     *
    public function change()
    {
    }
    */
    
    /**
     * Migrate Up.
     */
    public function up()
    {
      $sql = <<<SQL
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_user` int(11) NOT NULL,
  `teeeste` varchar(52) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id_user` (`id_user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
SQL;
      $this->execute($sql);      
    }

    /**
     * Migrate Down.
     */
    public function down()
    {

    }
}

Запуск миграций

Для выполнения миграции на вашей машине выполните в консоли виртуалки следующие команды.

$ cd /vagrant $ ./phinx migrate

Дополнительные ограничения

Phinx предоставляет API для описания изменений с БД. Например [такое] (http://docs.phinx.org/en/latest/migrations.html#the-change-method)

В рамках данного проекта допускается использование только методов которые требуют в качестве входных данных SQL.

Например

        $count = $this->execute('DELETE FROM users'); // returns the number of affected rows
        $rows = $this->query('SELECT * FROM users'); // returns the result as an array

web_systems_student_env's People

Contributors

genomius avatar goruha avatar qwertyv112 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.