Skip to content

DKeeper/test_task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##Тестовое задание №1 https://docs.google.com/document/d/1aArpaIDQQbMzcADY2kxB338Cqy4CcfNEnE-5Vl3fjCU/edit#

Файлы:

  • test1/*

##Тестовое задание №2 https://docs.google.com/document/d/1K25Snfgf9wBJ1VVjfWXNhU-5TQAE0OVwmGshdYkUBcQ/edit#

Файлы:

  • test2/*

##Тестовое задание №3 https://drive.google.com/file/d/0B4ZO20ae-So9TWxSWmtIalpTNXM/view?usp=sharing

Файлы:

  • test030215/*

##Тестовое задание №4 https://drive.google.com/file/d/0B4ZO20ae-So9SVk5LXQxdWpEUlk/view?usp=sharing

Файлы:

  • test150215/*

###Настройка

Выполнить в корневой папке проекта

php composer update

В файлах конфигурации config/web.php и common/console.php необходимо указать адрес для соединения с elasticsearch

return [
    ...
    'components' => [
        'elasticsearch' => [
            'class' => 'yii\elasticsearch\Connection',
            'nodes' => [
                ['http_address' => '127.0.0.1:9200'],
            ],
        ],
    ],
    ...
];

а так же в файле config/db.php указать данные для соединения с БД

return [
    ...
    'dsn' => 'mysql:host=localhost;dbname=dbname',
    'username' => 'username',
    'password' => 'passwrod',
    ...
];

В файле конфигурации config/es_index.php можно изменить настройки индекса

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

php yii migrate

Если корневая папка настроена на папку /web, то верны следующие пути:

  • mfr - редактирование поставщиков
  • product - редактирование товаров
  • site/equipment - связанные выпадающие списки
  • site/offers - поиск

##Тестовое задание №5 https://drive.google.com/open?id=0B4ZO20ae-So9ZmlQUUJCVk1yVjg&authuser=0

Дамп БД, использованный при разработке

https://drive.google.com/open?id=0B4ZO20ae-So9MjNpZFAxaWtyRFE&authuser=0

Файлы:

  • test080315/*

###Настройка

Выполнить в корневой папке проекта

php composer update

В файле config/db.php указать данные для соединения с БД

return [
    ...
    'dsn' => 'mysql:host=localhost;dbname=dbname',
    'username' => 'username',
    'password' => 'passwrod',
    ...
];

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

php yii migrate

При желании можно заполнить БД случайными записями. Полный список команд и параметров можно посмотреть, выполнив в консоли

php yii generate

Если корневая папка настроена на папку /web, то верны следующие пути:

  • author - управление авторами
  • reader - управление читателями
  • book - управление книгами
  • library - библиотека
    • authors - просмотр авторов с указанием написанных книг
    • readers - просмотр читателей с указанием взятых книг
    • books - просмотр книг с указанием авторов и читающих книгу
    • readbooksers - просмотр книг с указанием авторов и читающих книгу
    • report - отчет

Комментарии по заданиям: Пункт 5. Т.к. по ТЗ база будет содержать большой объем записей, то имеет смысл перенести основные таблицы в индексы elasticsearch. Для данного поискового движка есть базовый компонент, подключаемый в Yii. Пример его использования можно посмотреть в тестовом задании №4. Использование даст возможность использовать распределяемые индексы (для elasticsearch есть возможность использования его в кластере), кэшировать поисковые запросы.

Т.е. структура системы будет примерно такой: Три основные таблицы - это индексы в elasticsearch. Для поисковых запросов, приходящих в систему, можно создать отдельный индекс, где будет храниться информация о том, какое название искалось, а также частота поиска.

Пунк 6. К сожалению, имеющихся у меня знаний не хватит для решения данной задачи.

##Тестовое задание №6 https://docs.google.com/document/d/1-qhd0_tb5UeV-TliIq-d0d5IqWRcm7Je0jRWjNyT_as/edit?usp=sharing

Файлы:

  • test160415/*

Дамп базы находится в файле test.sql

Настройки находятся в файле config/config.php

В файле helpers/helpers находятся все необходимые для работы функции и классы. В идеале, их надо разнести по разным классам/файлам.

Доступные для работы ссылки:

  • / - просмотр и добавление записи
  • /?q=login - авторизация (tempadmin/tempadmin)
  • /?q=logout - выход

Следующие действия доступны для администратора

  • /?q=editpost&id=# - редактирование поста
  • /?q=delpost&id=# - удаление поста
  • /?q=replypost&id=# - ответ на пост

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

##Тестовое задание №7 https://docs.google.com/document/d/1e8puNggaTQScDgL0m15k3LabtdKsSFQ8s_-9nNLENWA/edit

При написании задания использовалась версия Zend 2.4.0

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

  • Db
  • Dom
  • EventManager
  • Loader
  • Validator

Для проверки доступны следующие задания:

  • issue1.php
  • issue2.txt
  • issue3.php
  • issue4.php
  • issue5.html

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages