Skip to content
stev edited this page Mar 28, 2012 · 14 revisions

набросок идей (brainstorming)

для анализа, фильтрации и структурирования.

архитектурные моменты

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

структура директорий (набросок)

onPHP
    api
    orm
    http
    core

exemple
    package
    project

dev авто-админка

автоматический интерфейс (некий готовый набор возможностей для разработчика)

  • работа с базой, создание изменения структуры и данных с легированием изменений, создание версионности изменений (DB-diff) т.е. интегрированная "система выкладки проекта".

генератор административного интерфейса

набор инструментов для создания административного интерфейса администратора сайта, контент-пользователей..

application

добавить слой storage

Идея storage - состоит в том что, с ростом проекта, появляется необходимость использовать в качестве хранилища не реляционную базу в ее первоначальном понимании а некое хранилище, не обязательно базу. Хранилище может быть любым - от файловой системы, sql-base db, no-sql base, заканчивая индивидуальным решением php.module или shared memmory. позволить разнести логику сохранения данных в хранилище и выборки. (например сохранение проходит в sql-db, а выборка через Sphinx, Solr, или другое решение) для гибкости кросс-базовых запросов использовать OQL

oql or analog

система пакетов onPHP

Идея пакетов - состоит в следующем, чтоб можно было эффективно и быстро обмениваться решениями между участниками сообщества. Так или иначе у большинства проектов есть значительная часть бизнесс-логики которая повторяется. Ее можно реализовать в виде пакетов и в случае необходимости, автоматом, интегрировать в свой проект. (Установил пакет пакетным менаджером и все) Это позволит экономить время разработки и повысит экономическую привлекательность проекта на onPHP.

очертить новый слой fw-services

Идея сервисов фреймфорка состоит в следующем:

  1. системный сервис notification - для отправки уведомлений определенных типов, разными частями системы. Быть четырех типов INFO, ERROR, WARNING, SUCCESS Могут быть разделены на зоны системные и пользовательские. Знать какой модуль или часть системы их вызвала. (для того чтобы к ним применить политику нужную) например разделятся на зоны доступности. (developer, admin, manager, user, guest, any), логироваться отправляться на по rabbitmq или выводится в интерфейсе.

  2. системный сервис логирования

изменения по CS

  • не оставлять пустых строк с пробелами.
  • прописывать phpdoc какой тип возвращается.
  • названия директорий и пространств имен начинать с прописной буквы и не в множественном окончании.
  • php-файлы классов и интерфейсов не заканчивать закрывающим тэгом ?>
  • расположение не привязано к неймспейсам, но по умолчанию соответствует
Clone this wiki locally