Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Голосование

    Какую CMS Вы предпочитаете

    AtomX
    Fapos CMS
    Drunya CMS
Последние комментарии
Автор: чайник, в новости:

Что такое API и для чего они нужны

Автор: HIshnik, в новости:

Классы в PHP для чайников

Автор: Аноним, в новости:

Написание простого вируса в блокноте

Автор: stream, в новости:

Создаем BB коды на PHP

Автор: boriska, в новости:

Релиз Atom-M CMS 4

Автор: 0leg, в новости:

Релиз Atom-M CMS 4

Топ пользователей
Drunya
Репутация: 108
Сообщений: 3531
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1859
BAH0
Репутация: 26
Сообщений: 544
Главная » Новости » AtomX CMS » Что и как
Начну немного не со стороны Fapos CMS. Пойдем, так сказать, с самого начала.

Что такое ORM и для чего оно надо?
ORM - Object-relational mapping - Объектно-реляционное отображение. технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». Существуют как коммерческие, так и свободные реализации этой технологии.

По простому:
ORM - это такая шняга, которая позволяет забыть о базе данных. Не отказаться от таковой, а просто забыть о ней. Другими словами, все по прежнему хранится в базе данных и из нее же и берется, и в нее же сохраняется, но делается это все без вашего участия. Вы просто работаете с сущностями(новости, пользователи, комментарии и так далее), а система сама, в нужный момент сохраняет данные, либо берет их. Приведу пример

 1 
 2 
 3 
 4 
<?php $User = new User();
$User->setName('Vasya');
$User->setPass('123456');
$User->save();?>

Все - мы создали пользователя с определенным логином и паролем и сохранили его в базе. Но заметьте, мы совсем не думали о каких то там мускулах и SQL. Система все сделала за нас. Или вот еще
 1 
 2 
 3 
 4 
<?php $Model = new FpsMapper('users');
$User $Model->getById(7);
echo 
$User->getName();
echo 
$User->getEmail();?>
Тут мы получили пользователя с ИД = 7 и вывели его имя и почту, опять же не думая о базе.


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

Кроме этого, такая система позволит улучшить качество кода и его понимание. Свести вероятность багов к минимуму и упростить отладку. В общем минус тут только один - сложность внедрения. Тобишь мне придется трахнуть себе мозг и делать это довольно долго) Но итог того стоит.


Теперь о главном
Я собираюсь вывести Фапос на новый уровень и именно внедрение ОРМ структуры сейчас очень актуально. За все время существования Fapos, в его архитектуре отсутствовало понятие "Модель", я считал его лишним и не уместным. Но теперь мы разрослись и кода стало очень много. Теперь его поддержка занимает очень много времени и сил. Я порой сам забываю как что устроено. Последние несколько месяцев я проводил рефакторинг кода и добился хороших результатов. Теперь мне самому любо смотреть на фапос и на его код, но если воплотить в жизнь мои задумки с ОРМ, то все станет еще в разы лучше и меньше по объему.

Как я себе все это представляю? Ну во-первых, появится понятие "Модель". У каждого модуля будет модель, которая будет служить для работы с данными. То есть вместо 20 строк кода с описание запроса, можно будет написать:
 1 
 2 
<?php $posts $this->Model->getPostsByTheme(12$page$limit);?>

Или возможно еще проще. Ну и сама модель не будет содержать этих огромных запросов к базе, а работать с ОРМ. На первый взгляд это все может казать усложнением, но поверьте, когда из кода уйдут запросы к мускулу, код станет намного чище и читабельнее, а правильно подобранные имена методов, будут раскрывать их суть, что сделает внутреннюю реализацию интуитивно понятной и простой.

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


Нас ждут перемены и перемены хорошие. Растем Господа. Свергнем устоявшиеся устои и засидевшихся, зажравшихся гигантов рынка, существующих не для нас, а для наживы. Fapos всех победит:)
Размышления о будущем Fapos. Приподнимаем завесу

Теги: Сверх современная бесплатная CMS Fapos;
Автор: Drunya
Категория: Что и как
Просмотров: 1461
Комментариев: 9

Комментарии
  • User avatar

    Drunya

    Пожалуйста. Стараемся)
    Дата отправления: 17 Фев 2012
  • User avatar

    Junior

    Это очень и очень здорово)
    Спасибо за работу.
    Дата отправления: 17 Фев 2012
  • User avatar

    Drunya

    ну разве что те, которые один раз поставил и забыл. А такая вещь как ОРМ требует постоянного анализа и доработки. К тому же сторонние орм перегруженны не нужным Фапосу функционалам и сами по себе весят больше фапоса. Так что тут и ежу понятно, что нам лучше разработать что-то свое. Тем более, что мы не первый день разработкой занимаемся)
    Дата отправления: 15 Фев 2012
  • User avatar

    skad0

    Тут можно спорить. Ты говоришь о том, что фреймворки, библиотеки и другое не стоит использовать?
    Дата отправления: 14 Фев 2012
  • User avatar

    Drunya

    вот именно туева хуча времени и есть основной минус, но что поделаешь, придется. готовое юзать не охота, так как потом начинается - версия лопаты не совместима с версией черенка и все в таком духе)
    Дата отправления: 14 Фев 2012
  • User avatar

    skad0

    Андрей, не задумывался использовать готовые решения?
    По сути времени твоя работа займет не мало
    Дата отправления: 14 Фев 2012
  • User avatar

    ARMI

    Набираем высоту) Все круто, молодец)
    Дата отправления: 13 Фев 2012
  • User avatar

    Losting

    "Читабельный Код" Вот это главное.Что отличает фапос от других cms уже на данный момент.
    Дата отправления: 13 Фев 2012
  • User avatar

    Сашка_из_Шебекино

    Круто))
    Дата отправления: 13 Фев 2012
Категории:
Сейчас online: 15. Зарегистрированных: 2. Гостей: 13.
-->