Архив рубрики: Мои проекты

Обновление блога

Решил капельку видоизменить свой блог.

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

И вот новое оформление перед Вами!

Кроме изменения темы, предпринял первые попытки хотя бы не большого заработка на своем блоге (ни каких конкретных целей я не ставлю, если хватит на оплату домена за год — будет уже очень хорошо!). В правом сайдбаре разместил маленький блок Google Adsense,  и блок «Почитываю…», который содержит книги, читаемые мною в настоящий момент. Каждая книга — является ссылкой на партнерку от books.ru.

Пока имею 1,2 $ от Adsense и 39 рублей от books.ru — это уже 1/3 стоимости домена!

Вот такие вот новости!

Моему блогу год!

Я так заработался, что забыл про юбилейчик моего блога! А ведь 6 августа ему исполнился ровно год! Помню как я писал вот эту заметку и строил планы на будущее ) !  Когда моему блогу было 6 месяцев, была написана эта мельникая статейка!

Что же изменилось за прошедшие 6 месяцев…?

А  ничего особенного и не произошло )))

Сейчас мой блог это:

blog_one_yearА вот так обстоят дела с посещаемостью:

Untitled

Имею около 45 подписчиков RSS. Заработал я на своем блоге 91 цент!

Вот такие вот выдающиеся результаты ;-)!

p.s. Как же быстро летит время 🙁

Юпи! 0.0.1

Юпи! 0.0.1

Выход первой версии моего движка задерживается! Навалилось много работы — на все про все не хватает времени!
Тем не менее,  определил список основных задач, которые должны быть решены до выхода версии 0.0.1,  с ними можно ознакомиться здесь http://code.google.com/p/xomaprojects/issues/list (задачи помечены меткой Release0.0.1). Так же выложил первую сырую, но рабочую версию пробуем и сообщаем об ошибках!

p.s. Хотелось бы еще раз поблагодарить Ozzy, за проведенное им маленькое тестирование!читать в jj

Основной сайт Юпи! — http://yupe.ru

Исходный код — https://github.com/yupe/yupe

Присоединяйтесь!

Движок блога на Yii. Front и back разделение.

Предыдущие серии

1 Вступление

2 Yii, создаем свою CMS. База данных

Наверное в каждом веб-приложении возникает задача разделения, так называемой клиентской или public части — та часть веб-сайта или веб-приложения с которой работает пользователь и админ или back части —  часть сайта, с которой работают администраторы, контент-менеджеры и прочие пользователи, отвечающие за наполнение сайта. Сегодня я хочу поговорить о том как это сделать, при использовании фреймворка Yii и какой способ выбрал я при разработке Юпи!.

Критериями для выбора способа будут являться следующие:

  • простота реализации
  • необходимость выполнять дополнительные «тело движения» (править .htaccess, колдовать с роутингом и т.д.)

И так…

При использовании Yii можно поступить несколькими способами:

  1. Создать контроллер Admin или Back и всю логику админки реализовывать там;
  2. В каталоге Controllers создать подкаталог admin или back и все контроллеры и экшены для админки располагать там;
  3. Админка в виде отдельного модуля Yii;
  4. Создать два приложения — одно  для админской части, другое для клиентской;

Все четыре способа упорядочены по сложности их реализации и по необходимости выполнять дополнительные действия — т.е. писать код!

Кратко рассмотрим достоинства и недостатки каждого из них.

1  Создать контроллер Admin или Back и всю логику админки реализовывать там — наверное самый простой способ.

Достоинтва:

  • простота реализации;
  • модели используются всем приложением;

Недостатки:

  • если админка будет очень большая (с большим функционалом), наш контроллер «раздуется» до огромных размеров, что затруднит сопровождение проекта (эту проблему, отчасти может решить вынесение экшенов в отдельные классы);
  • нет отделения админки от остальных частей проекта;

2 В каталоге Controllers создать подкаталог admin или back и все контроллеры и экшены для админки располагать там — второй по сложности реализации способ, забегая вперед, скажу, что я выбрал именно его.

Достоинства:

  • админка физически (на уровне каталога файловой системы) отделена от остальных частей проекта, причем это отделение касается не только каталога Controllers, но и каталога View;
  • модели используются всем приложением;

Недостатки:

я пока их не нашел 🙂

3 Админка в виде отдельного модуля Yii — по правде говоря, кода я начал разрабатывать Юпи! и столкнулся с проблемой разделения на back и front части — тогда еще не было поддержки модулей в Yii (она появилась в версии 1.0.3), поэтому данный способ я не рассматривал. Если кто-то пытался поступить таким образом — прошу рассказать о своем опыте в комментариях.

4 Создать два приложения — одно  для админской части, другое для клиентской — как мне кажется, самый трудоемкий способ.

Достоинства они же, от части, являются и недостатками:

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

Для себя я выбрал способ №2, он, как мне кажется, наиболее удовлетворяет всем моим требованиям.

Таким образом мы имеем следующую структуру проекта.

Вопрос разделения приложения на 2 части поднимался на официальном форуме Yii, почитать можно тут.

Кроме такого вот разделения приложения на две части, для каждой из них я сделал свой базовый контроллер, таким образом все контроллеры клиентской части наследуются от YFrontMainController, а контроллеры админской части от YBackMainController. Введение новых базовых контроллеров позволяет:

  • реализовать  функционал, специфичный для каждой части приложения, в одном месте, что облегчает повторное использование и сопровождение;
  • как правило, для клиентской и адмиской частей используются разные лайауты (layouts), разделение контроллеров позволяет реализовать это очень просто (для этого достаточно переопределить свойство layout);

Например, для всех контроллеров админки, я применяю фильтр, проверяющий авторизацию пользователя, не имея базового контроллера, мне бы пришлось прописывать его во всех контроллерах админки. Так же применяется xss-фильтр, для всех данных, отправляемых из панели администрирования.

Скорее всего,  выбранное мной решение, не является идеальным и имеет скрытые (пока!) от меня недостатки, если Вы о таковых знаете — прошу высказываться в комментариях.

Удачного yii-кодинга, друзья!

Обсудить на форуме

Основной сайт Юпи! — http://yupe.ru

Исходный код — https://github.com/yupe/yupe

Присоединяйтесь!

Мои идеи, или одним выстрелом — трех зайцев

Этой заметкой я хочу убить сразу трех зайцев…

Первый заяц — это движок блога на Yii о котором шла речь тут и тут

Что хочется сказать…работа потихоньку идет, но очень медленно. Для проекта я выбрал рабочее название — Юпи! (Yupe!), если к моменту выхода версии 0.0.1 ничего не изменится — то так и буду его называть (а пока можно предлагать другие названия!)! Для Юпи!, создан проект на code.google.com — это собственно говоря, это мой второй заяц. code.google.com/p/xomaprojects — все  что пишется мной, будет появляться в этом репозитории, пока там не густо, но со временм думаю наполнится!

И наконец третий заяц!Мне очень нравится форум linuxforum.ru, а нравится вот почему…Одно время, я пользовался OpenSuse Linux и постоянно искал материал в ветке о OpenSuse…потом мне потребовалась какая-то информация о Mandriva — нет ничего проще — я просто перехожу в соответствующую ветку и узнаю все, что мне необходимо там. Бывают случаи когда на форуме говорили: «…а вот в Убунту, это сделано лучше и удобнее», на вопрос «…а как именно?» получал ссылку в ветку про убунту и там мог все разузнать «из первых рук» )  Собственно к чему это все я говорю. А вот к чему…Наверное у любого web-разработчика, рано или поздно появляется интерес к фреймворкам (на каком языке вы бы не писали) ведь так же??? Рзработчик начинает искать необходимую ему информацию на офф сайтах, форумах и т.д. При этом ему необходимо зарегистрироваться везде, где он хочет что-либо спросить и получить отчет. Неплохо было бы иметь форум, подобный linuxforum, про современные web frameworks и их место в разработке приложений (я такой не нашел — если есть…что ж….я зря потратил 370р на домен…:-) только не забудьте кинуть ссылочку ). Не долго думая (!) я зарегистрировал домен allframeworks.ru и установил там форум SMF (на все про все ушло 10-15 минут, спасибо моему хостеру).

И вот…он!
Первый раз ставлю форум на хостинг (в локалке пару раз приходилось разворачивать нечто подобное),  к тому же тариф у меня не самый «вип» ))), поэтому возможны проблемы с производительностью. Ну…как говорится будем решать проблемы по мере их поступления (если будет необходимость можно и на вип тариф переехать или на VDS даже).
А пока:

  • форум установлен
  • создана примерная структура
  • есть небольшое первоначальное заполнение

Если кого то заинтересует эта тема, приглашаю в ряды модераторов, администраторов или простых пользователей.

Так же было бы неплохо услышать просто Ваши мысли по этому поводу!

Добро пожаловать на forum.allframeworks.ru!