LINUX.ORG.RU

В каких CMS PHP-код наиболее ужасен?

 , ,


1

2

Я фрилансер. В основном работаю с фреймворками, с CMS значительно реже. Поэтому состояние их кода хочу узнать заранее на случай доработок. Буду особенно благодарен за подробные ответы с примерами кода. Что можете сказать конкретно про WordPress и его популярные плагины?



Последнее исправление: Bandicoot (всего исправлений: 1)

В цмсках как правило везде говнокод. Я пока не знаю ни одной цмски, где всё было бы более менее норм.

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

Я имел ввиду код WordPress'а и его популярных плагинов. Вопрос поправлю

Bandicoot
() автор топика

Общепризнанно, что говнейший код в Джумле

dvrts ★★★
()

Битрикс же, ну!

EXL ★★★★★
()

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

umren ★★★★★
()

Идеальных практически нет.

Но характерные индикаторы:

глобальные переменные (злоупотребление),

избыточное использование двойных кавычек,

отсутствие вменяемой политики автозагрузки классов (везде и повсеместно include|require_once без spl_register_autoload),

@подавление @ошибок игнорирование warning/notice,

наследие 5.2- и порою php3|4,

глобальное пространство имен, оформление кода не по стандартам PEAR и им подобных.

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

говнокод это в первую очередь показатель популярности того или иного продукта :)

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

оформление кода не по стандартам PEAR

Есть еще куча других стандартов, PSR к примеру. Я думал, что большинство уже давно на него перешло. Хотя да, это всего-лишь рекомендации, но тем не менее.

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

Спасибо! Фрагменты кода на govnokod.ru - как я сразу до этого не догадался))

Bandicoot
() автор топика

Joomla!. Впрочем точка не нужна.

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

Есть еще куча других стандартов, PSR к примеру. Я думал, что большинство уже давно на него перешло. Хотя да, это всего-лишь рекомендации, но тем не менее.

стандарты PEAR не во всем и не догма - просто основа. Разумеется PSR туда входит.

Многие проекты все еще обременены legacy и это добавляет ароматов. Например PEAR, пытается обеспечить максимальную совместимость и это отражается тоже на качестве кода, а на дворе более менее нормальный 5.5

swwwfactory ★★
()

Не знаю как у новых версий, но до седьмой версии включительно с кодом drupal работать крайне неудобно, постарайся избежать этого.

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

Что-то не совсем понял. Каким образом php-fig относится к pear? РSR'ы же от группы совместимости фреймворков были выдвинуты. Или я что-то упустил?

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

Что-то не совсем понял. Каким образом php-fig относится к pear? РSR'ы же от группы совместимости фреймворков были выдвинуты. Или я что-то упустил?

В основном, pear-стандарты являются базовыми для всех фреймворков, соблюдающих PSR.

http://pear.php.net/package/PHP_CodeSniffer имеет модули определений стилей для популярных фреймворков, во многом на базе pear как мне показалось, но не все разумеется.

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

PSR и PEAR вообще разные вещи.

Есть коммьюнити http://www.php-fig.org/ Они запилили PSR (Стандарты предложенные или одобренные Группой Совместимости Фреймворков)

Вот перевод на русский https://github.com/getjump/fig-standards

А вот стандарты от PEAR http://pear.php.net/manual/en/standards.php

CodeSniffer не пробовал. Я использую php-cs-fixer от fabpot (автор symfony который), который поддерживает PSR. Ни на что другое не смотрел, так как и этого с головой хватает. Ну и в PHPStorm можно тоже отформатировать. Там даже возможностей по больше.

Итого, я всё же рекомендую придерживаться PSR, т.к. большинство либ и фреймворков, которые я встречал придерживаются именно его. Пруфы? Загляни на тот же packagist. Автор композера вроде как даже состоит в php-fig.

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

PEAR в общем не стандарт, а всего лишь рекомендации (в контексте соглашений по коду), но CodeSniffer переключается и настраивается легко на PSR. Использую его в усредненной конфигурации с PSR + плагины.

swwwfactory ★★
()
Последнее исправление: swwwfactory (всего исправлений: 1)
Ответ на: комментарий от swwwfactory

PEAR в общем не стандарт

Ну я это грубо говоря.

Вообще речь шла о рекомендациях. К чему завели разговор о инструментах, я не понимаю.

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

Вообще речь шла о рекомендациях. К чему завели разговор о инструментах, я не понимаю.

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

swwwfactory ★★
()

В 1С Битрикс код наиболее ужасен

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

Не знаю, что там в сниффере я скачал phar архив и написал конфиг для проекта. Собственно всё. Фиксить тоже не сложно. php-cs-fixer fix ./

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

Не знаю, что там в сниффере я скачал phar архив и написал конфиг для проекта. Собственно всё. Фиксить тоже не сложно. php-cs-fixer fix ./

phar - это хорошо, особенно «само-исполняемый». Сниффер ставил примерно так-же: скачал pear2.phar и установил, настроил...

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

Про самоисполняемые не слышал. Они у меня обычно так делаются:

alias php-cs-fixer="php ~/bin/php-cs-fixer.phar"

Начинающему прикрутить их не так просто будет, соответственно качество поддерживать сложнее.

скачал pear2.phar и установил, настроил...

WTF???

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

Я вообще-то другое имел ввиду.

не так просто

Kilte ★★★★★
()

В CMS на PHP, очевидно.

x3al ★★★★★
()

самописные. от контор, которых больше нет.

Ford_Focus ★★★★★
()

Прошу прощения, но зачем вам лазить в код CMSки? Если нужно сделать какой-то плагин, исходники самой CMSки не при чем.

alix ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.