RChe PHP Framework — релиз
Доброго времени друзья! На протяжении многих лет мне пришлось поработать с большим количеством различных веб-проектов, от простых и не сложных инструментов на подобии парсера до крупных порталов включающих сотни, а иногда и тысячи специализированных функций. Многие из этих проектов писались с нуля, но в большей части в их основу ложился мой собственный 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.
Функционал
Разделы и функции
- Регистрация;
- Авторизация;
- Восстановления пароля;
- Форма обратной связи;
- Комментарии;
- Опросы;
- Отзывы;
- Форум;
- Категории новостей, статей и т.д.;
- Страницы(новости, статьи, прочие);
- Личный кабинет;
- Страница профиля пользователя;
- Админпанель;
Админпанель
Консоль(Основной рабочий стол) — Выводит основную информацию по сайту, статистику и т.д.
Настройки > Сайт — Основные настройки сайта, модулей, дополнений и сервисов
Настройки > Главная страница — Позволяет настраивать блоки на главной странице пользовательской части сайта, тип блоков и их расположение, конструктор «лендинга» главной страницы.
Настройки > Меню — Работа со всеми меню сайта, позволяет редактировать пункты меню, ссылки и порядок их отображения.
Настройки > Редактор шаблонов — Веб-редактор, позволяющий прямо в админпанели вносить изменения в 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
предложить оффер
- jQuery: как получить значение атрибута?
- Интеграция с API ОСАГО сайта sravni.ru
- PHP работа с изображением, класс SimpleImage
- Комментарии на PHP, Ajax, mySQL
- PHP: Категории бесконечного уровня вложенности.
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Как создать Telegram-бота с авторизацией через сайт к записи
- PHP скрипт: каталог закладок на сайты к записи
- Валидация на PHP к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Подключение(интеграция) приема платежей WeChat Pay на сайте к записи
- Интеграция Тинькофф банк Эквайринг на сайт для приема платежей к записи
Archive
- +2024 (7)
- Сентябрь 2024 (1)
- Август 2024 (5)
- Май 2024 (1)
- +2023 (27)
- Ноябрь 2023 (1)
- Октябрь 2023 (13)
- Сентябрь 2023 (10)
- Апрель 2023 (1)
- Март 2023 (1)
- Февраль 2023 (1)
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (36)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (41)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (7)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Как добавить алиас сетевого интерфейса в Centos 7 (Linux) 23.09.2024
- Вывести в меню индикатор новых новостей и статей на сайте Тильда 28.08.2024
- Свой сетевой диск для iPhone — поднимаем Samba на Centos 27.08.2024
- Бекап, сохранение и восстановление БД MySQL 21.08.2024
- Авторизация SSH с помощью ключа в Putty 20.08.2024