[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разработка cms с нуля, для мониторинга.
grisha2013
Добрый день!

Начал недавно разрабатывать (это громко сказано) движок мониторинга, будучи на гребне волны оптимизма. Сейчас, боюсь, что мну накроет этой самой волной оптимизма и разработка заглохнет едва начавшись. biggrin.gif

Поэтому прошу помощи и подсказок чтобы стать на верный путь.

Собственно, дела обстоят так:
В php только начинаю разбираться, в связи с чем постоянно туплю biggrin.gif

Столкнулся сейчас с вопросом, как правильно организовывать структуру БД для мониторинга по ссылкам ниже?
http://bitvatitanov.22alt.ru/
http://ilita.22alt.ru/

это не мой мониторинг, его беру просто как основу.

Сейчас я храню пользователей в одной таблице, где в одной строке перечислено все что есть. Название команды, логин, счет, средства, баланс, номер попытки в команде и т.д. Научился выводить таблицу с участниками.
Правильно ли я делаю, что все храню в одной таблице? Мне кажется нет..

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

Или нет смысла усложнять систему для простого мониторинга?

Еще есть сложность с сортировкой участников.
Нужно не просто выбрать всех участников определенной команды и вывести в таблицу но еще и отсортировать их по прибыли. Более того, нужно сортировать юзеров блоками, располагая все счета одного юзера по порядку их появления, подсчитывая общий результат юзера в команде, после чего, сортировать юзеров по убыванию в таблице.
Думаю понадобится функция для расчета результатов по каждому юзеру (подсчет результатов, вычисление штрафных и сортировка счетов юзера в порядке их появления) и функция создающая многомерный отсортированный массив из небольших массивов с счетами каждого из юзеров. Отсортированный массив будет выводиться в таблицу. Весьма смутно себе, все это представляю, но кажется на верном пути. ph34r.gif

Собственно, вот что я хочу реализовать.
Хочу сделать мониторинг с админкой для одного юзера. Юзеру кроме авторизации в админке понадобится опция восстановления и изменения пароля.

В админке планирую сделать страницы для добавления/удаления команд, страницу для добавления участников в команду, страницу добавления счетов к логину участника. Там-же управление счетами, например, отключение обновления если счет слился и взята n-попытка.

На главной странице будет меню для перехода на страницу определенной команды. Чтобы не в навал все на одной странице. При добавлении новой команды, в меню должна появляться ссылка на страницк с таблицей команды.

Особенно сложно для меня сейчас разобраться с сортировкой массивов и с скриптом выбора страниц. Чтобы перейдя по ссылке "?team=muraveinik" либо ?team=4" - открывалась страница с таблицей команды "Муравейник".
Также, понадобится скрипт для приема данных отправляемых из программы на ПК, для обновления данных в базе мониторинга. Скрипт должен принимать данные через post и обновлять инфу в БД.

Помогите составить правильное ТЗ и подскажите ссылки для изучения с практическими примерами.
DarkLynx
Вы довольно правильно начали изучать язык на мой взгляд.
Единственное что могу вам посоветовать ищите для начала ответы сами, пишите, пишите не правильно, коряво, но пишите и так придете к тому что освоите технику после этого можно задуматься над архитектурными решениями. Разнести одну таблицу в несколько в будущем не составит никакого труда без потери данных.

Все что я написал является сугубо личным мнением.

мить
посмотри как это уже реализовано на других движках,- возьми из них лучшие решения
Michael
Прежде чем что то реальное делать, надо базу подтянуть.
php, sql, mysql, js.
А делать наугад, с минимальными познаниями в технологиях, годится только для изучения. Но никак не для создания "движков", хотя опять же мало ли что ты под ним понимаешь...

_____________
There never was a struggle in the soul of a good man that was not hard
grisha2013
DarkLynx, собственно я так и делаю, пользуюсь поиском, делаю, переделываю и т.д.
Насчет базы понятно, пока оставлю как есть, всю инфу в одну строчку и не буду усложнять.

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

Michael, да это и не движок вовсе, скорее десяток скриптов для автоматизации обновления данных в базе и вывода оных на страницу, с простейшей админкой с банальными опциями добавления/удаления команд и юзеров.







sergeiss
grisha2013, всё, что могу посоветовать, это четко разбить всю задачу на части (что ты в определенной степени уже сделал, как я вижу) и решать каждую задачу по отдельности. Сделал одно, другое, третье, связал их вместе - у тебя уже что-то есть. Делаешь четвертое, интегрируешь в систему - она у тебя уже намного лучше становится.

Потом, в какой-то момент, переделываешь какую-то часть уже сделанного smile.gif От чего вся система становится лучше. Ну и так далее.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
мить
Цитата
Поставлю для начала Wordpress, для изучения...

я бы посоветовал не этот движок, а форум на PHPBB3
там все что ты тут описал в большей, или меньшей части уже присутсвует

я бы даже просто немного модифицировал движок такого форума и получил то, что ты тут описываешь
не говоря уже о стандарптных фишках,- восстановление пароли и тд и тп

тем паче там чистый пхп и МСКЛИ в основе

ну а искать где и что по коду и файлам содержащий этот код эт канечно Тотал Командер+Хром+Ноутпейд...сейчас вродь нормальный фаеробаг идет вместе с Экспоером, но я привык пользовать Хром в качестве поисковика частей кода прям со страницы.

Хоть тут и ругают Е Попова, но я бы те посоветовал найти его образ диска с названием phpsql, в открытых источниках его нет, но на торентах он есть. так вот будет с чего начать, а потом здесь же посмотреть как типо правильно надо писать некоторые куски кода
все познается в сравнении. smile.gif
grisha2013
Диск Е. Попова раньше скачивал, но при записи на диск почему-то полетели больше половины файлов. Придется скачать заново. smile.gif
Winston
Свернутый текст
Цитата (grisha2013 @ 26.06.2013 - 16:19)
Диск Е. Попова раньше скачивал, но при записи на диск почему-то полетели больше половины файлов.

Попов даже на ПО плохо влияет laugh.gif
sergeiss
Цитата (Winston @ 26.06.2013 - 17:22)
Попов даже на ПО плохо влияет 

Скорее, тут "даже комп против Попова и его лабуды" smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
grisha2013
Вот что нашел, что скажете, знаком кто с данным курсом "Web-Гуру.PHP"?
http://www.ex.ua/view/2565760

И еще вот откопал "PHP за 3 недели" http://www.ex.ua/view/3604533

Свернутый текст

Думаю, Попов в одноименном темном месте, в сравнении...  laugh.gif 
sergeiss
Цитата (grisha2013 @ 26.06.2013 - 21:34)
Вот что нашел...

Там регистрироваться надо, чтобы посмотреть. Нафиг надо, спам потом на почту ловить... Его и так много, спама всякого smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
grisha2013
Странно, я без регистрации могу читать описание и скачивать.

Описание впечатляющее
Свернутый текст
Содержание курса

Урок 1. Подготовка к работе
функции для работы с БД

Урок 1. Бонус. PDO (PHP Data Objects)
Что такое PDO
Преимущества PDO
Как подключить функциональность PDO
Создание объектов PDO
Подключение к БД через PDO
Выполнение запросов средствами PDO
Обработка выборок из БД средствами PDO
Работа с объектами PDO
Перехват ошибок PDO
Выполнение SQL-команд INSERT, UPDATE средствами PDO

Урок 2. Архитектура MVC
Что такое архитектура ПО
Что такое хороший код
Шаблоны проектирования
Как работает приложение
Общее описание схемы MVC
MVC в PHP
Пример небольшого сайта, реализованного в рамках MVC
Структура папок такого сайта
Файл начальной загрузки и настроек
Комментирование шаблонов
Альтернативный синтаксис PHP для использования в шаблонах

Урок 2. Бонус про реляционные БД
Реляционная БД
Таблицы реляционной БД
Индексы и принцип их работы
Три нормальные формы и правила нормализации
Оптимизация БД

Обратная связь по уроку 2
SQL-инъекции и способы их предотвращения
Правильное выделение абстракции модели
Опасность изменений данных при переходе по ссылке
Распараллеливание работы программиста и верстальщика

Урок 3. Базовый шаблон
Вложенность шаблонов
Резка шаблона
Шаблонная функция
Буферизированный вывод в PHP
Шаблон на основе буферизированного вывода

Урок 4. Концепция ООП
Что такое ООП
Преимущества ООП
Что такое Класс
Что такое Объект
Пример определения класса
Пример объявления объекта
Свойства и методы классов, примеры
Преимущества использования классов
Конструкторы класса, примеры
Три важнейшие парадигмы ООП
Инкапсуляция
Наследование
Полиморфизм
Примеры использования возможностей ООП

Урок 5. Особенности ООП в 5-ой версии PHP
Главное отличие реализации ООП в PHP5 от PHP4
Модификаторы доступа
Конструкторы
Деструкторы
Клонирование
Константы классов
Ключевое слово self
Статические методы классов
Статические поля классов
Абстрактные классы
Абстрактные методы классов
Работа с классами как к массивам
Функция __autoload()
Исключения
Перегрузка свойств класса, сеттеры, геттеры
Перегрузка вызова методов класса
Использование интерфейсов
Оператор instanceof
Ключевое слово final

Урок 6. MVC с помощью ООП
Пример реализации объектной модели MVC в PHP
Модель
Представление
Контроллер
Точка входа
Иерархия контроллеров
Цикл обработки запроса
Определение размера всех любой страницы сайта
Определение времени генерации любой страницы сайта

Обратная связь по уроку 6
Правильное и неправильное проектирование контроллеров
Избегание "паразитного" кода
Принцип стремления к простоте
Фреймворк
Отделение ядра сайта
Ослабление зависимостей между классами
Автоматическая загрузка классов
RewriteEngine в htaccess
Ошибки именования классов, функций и файлов
Советы по проектированию модели

Урок 7. Шаблонизатор Smarty
Что такое шаблонизатор Smarty
Установка Smarty
Подключение и создание экземпляра класса Smarty
Настройки для работы Smarty
Шаблоны для Smarty
Как работает шаблонизатор
Скомпилированные шаблоны Smarty
Работа с переменными в шаблоне
Организация циклов в шаблоне
Буферизация вывода в шаблоне
Подключение шаблонов
Передача переменных между шаблонами
Запрет на интерпретацию содержимого в шаблоне
Включение PHP-кода в шаблон
Использование конфигурационных переменных
Функция вывода на экран шаблона
Функция передачи переменных в шаблон
Проверка компиляции шаблона
Принудительная компиляция шаблона
Установка уровня вывода ошибок
Очистка переменных шаблона
Очистка скомпилированных шаблонов
Буферизация вывода шаблона
Получение переменных шаблона
Проверка наличия шаблона
Кэширование

Урок 8. Одиночка. Драйвер БД
Преобразование модели от процедурного подхода к ООП
Статический класс
Шаблон проектирования "Одиночка"
Драйвер работы с БД

Обратная связь по уроку 8
Способы подключения классов контроллеров и модели
Выбор способов автозагрузки
Как правильно называть классы
Вопросы проектирования контроллеров

Урок 9. Пользователи, роли, привилегии, сессии
Пользователь
Сессия
Привилегия
Роль
Механизм авторизации
Механизм контроля доступа
Гибкая схема разделения полномочий
Сокрытие страниц сайта
Особенности протокола HTTP
Использование cookies
Использование сессий PHP
Шифрование паролей
md5
Генерация случайных строковых последовательностей
Определение online пользователей
Схема БД для реализации всего механизма
Создание законченного программного модуля, реализующего весь механизм
Оптимизация программного модуля, кэширование
Механизм авторизации и MVC

Обратная связь по уроку 9
Базовый шаблон и авторизация
Проверка привилегий в шаблоне
Безопасный контроллер
Безопасная модель
SQL: соединение таблиц с помощью JOIN
Комментарии для ролей и привилегий в БД
Базовый шаблон и главное меню
Ошибка смешивания ролей и привилегий
Стократная оптимизация вывода списка пользователей online

Урок 10. Введение в Kohana
Загрузка ПО
Документация
Фреймворк
Основные особенности Kohana
Стиль программирования
Установка Kohana
Структура каталогов
Правила именования классов и их расположения
Ядро, модули и приложение
Последовательность и приоритеты загрузки файлов
Точка входа
Цикл обработки запроса
Маршрутизация и сегменты URL
Избавляемся от index.php в URL

Урок 11. Маршрутизация в Kohana
Определение URL-маршрутов
Формирование шаблона маршрута
Значения по умолчанию в шаблоне маршрута
Согласование архитектуры каталогов с URL-маршрутизацией
Ограничение параметров маршрута
Организация коротких адресов
Получение параметров маршрута в контроллере

Урок 11. Работа с Базой Данных в Kohana
Настройка подключения к БД
Получение экземпляра объекта для работы с БД
Получение таблиц БД
Получение колонок выбранной таблицы
Разрыв соединения с БД
Формирование запроса к БД
Кэширование результатов запросов к БД
Работа с результатами запросов к БД как с объектами
Параметризация запросов
Работа с конструктором запросов
Формирование сложных запросов через конструктор
Использование дополнительных возможностей конструктора запросов
Использование агрегирующих функций в запросах
Выполнение модифицирующих запросов к БД

Урок 12. Работа с Kohana. Модуль ORM
Класс ORM
Связь именования классов с таблицами БД
переопределение ресурсной таблицы, базы данных, первичного ключа
Получение объектов из БД средствами ORM
Определение параметров запроса в БД средствами ORM
Запись объектов в БД
Определения правил для ORM-модели
Формализация связей один-ко-многим для ORM
Формализация связей много-ко-многим для ORM

Урок 12. Работа с Kohana. Модуль авторизации
Настройка модуля авторизации
Табличная архитектура модуля авторизации
Регистрация пользователей
Вход пользователя на сайт
Проверка статуса пользователя
Выход пользователя с сайта
Автоматический заход на сайт
Принудительный заход на сайт

Дополнительный урок. Точки над i
Переход от структурного программирования к объектно-ориентированному
Понимание концепции ООП
Когда нужны конструктор и деструктор
Порядок вызова конструкторов и деструкторов при наследовании
Шаблон проектирования "Одиночка"
Статический методы
Частые ошибки при вызове методов объектов
Внутренние методы PHP, используемые внутри класса
Драйвер БД и PDO
Абстрактный класс и интерфейс
MVC: иерархия контроллеров
Передача информации между запросами
5 правил проектирования объектной модели
Разработка сайта от и до: 5 шагов
Готовое решение для создания сайта (пакет-сборка и правила расширения)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.