Комментарии 16
Это лютое дно! Сразу видно руку "мастера" и битриксоида.
это старый код. И это как раз и была попытка сделать что-то типа бесплатного Битрикса, взять его главные преимущества и что-то доработать под себя. Но в одиночку написать полноценную CMS/Framework действительно очень сложно.
в одиночку написать полноценную CMS/Framework действительно очень сложно
Не в одиночку тоже не так уж просто. Но тут самый главный вопрос - почему не пользоваться готовым всем, чем можно - ORM, шаблонизатором, макетами админок, Composer, да даже целый фреймворк (Laravel, Symfony, Yii) затащить в чем проблема?
Вообще этот проект продолжать имеет смысл:
Если он нужен вам для ваших нужд, развития или развлечений, тогда его вообще можно сделать закрытым и никому не показывать.
Если вы можете ответить, кто ваш воображаемый пользователь, и какие ему ваша CMS дает конкурентные преимущества (да такие, чтобы эти преимущества перекрывали недостатки) по сравнению с аналогами, ради которых тратить время и его стоит изучать.
Хороший комментарий и правильные вопросы.
— Про воображаемого пользователя: на тот момент (в 2018 году) он виделся мне вполне конкретным. Это Битрикс-разработчик, у которого уже есть опыт работы с этой CMS, и ему нужно прямо сейчас собирать мелкие сайты подработки. При этом он не хочет покупать коммерческую лицензию Битрикса и не готов тратить время на изучение условного Drupal или Laravel ради простого лендинга на пару страниц. Плюс к этому — ультрамалый вес движка и отсутствие жесткого требования к MySQL на сервере (что было актуально для самых дешевых хостингов).
Актуально ли это для кого-то прямо сейчас? Мне уже сложно сказать (как раз для этого я и прикрутил опрос в конце статьи). Сам я с Битриксом сейчас работаю редко, да и с 2018 года на рынке появилось гораздо больше подробной документации и других бесплатных готовых решений.
— Про личные нужды: да, на тот момент фреймворк создавался под собственные задачи и, в первую очередь, для глубокого изучения веб-разработки изнутри.
на тот момент [2018 год] фреймворк создавался под собственные задачи и, в первую очередь, для глубокого изучения веб-разработки изнутри
Для этого как раз стоило выбрать существующих гигантов.
PHP 5.4 вышел в 2012, там уже синтаксис массивов [], а не array. Неймспейсы появились в PHP 5.3 в 2009, не говоря уже об автоимпортах, DI и прочем. Вы ничем этим не пользуетесь, есть подозрение, что как раз по причине того, что этой глубины веб-разработки в проекте нет, и учиться получается не на чем.
Проект развивался 3 года, и стиль кодинга менялся вместе с моим обучением. Что-то могло быть не переписано, что-то исправлено. Конструкция array() использовалась для поддержки старых версий языка. Просто тестировалось минимум на 5.6.
Неймспейсы в проекте используются. (есть автоподключение классов, сам компосер не пробовал на тот момент подключать)
Использовать это для обучения кому-то сейчас точно не стоит - скорее для обзора масштаба или, может быть, для мотивации. На тот момент это был инструмент именно для моего обучения, код постоянно писался, переписывался и переделывался.
Это же процесс и состояние кода, сейчас такая стадия (зафиксированное состояние), завтра можно всё переписать, а вот нужно ли это уже другой вопрос. (или сделать всё только на php 8.4)
Сила битрикса в его масштабах, есть много веб студий которые умеют с ним работать, под него много готовых модулей интеграций с разными платежными системами, с доставками, с CRM системами. У битрикса есть поддержка и сообщество.
Но вот качество кода и его архитектура просто ужасны. Писать на нём код это боль и страдания. Документация оставляет желать лучшего. Паттерны проектирования там просто отсутствуют. Да и производительность не ахти.
По сути вы своим фреймворком избавились от всех плюсов битрикса и взяли его худшие стороны пытаясь повторить его архитектуру
Про бизнес-составляющую Битрикса (сообщество, готовые модули, интеграции) вы правы на 100% - именно поэтому он коммерческий гигант. И именно поэтому в одиночку повторить этот масштаб нереально.
Но вот насчет «взял худшие стороны» я бы поспорил. Я взял из Битрикса только интерфейсную идею, изоляцию блоков в виде компонентов, которые вызываются одной строчкой и принимают массив параметров. Для битрикс разработчика в 2018 году это был очень понятный и быстрый способ собирать страницы.
Архитектурно это скорее попытка взять простую и удобную концепцию компонентов, но реализовать её в ультралегком весе без коммерческого «монстра» под капотом.
+ это бесплатно. И порог входа, обучение как у битрикса, за счёт компонентов.
Есть и куча минусов, недоделанного, например нельзя api написать или привычные роуты.
Старт разработки в 2018, продолжительность 3 года... 5лет думали стоит это обнародовать или нет? Или просто за работой 8 лет пролетели как 3? 😁
Всё так, код выстаивался.) Три года - это именно активная часть разработки. Потом в реальной жизни появились другие, не связанные с IT дела, которые требовали очень много времени.
К проекту я возвращался наплывами, например в отпусках. И далеко не всегда это был кодинг, оформлял Wiki, делал сайт документации, монтировал видео. В прошлом году доделал несколько недостающих компонентов, а в этом году прямо перед публикацией статьи, еще раз протестировал установку с нуля и исправил то, что успел найти.
Проект на перепутье, либо продолжать либо закрывать, нужно финализировать для себя. В плане пользователей и проекта с открытым кодом это неудачный опыт, т.к. их нет (и такое тоже бывает, про это и пишу). Для себя опыта получено много и это не только код. (тут и дизайн и вёрстка и монтаж публикация видео, заполнения файлов репы).
А в чем смысл тестировать продукт на давным давно устаревшей PHP 5.6 ?
Перед публикацией я протестировал на php 8.3 (мог бы на 8.4 но чуть дольше бы заняло времени, думаю тоже заработает). При этом багов связанных с 8.3 не было, были мелкие не связанные с версией php.
Упоминание php 5.6 пришло из старого README-файла репозитория. Проект начался в 2018 году и изначально проектировался с оглядкой на старые серверы и хостинги, поэтому обратная совместимость с 5.6 тогда проверялась реально. В 2026 году или годом ранее не тестировал на 5.6 .
А что значит "gy"? Есть в этом названии какой-то смысл или просто набор букв?
Привет, благодарю за статью, думаю что это классный опыт сделать что то своё. Я работаю с Битрикс 3-ий год и уже столкнулся с некоторыми его минусами, в частности с медленным поиском, особенно если БД большая, планирую в свободное время попробовать решить эту проблему, теперь точно, прочитав как многому можно научится! Спасибо!
Большое спасибо). Это всего лишь альфа версия, всё далеко от идеала, небольшой обзор того что получилось.
С поиском подробно не работал, если штатные средства попробовать переиндексацию можно в настройках, поиск. Если крупная задача смотреть в сторону Sphinx или Elasticsearch мельком слышал от коллег.
Удачи в решении этой задачи.

Разработка длиною в 3 года: как я писал свой PHP CMS/Framework Gy, «убийцу» Битрикса, весом 350 Кб