artygrand
@artygrand
Прогер, кодер, писатель кода

Где найти живое сообщество программистов (создание cms)?

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

Собственно, есть проект, очередная никому-кроме-создателя-не-нужная-cmf-на-php, которую я пишу и поддерживаю в одиночку уже несколько лет. Сейчас идет процесс глобальных изменений, и мне показалось, что опять все одному это делать будет не правильно, ибо с одной точки зрения многого не увидеть, да и опыта может не хватать. Поэтому я решил поискать людей, которых это может заинтересовать. Нужны идеи, советы, критика. Где их взять?

Да, если тут есть люди, которые могут заинтересоваться, то вот гитхаб (типо не реклама %).
  • Вопрос задан
  • 991 просмотр
Пригласить эксперта
Ответы на вопрос 3
riky
@riky
Laravel
сначала прочтите мой ответ отсюда Что почитать об архитектуре CMS?

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

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

из русских создателей коробочных цмс знаю https://phpixie.com/ можете попробовать с его создателем сконнектится, но в коробочных цмс потребности немного другого порядка.

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

если что - спрашивайте, и конечно же удачи!
Ответ написан
lukoie
@lukoie
Идеи советы и критику набрать не сложно. Но вот в итоге ЗАЧЕМ это всё делать - вопрос еще тот. Эта цмс для чего делается?
Ответ написан
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
CMS это такая же модульная система в идеале как и например телевизор - тюнер там, блок питания, экран есть, блок управления...

CMS - это штука которая управляет базой данных и выводит данные из нее в удобном виде. Конечно куда проще научить менеджера пользоваться Navicat (потому что в Экселе он знает больше нас, программистов), но иногда руководство хочет себе красивую админку, чтобы назвать ее словом "удобно", хотя с точки зрения компьютера менее удобной системы чем CMS быть не может.

В общем смысле ЦМС редактирует конфиги сайта (соответствие адрес-страница), редактирует контент (через редактор, хорошим дополнением являются т.н. сниппеты - куски кода, в которые потом можно просто вставить картинку и они отобразятся например как колонки, которые сожмутся на мобильной версии, и конечно цмс-ка редактирует контент.
По поводу редактирования контента обращаемся в теорию структур данных - наиболее удобной себя показала идея инфоблоков от битрикса, но ее не додумали и кинули, устали:
1.1 таблица: имена блоков + 1.2 таблица - хранение дерева блоков
2.1 таблица: имена элементов, таблица 2.2. привязки элементов к блокам (один элемент может быть в нескольких блоках, как телефон может быть планшетом и телефоном одновременно)
3 таблица: имена параметров + 3.3 привязка к блокам/элементам/параметрам
4 таблица: допустимые значения параметров

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

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

А в файлах ты подключаешь блок, запрашиваешь данные через api из твоей базы, приводишь в нужный вид, вызываешь шаблон и отдаешь, или отдаешь массивом, установив заголовок ответа json или каким ты там массивом решил отдать

Но в админке тебе придется это все делать "человекопонятным" - дескать вот схватите мышкой и потяните, потому что обьяснять будущему администратору о том, что деревья хранятся в виде таблицы с тремя колонками - это можешь крышей уехать.

===

Есть еще один подход, пока непроверенный. Такой как ставит в основу своего подхода Яндекс, делая свою БЭМ.
Когда ты программируешь ты по сути создаешь свой мир.
БЭМ говорит так - что любая штука в мире принадлежит какой-то большей штуке или нескольким большим штукам, и при этом по факту ее принадлежности она может иметь параметры. То есть если планшет - это штука из группы телефоны и из группы планшеты, то она имеет параметры причастные и тем и другим, а в случае одинаковых параметров - будут взяты те, чей уровень принадлежности меньше.

Для группы
Телефоны
-- Стационарные
-- Мобильные
-- Планшетные
---- Какой-то телефон

Какой-то телефон будет иметь свойства блока телефоны и свойства блока Планшетные, а если они сдублируются, то основными будут свойства, взятые из планшетника, тем не менее значения проставляются именно "Какому-то телефону", а в самих группах могут быть только "значения по-умолчанию"

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

Но это все это чистой воды бредятина, если в это уйти - это будет увлекательное путешествие в мир структур данных которые один хрен никто так и не понял до конца. Зато ядерную бомбу Эйнштейн таки создал, после чего началась тотальная дибилизация, чтобы никто больше подвиг не повторил.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы