Голосование
Какую CMS Вы предпочитаете
AtomX
Fapos CMS
Drunya CMS
Топ новостей
- Генератор аватарок в стиле пиксель-арт
- Скачать Fapos CMS 1.1.8 Бесплатно
- Цунами в Японии. Последствия.
- Предварительная инфа о FAPOS 1.1.9. Часть 2
- Описание версии CMS Fapos 0.9.9
- Новая версия Fapos 1.3
- Половина россиян не смогла отличить легальный контент
- Что есть Fapos CMS
- Убийца Apache у вас на пороге
- Открытое тестирование Fapos 0.9.9
Последние комментарии
Топ пользователей
Сайты на AtomX CMS
Начну немного не со стороны Fapos CMS. Пойдем, так сказать, с самого начала.
Что такое ORM и для чего оно надо?
ORM - Object-relational mapping - Объектно-реляционное отображение. технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». Существуют как коммерческие, так и свободные реализации этой технологии.
По простому:
ORM - это такая шняга, которая позволяет забыть о базе данных. Не отказаться от таковой, а просто забыть о ней. Другими словами, все по прежнему хранится в базе данных и из нее же и берется, и в нее же сохраняется, но делается это все без вашего участия. Вы просто работаете с сущностями(новости, пользователи, комментарии и так далее), а система сама, в нужный момент сохраняет данные, либо берет их. Приведу пример
Все - мы создали пользователя с определенным логином и паролем и сохранили его в базе. Но заметьте, мы совсем не думали о каких то там мускулах и SQL. Система все сделала за нас. Или вот еще
Тут мы получили пользователя с ИД = 7 и вывели его имя и почту, опять же не думая о базе.
В идеале, все можно упростить на столько, что человек не разбирающийся в программировании сможет довольно легко управлять сущностями и создавать плагины, модули и моды. Эту цель я и преследую.
Кроме этого, такая система позволит улучшить качество кода и его понимание. Свести вероятность багов к минимуму и упростить отладку. В общем минус тут только один - сложность внедрения. Тобишь мне придется трахнуть себе мозг и делать это довольно долго) Но итог того стоит.
Теперь о главном
Я собираюсь вывести Фапос на новый уровень и именно внедрение ОРМ структуры сейчас очень актуально. За все время существования Fapos, в его архитектуре отсутствовало понятие "Модель", я считал его лишним и не уместным. Но теперь мы разрослись и кода стало очень много. Теперь его поддержка занимает очень много времени и сил. Я порой сам забываю как что устроено. Последние несколько месяцев я проводил рефакторинг кода и добился хороших результатов. Теперь мне самому любо смотреть на фапос и на его код, но если воплотить в жизнь мои задумки с ОРМ, то все станет еще в разы лучше и меньше по объему.
Как я себе все это представляю? Ну во-первых, появится понятие "Модель". У каждого модуля будет модель, которая будет служить для работы с данными. То есть вместо 20 строк кода с описание запроса, можно будет написать:
Или возможно еще проще. Ну и сама модель не будет содержать этих огромных запросов к базе, а работать с ОРМ. На первый взгляд это все может казать усложнением, но поверьте, когда из кода уйдут запросы к мускулу, код станет намного чище и читабельнее, а правильно подобранные имена методов, будут раскрывать их суть, что сделает внутреннюю реализацию интуитивно понятной и простой.
Дело в том, что подобные изменения потребуют много времени, но я надеюсь, что совсем скоро я воплощу это в жизнь. Знаю, что большинству класть большой и толстый на то как все это сделано внутри - главное наружный функционал, но поверьте, чем лучше код, тем система стабильнее и легче конфигурируема.
Нас ждут перемены и перемены хорошие. Растем Господа. Свергнем устоявшиеся устои и засидевшихся, зажравшихся гигантов рынка, существующих не для нас, а для наживы. Fapos всех победит
Что такое 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();?>
В идеале, все можно упростить на столько, что человек не разбирающийся в программировании сможет довольно легко управлять сущностями и создавать плагины, модули и моды. Эту цель я и преследую.
Кроме этого, такая система позволит улучшить качество кода и его понимание. Свести вероятность багов к минимуму и упростить отладку. В общем минус тут только один - сложность внедрения. Тобишь мне придется трахнуть себе мозг и делать это довольно долго) Но итог того стоит.
Теперь о главном
Я собираюсь вывести Фапос на новый уровень и именно внедрение ОРМ структуры сейчас очень актуально. За все время существования Fapos, в его архитектуре отсутствовало понятие "Модель", я считал его лишним и не уместным. Но теперь мы разрослись и кода стало очень много. Теперь его поддержка занимает очень много времени и сил. Я порой сам забываю как что устроено. Последние несколько месяцев я проводил рефакторинг кода и добился хороших результатов. Теперь мне самому любо смотреть на фапос и на его код, но если воплотить в жизнь мои задумки с ОРМ, то все станет еще в разы лучше и меньше по объему.
Как я себе все это представляю? Ну во-первых, появится понятие "Модель". У каждого модуля будет модель, которая будет служить для работы с данными. То есть вместо 20 строк кода с описание запроса, можно будет написать:
1
2
<?php $posts = $this->Model->getPostsByTheme(12, $page, $limit);?>
Или возможно еще проще. Ну и сама модель не будет содержать этих огромных запросов к базе, а работать с ОРМ. На первый взгляд это все может казать усложнением, но поверьте, когда из кода уйдут запросы к мускулу, код станет намного чище и читабельнее, а правильно подобранные имена методов, будут раскрывать их суть, что сделает внутреннюю реализацию интуитивно понятной и простой.
Дело в том, что подобные изменения потребуют много времени, но я надеюсь, что совсем скоро я воплощу это в жизнь. Знаю, что большинству класть большой и толстый на то как все это сделано внутри - главное наружный функционал, но поверьте, чем лучше код, тем система стабильнее и легче конфигурируема.
Нас ждут перемены и перемены хорошие. Растем Господа. Свергнем устоявшиеся устои и засидевшихся, зажравшихся гигантов рынка, существующих не для нас, а для наживы. Fapos всех победит
Комментарии
-
Drunya
ну разве что те, которые один раз поставил и забыл. А такая вещь как ОРМ требует постоянного анализа и доработки. К тому же сторонние орм перегруженны не нужным Фапосу функционалам и сами по себе весят больше фапоса. Так что тут и ежу понятно, что нам лучше разработать что-то свое. Тем более, что мы не первый день разработкой занимаемся)Дата отправления: 15 Фев 2012 -
skad0
Тут можно спорить. Ты говоришь о том, что фреймворки, библиотеки и другое не стоит использовать?Дата отправления: 14 Фев 2012 -
Drunya
вот именно туева хуча времени и есть основной минус, но что поделаешь, придется. готовое юзать не охота, так как потом начинается - версия лопаты не совместима с версией черенка и все в таком духе)Дата отправления: 14 Фев 2012 -
skad0
Андрей, не задумывался использовать готовые решения?
По сути времени твоя работа займет не малоДата отправления: 14 Фев 2012 -
Losting
"Читабельный Код" Вот это главное.Что отличает фапос от других cms уже на данный момент.Дата отправления: 13 Фев 2012
Сейчас online: 90. Зарегистрированных: 0. Гостей: 90.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Программирование - что может быть проще.
Программирование - что может быть проще.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Написание простого вируса в блокноте
Что такое API и для чего они нужны
Классы в PHP для чайников
Написание простого вируса в блокноте