Comments (13)
Сделано в тестовом варианте: несколько таблиц, загружаемых из GitHub’а посредством его API.
В командной строке:
$ php artisan command:testGitHubApi users --save
$ php artisan command:testGitHubApi issues --save
$ php artisan command:testGitHubApi comments --save
$ php artisan command:testGitHubApi issuesEvents –save
Загружаются данные в таблицы соответственно:
• пользователей;
• задач;
• комментарий пользователей к задачам;
• коммитов этих задач.
Запуск команды без опции «--save» выводит полученные данные на экран в сокращенном виде (то, что предполагается сохранять в БД). Например,
$ php artisan command:testGitHubApi issues
Есть еще параметры запуска:
• $ php artisan command:testGitHubApi commits
• $ php artisan command:testGitHubApi events
Список пользователей еще под вопросом (кого туда вносить и по каким запросам к GitHub API).
from fintech-fab.ru.
Комментарии по коду команды: 238f5d4
from fintech-fab.ru.
Добавлен маршрут и бланк страницы сайта.
Сделана рабочая команда, загружающая данные с GitHub’а. Но она ничего не загружает и не показывает: в ней нет «движка». Команда:
$ php artisan command: fintech-fabFromGitHub
Чтобы получить данные нужно запустить функцию «getFromGitHubApi($httpRequest)» по нужному адресу и сохранить полученные данные в нужную модель данных, функцией «saveInDB($inData, $classDB)»
from fintech-fab.ru.
Сделано в рабочем варианте загрузка данных для одной из таблиц БД:
В командной строке:
$ php artisan fintech-fab:git-hub comments
Загружаются все страницы, выдаваемые API GitHub'бом
from fintech-fab.ru.
Сделал ревью.
(Важное замечание - автоформат кода настрой обязательно. В инструкции на вики есть)
from fintech-fab.ru.
Сделана загрузка пользователей
В командной строке:
$ php artisan fintech-fab:git-hub users
Сделаны повторные запросы, дающие, при отсутствии новых данных, статус ответа 304
from fintech-fab.ru.
В принципе, основное закончено. Данные загружаются из GitHub’а, и отображаются на интернет странице.
Только вот один пункт не получилось сделать. Предполагалось загружать общие коммиты (главной ветки), но прямым запросом это не сделать (есть общая куча коммитов…).
from fintech-fab.ru.
На данный момент есть возможность использовать пароль пользователя GitHub’а (в файле app/config/github.php). Это даст лимит запросов 5000 в течение часа (без авторизации — 60 запросов).
На вкладке «Общее» отображаются события открытия/закрытия задач, но показываются только недавние события (старых не видно).
from fintech-fab.ru.
Задачу согласен назвать готовой :-)
Подведу итоги:
- Все работает - отлично.
- Без подсказки - учтено время обновления - лишние данные не обрабатываются - молодец.
- Постраничный сбор - прекрасно.
- При работе команды выводится подробная информация о процессе - 5 баллов.
Есть предложения по улучшению, но это уже больше эстетика, чем реальная необходимость. Это то, что я бы сделал, решая эту задачу. Если будешь согласен - поставлю отдельными задачами:
-
Еще сильнее почистить команды - чтобы там были только аргументы и "запускатели". Почему так правильно? Например, можно сделать из веб-интерфейса, находясь в конкретной задаче, обновить коммиты по этой задаче. Тогда вынесенный из artisan-команды код пригодится. Вынесение по типу класса GitHubAPI (компонентом).
-
Реализовать задачу в виде отдельного пакета для composer. Стоит сделать, если просто хочется научиться делать независимые пакеты к Laravel.
-
Если делать пункт (1), то хотелось бы иметь не одну команду, а несколько. Также, как делают разработчики фреймворка, например queue:
queue:failed List all of the failed queue jobs
queue:failed-table Create a migration for the failed queue jobs database table
queue:flush Flush all of the failed queue jobs
-
Переделать/оптимизировать работу контроллера при отображении задач. Получились довольно сложные конструкции, можно сделать проще/легче. Пока без деталей - если интересно - поставлю задачу.
-
Это обязательно - добавить в справку команды инфу по последовательности запуска команд. А то я запутался. Наловил эксепшенов с ключами. Но позапускав с разными параметрами, в итоге все получилось.
from fintech-fab.ru.
где скачать приложение?
from fintech-fab.ru.
Приложения нет :) а задача почти закрыта уже.
from fintech-fab.ru.
Не понятно почему нет приложения ((
from fintech-fab.ru.
По п.1 сделаны запускатели (public). По п.5 добавлено в справку, что сначала нужно загружать пользователей «users», затем задачи «issues» (однако по логике, сейчас сбоев не должно быть: если задачи не загружены, то связанные с ними данными просто не должны отображаться на странице; а пользователи каждый раз принудительно проверяются).
По п.4 я предполагаю лишь такой способ: сделать несколько представлений (view) и модели для них. И в контроллере получать данные через эти модели. Но всё это и прочее, лучше как отдельные задачи.
from fintech-fab.ru.
Related Issues (20)
- Модуль антифрода платежных операций HOT 3
- Формирование корпоративного заказа на обеды HOT 4
- Система дистанционного обучения (LMS, e-learning) HOT 4
- Сервис для поиска по адресу (КЛАДР, ФИАС) HOT 5
- Анализ объявлений (риэлторов, продавцов) HOT 2
- Агрегатор товарных предложений HOT 2
- Агрегатор контента для товарных предложений HOT 5
- Социальная сеть HOT 1
- Калькулятор поведения (альтернативный) HOT 4
- Облачный документооборот HOT 4
- СМС-поздравления HOT 2
- Аукцион заявок и исполнителей HOT 4
- Мониторинг за проектами HOT 2
- Зарплатный учет HOT 16
- Читалка со скорочтением (reedy) HOT 3
- Евенты и поиск оптимального времени
- inTour - помощник туриста
- inFood HOT 1
- webFileStorage
- Визуализация персонального раздела пользователя
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fintech-fab.ru.