##Тестовое задание №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