Чуть больше чем просто блог :)

Введение в будущую BeeCMS Избранное

У меня есть желание сделать удобную и быструю систему управления контентом, построенную на фреймворке Yii2. Возможно что в итоге это будет очеребдая "Супер CMS" которая так и не будет работать. Но не сделав ее, я допущу куда большую ошибку.

Это первый, вводный материал, где я расскажу немного о себе, проекте и некоторых его функциях. Так-же опишу ПО, которым буду пользоватся и выложу полезные ссылки по теме.


Всем привет )

Поскольку у меня есть некий опыт программирования и знаний по уже полюбившемуся мне Фреймворку Yii2 - начну запись видео по разработке долгожданной системы управления контентом, которую я назвал "BeeCMS". После выхода первой версии CMS ее можно будет скачать с официального сайта либо с GitHub, ссылки на которые выложу в дальнейшем. Постепенно будем ее дописывать различными полезными и интересными модулями, о которых расскажу далее.

Прежде немного истории:

У меня не супер большой опыт в программировании и это не было моей профессией в университете. Но техническое образование и любовь к конструированию все-же привела меня к нему :)

Начал разработку сайтов с 2008 года. И по началу это были страницы на HTML, затем занялся выбором подходящего движка и остановил свой выбор на Joomla. Делал сайты по началу не зная программирования и не изучая его вовсе. Отталкивался только от внутреннего ощущения и понимания. Позже конечно пришел к тому что это было ошибкой. Но все-же то время дало мне отличный опыт в поиске любого скрытого фрагмента кода (даже если нужно найти из веба какой-то скриптик в сжатом JavaScript файле всего сайта) и применить его к своему сайту, или докопаться к части кода на проверку лицензии, чтобы отключить ее. А умение комбинировать не комбинируемое помогло решать любые запросы, поставленные клиентом. И когда люди, которые называли себя программистами - говорили, что это невозможно – я зачастую находил решение.

Был в моей жизни так-же проект в 2012 году по разработке игры и 3D визуализации. Но интерес к WEB оказался сильнее. И после окончания работы над тем проектом решил вернутся к разработке сайтов, но уже с настроем глубокого изучения программирования. Начал изучать PHP, JavaScript и более детально и глубоко копался в готовых реализациях различных CMS, таких как Joomla, Wordpress, Bitrix... для понимания их архитектуры.

Любое изменение выбора часто связанно с тем, что нас что-то не устраивает. И это чувство является двигателем к нашему развитию, поскольку, меняя выбор мы теперь будем обучатся поступать по-новому.

И тут у меня началась ломка. Меня бесило практически все в уже готовых CMS:

  • Они сртоят очень сложные запросы для простых вещей;
  • Подгружают все скрипты скоупом, а не в нужном месте;
  • Параллельно подгружаются классы, которые вообще нигде в дальнейшем не используются;
  • Посылают 100 запросов для 1й страницы, с блоком меню и обычным текстом, вместо 2х;

И так можно продолжать.

Основная их суть в том, чтобы они решали задачи большинства их клиентов и с этим они справляются нормально и стабильно. А уже то, что на сайт не может зайти более 100 пользователей одновременно и создают дополнительные постоянные затраты на хостинг - никто, как мне кажется, и не думал.

Если вы скажете, что для большинства клиентов это и не нужно – вы будете правы.

А попробуйте поспорить с тем, что посетителю, зашедшему на ваш сайт или сайт вашего клиента должен ждать 1-10 секунд, пока откроется сайт и выполнятся все 100 ненужных запросов вместо 100 миллисекунд. С этим уже не поспоришь! Поскольку об этом явным образом скажет нам статистика посещений. Где будет видно после какой секунды ушел наш посетитель. И таких пользователей достаточно много, не учитывая тех, кто ушел с сайта так и не дождавшись даже загрузки скрипта и не попал в статистику.

Не то чтобы я не люблю CMS, просто их разработчики не видят статистику своих клиентов.

На сегодняшний день я все-же использую в своих проектах CMS Joomla, переписывая и ускоряя ее практически вдвое. Но желание создать свое, с тем пониманием и видением, которое сложилось у меня за это время уже сформировано и готово к воплощению.

Так что теперь можно приступать ☺

Вкратце о проекте:

Система управления сайтом "BeeCMS" построена на Yii2 Фреймворке с использованием новых тенденций разработки. Она будет предназначена для решения различных задач, таких как создания персонального, корпоративного сайта, интернет-магазина, блога... Основная цель - интуитивность и удобство как для менеджеров, так и для разработчиков.

Особый уклон будет сделан на:

  • Архитектуру проекта;
  • Оптимизацию запросов;
  • Скорость загрузки и количество потребляемых ресурсов;
  • Удобство использования;
  • Автоматизацию бизнес задач;
  • Автоматическую смена дизайна под устройство RESS (Responsive Design + Server Side);
  • Подгрузка только нужных файлов, скриптов;
  • Внутренние отчеты и сбор дополнительной информации о всех посетителях.

Многое количество компонентов, которые пишутся к готовым CMS доступны отдельно для установки в платном либо бесплатном виде. Конечно не все из них нужны, но многие удобно использовать в 90% сайтов (это из моего опыта). Например Карта сайта, которая автоматически генерирует xml файл для лучшей индексации в поисковиках. Почему бы ее не вписать сразу? В планах я расписал довольно много функционала, но об этом будем говорить постепенно, а пока опишу некоторую его часть.

Некоторые из основных планируемых функций системы управления:

  • Встроенная автоматическая смена языков и виджет переключения;
  • Статические страницы;
  • Блоги;
  • Комментарии;
  • Генерация карты сайта;
  • Авторизация:
    • Сбор расширенных данный о пользователе;
    • Совмещение устройств;
    • Отслеживание и блокировка злоумышленников; 
    • Авторизация через сторонние сервисы. такие как ВКонтакте, Гугл, Вейсбук и др;
  • Умная система уведомлений и рекомендаций;
  • Интернет-магазин/Каталог;
  • Расширенные СЕО функции:
    • Автоматический аудит сайта;
    • Генерация мета тегов на основе текста страницы;
    • Проверка текстов на уникальность как при создании контента, так и периодически;
    • Проверка позиций запросов;
    • Анализ конкурентов;
    • ...
  • E-mail рассылки;
  • Файл менеджер по типу Total Commander;
  • Простой текстовый редактор контента;
  • Гибкий Импорт/Экспорт:
    • Из готового модуля (например, магазина);
    • По своему шаблону в БД;
    • Срабатывание по:
      • Расписанию
      • Запросу
  • Онлайн чат:
    • Пригласить посетителя в чат;
    • Онлайн консультации;
    • Статистика активности пользователя для приглашения в чат наиболее активных;
    • Групповые чаты;
    • Вывод приглашения пользователю по времени;

И как говорил ранее, еще в планах многое другое )

Используемое ПО:

В своей работе я буду использовать следующий софт:

PhpStorm – в качестве среды разработки, доступный по ссылке: https://www.jetbrains.com/ ;

dbForge Studio for MySql – для управления БД, доступный по ссылке: https://www.devart.com/ ;

Open Server - ВебСервер, можно скачать с официального сайта: http://open-server.ru/ ;

Notepad++ для быстрого редактирования файлов, можно скачать с: https://notepad-plus-plus.org/ ;

Araxis Merge для сравнения файлов/папок, официальный сайт: http://www.araxis.com/ ;

Axure RP pro для составления скелета проекта. Триал можно скачать на сайте: http://www.axure.com/ ;

FastStone Capture бесплатная программа для создания скриншотов с экрана монитора, которую можно скачать с http://www.faststone.org/index.htm ;

Калькулятор в качестве калькулятора )

При смене текущего софта на другой или добавлении нового буду предварительно вводить в курс и вас.

Конечно написание своей системы управления довольно объемный пласт работы, и может с одной стороны показаться ненужным, но как говорил Иосиф Виссарионович Сталин "Хочу мышью открывать окна. И не только открывать, но и закрывать". О чем свидетельствует этот документальный исторический выпуск Comedy Club :), который можно посмотреть по ссылке: https://www.youtube.com/watch?v=bjaLb4RJfRs

Полезные ссылки:

https://github.com/yiisoft/yii2/tree/master/docs/guide-ru - Полное руководство по Yii 2.0 на русском языке;

https://github.com/yiisoft/yii2/tree/master/docs/guide - Полное руководство по Yii 2.0 на русском английском;

https://github.com/samdark/yii2-cookbook/tree/master/book - Книга рецептов на английском

http://yiiframework.ru/forum/index.php - Официальный форум

http://www.elisdn.ru/blog/tag/Yii2 - Отличный блог Дмитрия Елисеева;

https://www.youtube.com/user/DoingITeasyChannel/videos - Видео-канал "DoingITeasyChannel";

http://developer.uz/blog/ - Интересный блог с полезными решениями;

http://demos.krajee.com/ - Krajee

http://yiifoundation.2amigos.us/site/widgets - Виджеты и Хелперы от 2amigos

На сегодня это все. В следующем видео поговорим о структуре БД нашей будущей системы управления.

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

Другие материалы в этой категории: BeeCMS::Файловая структура проекта »

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

Авторизация