LINUX.ORG.RU

Инструменты для разработки форумного движка

 , , ,


0

1

Я думаю, ни для кого не секрет, что я в редкое свободное время пилю форумный old-style движок. В качестве бэка использую plain PHP, PDO, MySQL, на фронте - HTML5, Bootstrap 3, jQuery.

Последнее время я подумываю о том, чтобы плавно его перевести в более рациональное русло, но при этом не убив легковесность.

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

Собственно, вот весь js. Он сильно говняный, потому что я сильно не заморачивался и взял его из древнего своего проекта - панели вставки смайлов и цветного текста для gamdev.ru (это примерно половина кода)... вторая половина - говнище, которое нужно переписать, потому что выглядит крайне уродски:

https://russiancoders.tech/main.js?ver=191

Насчёт бутстрапа я стал немного сомневаться. С одной стороны я думаю перейти на четвёртую версию, которая юзает во все поля flexbox и вообще няшка, с другой же стороны - думаю, а не взять ли что-то типа Materialize.css?

Ну и главный момент, - ядро. Учитывая, что PHP сам себе шаблонизатор, то делать форум, состоящий из кучи php-файлов - не такая большая беда. Часть из них - вьюхи, часть - модель, а контроллеры витают где-то в атсрале. Я думал заюзать что-то не сильно тяжёлое вроде Laravel. Но стоит ли игра свечь?

Подпункт этого момента - ORM. Сейчас я использую PDO, который, с одной стороны немного защищает меня от тупости всякой, а с другой - не жрёт ресурсы и позволяет писать такой SQL, какой мне вздумается, а местами, хоть и редкими, я пишу весьма мудрёные запросы... и, скорее всего, ещё буду писать. Полагаю, что ORM наложит оверхеда на всё это дела и гемороя на мою голову, когда мне захочется эдакового. Так нужен ли он вообще.

Короче, рад буду выслушать советы, критику и оскорбления. Не стесняйтесь.

... разработки форумного движка

/me посмотрел в календарь.

... в редкое свободное время пилю форумный old-style движок

/me ещё раз посмотрел в календарь.

Не время сейчас для форумных движков.

vvn_black ★★★★★ ()

Вообще, если так:

форумный old-style движок. В качестве бэка использую plain PHP, PDO, MySQL

— то нужно сравнивать с Vanilla Forums и MyBB, чтобы решить, делать своё или влиться в большую команду этих проектов.

А если:

на фронте - HTML5, Bootstrap 3, jQuery

То можно посмотреть на Flarum.

KRoN73 ★★★★★ ()

в редкое свободное время пилю форумный old-style движок

непонятно зачем, но что подразумевается под «old-style» и чем он принципиально отличаться от других не «old-style» движков (примеры таких хотя бы)?

Собственно, вот весь js
выглядит крайне уродски

адекватность мелькнула на миг!

Я думал заюзать что-то не сильно тяжёлое вроде Laravel

и исчезла

если пишешь для само развития, зачем тебе лара? возьми набор библиотек и склей что тебе надо. Получишь и легковестность и современность. Только следуй PSR рекомендациям.

Полагаю, что ORM наложит оверхеда на всё это дела и гемороя на мою голову, когда мне захочется эдакового.

ну оверхед конечно есть при работе с ОРМ, но плюсы как правило перевешивают очень сильно. Да и допустим доктрина позволяет лепить любые запросы и как правило ещё и выполнит их оптимальным способом. В любом случае рав sql это плохо и надо это выносить в слой хранения который и будет квази ОРМ как минимум.

Noob_Linux ★★★ ()
Ответ на: комментарий от resurtm

Великий программист только начинает осиливать ORM. Ололо.

Да нет, я работал с ORM. Например, с NHibernate сначала, а потом с Entity Framework с его code first, ещё что-то там -first, постоянными миграциями и гемороем, когда нужно буквально добавить одно поле в таблице. Потому и спрашиваю, впёрлось ли мне оно для данной задачи.

ShadowMaker-work ()
Ответ на: комментарий от quester

У меня есть местами не очень хорошие запросы типа такого:

SELECT `g`.`id`, `g`.`topicid`, `topics`.`userid`, `g`.`created` FROM 
(SELECT * 
FROM (SELECT * FROM `posts` ORDER BY `id` DESC) AS `t` 
GROUP BY `t`.`topicid` 
ORDER BY `t`.`id` DESC) AS `g` 
JOIN `topics` 
ON `g`.`topicid` = `topics`.`topicid` 
ORDER BY `topics`.`updated` DESC;
Я боюсь, что ежа рожу, пока реализую этот функционал на ORM.

ShadowMaker-work ()
Ответ на: комментарий от ShadowMaker-work

рукалицо.sql

Тебе с такими познаниями надо сначала что-нибудь по базам данных почитать, про реляционные модели. Твое поделие захлебнется на более-менее больших объемах данных.

hippi90 ★★★★ ()
Ответ на: комментарий от hippi90

Твое поделие захлебнется на более-менее больших объемах данных.

Знаешь, что говорят умные люди про преждевременную оптимизацию. У меня форум в состоянии прототипа. Работает, не валится, не ломается - отлично. Сто-двесте-(максимум пятьсот что-ли было) уников в день абсолютно никак не сказались на его работоспособности на хостинге за 1 евро в месяц, даже с таким говном в запросах. А дальше может будем по существу?

ShadowMaker-work ()

я смотрю, ты уже перешёл к своему обычному занятию - начал делать заход на выклянчивание денег для себя такого бедненького и несчастного?))

anonymous ()