RChe PHP Framework — релиз

Author Автор: Роман Чернышов    Опубликовано: 12 мая 2021

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

Сегодня же я хочу рассказать о своем новом решении, под названием RChe PHP Framework — это готовая платформа для создания веб-приложений, включающая в себя библиотеки кода, готовые шаблоны, интерактивный генератор кода и разделов сайта, админпанель с множеством предустановленных функций и многое другое. Все это позволяет существенно сократить время на разработку, сфокусировавшись на реализации самого важно — уникальной «бизнес логики», собственных идей и решений. RChe PHP Framework — это больше чем просто набор библиотек и функций, это полноценная CMS, позволяющая в считанные минуты развернуть на сайте готовую к работе платформу и предоставить пользователю необходимый контент с основным набором функционала, от регистрации на сайте — до личного кабинета с функцией пополнения баланса(например).

RChe PHP Framework — это компиляция моего опыта, полученного за многие годы работы с различными проектами, в котором учтены все потребности разработчика, с которыми он сталкивается в процессе написания кода, создания нового уникального функционала. А также потребности клиента, с учетом последующего развития и поддержки проекта. Фреймворк подходит как для создания крупных проектов, так и для небольших веб-приложений, при необходимости из него легко убирается админпанель и основная(пользовательская) часть сайта, превращая его в небольшой но очень гибкий инструмент.

Цели и задачи данного фреймворка

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

Общая информация

Основная часть сайта

  • Поддержка PHP 5.6 и выше, оптимизирован под PHP 7;
  • База данных MySQL 5 и выше, драйвера MySQL/MySQLi/PDO;
  • Методология ООП, архитектура MVC;
  • Работает как под управлением Apache, nGinx так и Windows Server;
  • Адаптивная верстка шаблонов, структуры сайта;
  • Шаблонизатор не используется, применяется PHP Short Tag (с целью увеличения скорости работы);
  • Автоматическая загрузка PHP классов, при обращении;
  • Поддержка кеширования запросов к БД, кеширования изображений(в том числе миниатюр);
  • Поддержка минимизации CSS, JS, HTML кода, при отдаче;
  • Автоматическая генерация WebP изображений для лучшей производительности;
  • Поддержка ЧПУ;
  • Ajax подгрузка данных;
  • Защита от DDOS на уровне скриптов;
  • Единая точка входа;
  • Содержит инсталлятор;
  • Включает в себя админпанель с набором функционала, делающим фреймворк полноценной CMS;
  • Поддержка автора в рамках условий прописанных в лицензии;
  • Наличие документации.

Описание набора библиотек

Semantic UI — CSS фреймворк для создания переносимых интерфейсов.
jQuery — Библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML.
jQuery UI — Библиотека на основе jQuery, реализующая более 20 плагинов.
Fontawesome — Набор шрифтов для выводя красивых иконок.
PapaParse — Работа с CSV на стороне пользователя по средствам JavaScript.

Функционал

Разделы и функции

  1. Регистрация;
  2. Авторизация;
  3. Восстановления пароля;
  4. Форма обратной связи;
  5. Комментарии;
  6. Опросы;
  7. Отзывы;
  8. Форум;
  9. Категории новостей, статей и т.д.;
  10. Страницы(новости, статьи, прочие);
  11. Личный кабинет;
  12. Страница профиля пользователя;
  13. Админпанель;

Админпанель

Админпанель

Консоль(Основной рабочий стол) — Выводит основную информацию по сайту, статистику и т.д.

Настройки > Сайт — Основные настройки сайта, модулей, дополнений и сервисов

Настройки > Главная страница — Позволяет настраивать блоки на главной странице пользовательской части сайта, тип блоков и их расположение, конструктор «лендинга» главной страницы.

Настройки > Меню — Работа со всеми меню сайта, позволяет редактировать пункты меню, ссылки и порядок их отображения.

Настройки > Редактор шаблонов — Веб-редактор, позволяющий прямо в админпанели вносить изменения в HTML шаблоны основной части сайта.

Настройки > Переменные шаблона — Возможность создавать и редактировать переменные и их значения используемые в шаблонах сайта, без непосредственного редактирования самих шаблонов.

Настройки > Свои стили — Редактирование стилей оформления шаблона сайта без изменения CSS кода вручную, назначения цветов и изображений для элементов сайта.

Настройки > СЕО — Настройка META данных для страниц сайта, описание, ключевые слова и заголовки страниц.

Система > Резервное копирование  — Позволяет создавать резервные копии базы данных с последующим скачиванием.

Система > Журнал событий — Отображение всех значимых событий на сайте, действий пользователей.

Сообщество > Пользователи — Просмотр списка пользователей, с возможностью редактирования данных их аккаунта;

Сообщество > E-Mail подписчики — Вывод списка E-Mail подписавшихся пользователей на рассылку сайта, возможность экспорта в Excel, а также рассылки по базе.

Контент > Страницы — Создание и редактирование страниц сайта, публикация новостей и статей, размещение информации, а также загрузка изображений и прочей медиа информации на сайт. Настройка ЧПУ страниц и многое другое.

Контент > Категории — Категории страниц на сайте(рубрики), создание и редактирование.

Контент > Комментарии — Работа с пользовательскими комментариями, модерация, редактирование, удаление.

Контент > Опросы — Создание и проведение опросов на сайте, просмотр результатов проведенных опросов.

Контент > Слайдер — Создание и размещение слайдера на сайте, слайдер это блок на странице сайта с меняющимся в определенный период времени контентом.

Контент > Форум — Работа со встроенным форум, создание разделов и тем, добавление описания.

Контент > Отзывы — Работа с отзывами, оставленными пользователями на сайте, модерация и удаление.

Контент > Города и регионы — Встроенная база стран, регионов и городов по ним, в комплект поставки входят страны: россия, Украина и Белоруссия.

Контент > Справочник валют — Отображения списка котировок валют(более тридцати), со встроенным парсером актуальных котировок по ЦБ.

Контент > Всплывающие окна — Функционал позволяющий создавать и редактировать всплывающие окна на сайте, как информационные, так и с возможностью предложения пользователям подсписки на емаил расссылки.

Инструменты > Реклама на сайте — Управление рекламными блоками на сайте, размещение баннеров, ссылок, произвольного HTM/JS кода в определенных частях сайта.

Инструменты >Рассылки — Проведение E-Mail рассылок пользователям сайта, в том числе по произвольному списку E-Mail адресов.

Инструменты >Рассылки СМС — Возможность осуществлять СМС рассылки пользователям, поддержка нескольких СМС шлюзов, возможность выборки по группам пользователей и указанием своего списка телефонных номеров.

Разработка > Генератор компонентов — Позволяет создавать новые разделы на сайте, всего в несколько кликов, удобно для разработки нового функционала. Указывается название раздела, тип контента(таблица или форма), а также ряд дополнительных параметров(постраничная разбивка, строка поиска, возможность добавления/редактирования/удаления данных, поддержка AJAX), а также создание таблицы в БД с предварительной настройках столбцов. Данный функционал, позволяет быстро создавать заготовки разделов на сайте, которые останется только подогнать под свои нужны — непосредственно в самом коде скриптов. Вместо того, чтобы каждый раз писать один и тот же код.

Набор классов

Access — Класс обеспечивающий авторизацию и регистрацию на сайте, а также позволяющий работать с данными пользователя.
Antiddos — Класс обеспечивающий защиту от DDOS атак на уровне скрипта.
Cache — Статические функции работы с кешем.
Calendar — Работа с датами, числами, названиями месяцев.
Captcha — Генерация и проверка кода при отправке форм, проверка что пользователь не робот.
Comments — Вывод списка комментариев и формы отправки комментария, удаление комментариев.
Component — Базовый класс, от которого наследуются классы компонентов разделов сайта, включат в себя ряд универсальных  функция работы с компонентами. Компонент — это раздел сайта, может состоять из нескольких страниц.
Core — Основной(самый главный) класс фреймворка, все запросы проходят через него, в нем создаются все основные рабочие объекты, в том числе работы с БД и шаблона сайта;
Curl — Работа с CURL, загрузка данных по URL.
DB
— Работа с базой данных MySQL, используется драйвер PDO.
DBMySQLi — Работа с базой данных MySQL, используется драйвер MySQLi.
DBMySQL — Работа с базой данных MySQL, используется драйвер MySQL.
Dbug — Вывод содержимое переменных в удобном, читаемом формате, удобный инструмент для отлаживания скриптов.
GetImage — Загрузка изображений средствами CURL с удаленного сервера, с проверкой MIME Type и сохранением на диск.
Graph — Создание и работа с графиками.
IDNA Convert — Работа с кириллическими доменами, преобразование в PunyCode и т.д.
Image — Работа с изображениями, генерация WebP, масштабирование, наложение водяного знака.
JavaScriptPacker — Минификация и обфускация отдаваемого JS кода.
Location — Работа с базой стран, городов и регионов.
Mail — Отправка почтовых сообщений по средствам PHP Mail или SMTP.
MailStec — Отложенная отправка E-Mail, отправка «порциями», с целью снижение нагрузки на сервер.
Module — Базовый класс, от которого наследуются классы модулей, включат в себя ряд универсальных  функция работы с моделями. Модель — это блок контента, выводимый на странице сайта.
Packer — Упаковка и обфускация JS, минимизация CSS, HTML, оптимизация изображений.
Pagenation — Постраничная разбивка данных
Prepare — Работа с входящими данными, переменными. Дополнение к PDO::Prepare, для гибкой работы в некоторых случаях.
PCLZIP — Работа с ZIP архивами. Архивация, распаковка, навигация внутри архива.
Route — Маршрутизация, разбивка запроса на компонент, секцию и переменные.
RSS — Генерация RSS ленты.
SendSMS — Отправка СМС, работа с несколькими СМС шлюзами.
SEO — Загрузка META данных СЕО, генерация ЧПУ URL из кириллической строки текста.
Server — Работа с окружающей средой сервера.
Settings — Загрузка конфигурации из БД и работа с нею.
Template — Работа с HTML шаблонами сайта, загрузка и вывод шаблона.
Text — Статические функции работы с текстом.
Timer — Подсчет времени выполнения скрипты с учетом времени затраченного на выполнение запросов к БД, удобно для отладки.
URL — Работа с адресами страниц сайта, URL, ЧПУ и прочее.
Verify — Проверка данных на корректность.

С подробным описанием классов и методов можно ознакомиться в документации к фреймворку.

Структура папок и базы данных

Папки структурированы следующим образом:

 
.admin/                        - Админпанель
    ⨽ theme/ 
        ⨽ component/           - Разделы(компоненты) админпанели
        ⨽ css/                 - CSS относящиеся к админпанели
        ⨽ js/                  - JavaScript относящийся к админпанели
        ⨽ image/               - Изображение относящиеся к админпанели
        ⨽ module/              - Модули админпанели
.backup/                        - Резервные копии БД созданные в админпанели, компонентом Резервное копировании
.cache/                         - Файлы кеша системы, запросов к БД, изображений, прочего
.lib/                           - PHP классы фреймворка, в том числе основное ядро системы, прочие библиотеки кода
.theme/                         - Основная(пользовательская) часть сайта
    ⨽ component/                - Разделы(компоненты)
    ⨽ css/                      - CSS оформления основной части сайта
    ⨽ js/                       - JavaScript основной части сайта
    ⨽ image/                    - Изображение основной части сайта
    ⨽ module/                   - Модули основной части сайта
.uploads/                       - Загруженные изображения и файлы на сайт

Таблицы в базе данных:

rche_activate                   - Коды активации аккаунтов при регистрации
rche_ads                        - Реклама на сайте
rche_blogs                      - Записи блогов пользователей
rche_category                   - Категории страниц
rche_cities                     - Города
rche_comments                   - Комментарии
rche_confirm                    - Коды проверки, при восстановлении пароля
rche_countries                  - Страны
rche_currency                   - Котировки валют
rche_fiddlers                   - Email подписчики
rche_forum                      - Форумы
rche_forum_topic                - Темы форума
rche_group                      - Группы пользователей
rche_log                        - Логирование
rche_mainpage                   - Главная страница
rche_mainpage_var               - Переменные главной страницы
rche_menu                       - Меню сайта
rche_menu_link                  - Ссылки в меню сайта
rche_message                    - Сообщения на сайте
rche_news                       - Страницы
rche_order                      - Таблица заказов
rche_partner                    - Партнерская программа
rche_payments                   - Платежи
rche_popups                     - Всплывающие окна
rche_regions                    - Регионы
rche_reviews                    - Отзывы
rche_seo                        - Настройки СЕО
rche_settings                   - Настройки сайта
rche_slides                     - Слайдеры
rche_stecmail                   - Отложенная рассылка Емаил
rche_tags                       - Теги
rche_users                      - Пользователи
rche_vars                       - Переменные шаблона
rche_votes                      - Опросы
rche_votes_ip                   - Результаты опросов

Заключение

Я занимаюсь разработкой с 2009 года, с тех пор я написал множество CMS, таких как Совместные покупки, Спорт-прогнозы, Авто портал, Семейный портал, OsRealty недвижимость — и всё это стало возможным именно потому, что в самом начале своего пути, я создал свой, на то еще время простенький PHP фреймворк(тогда еще по методологии функционального программирования). За это время, я видел как появлялось множество сторонних решений и универсальных движков, которые в свою очередь брались за основу для создания сайтов и веб-приложений, большая же часть из них, как это не прискорбно, превратились в неповоротных монстров(порой на сотню МБ кода) или же напротив перестали развиваться и в конечном счете вообще были закрыты раз и навсегда. Я не раз видел, как владельцы сайтов, в том числе из списка моих клиентов, переносили свои проекты на новые движки и так по несколько раз. Что всегда сопровождалось простоями в бизнесе и большими издержками, в том числе на оплату работы веб-программистов. Пойти своим путем, создать свой Framework — это пожалуй наилучшее мое решение, принятое за последние, более чем десять лет. Затраченные силы и весь проделанный путь, однозначно стоили того! Что касается моего нового решения RChe PHP Framework, то я уверен у него большое будущее.

А что дальше?

RChe PHP Framework однозначно будет развиваться, обзаведется новым функционалом, будет оптимизироваться, будет улучшаться качество кода, а также его документация. Но самое главное, в скором будущем, мною будет разработано множество новых, уникальных проектов, которые будут строиться на платформе моего фреймворка, о чем я расскажу в своих следующих статьях, ведь работа уже во всю ведется!

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

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Купить за 159₽
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка