«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2018/06/02 12:28:59  №1201471 1
>>1199390 (OP)

И еще сколько ты бы дал баллов из 10 за сайт с такими параметрами (в основном самое фатальное и смешное):

Деплой
Полные сорсы вендоров вместе с архивами на продакшене
Код прямо в продакшен
Нет

Код
DRYOLO - DO REPEAT, YOLO - копируем код во все места где он используется, попутно внося корректировки только в некоторые его инстансы;
Повсеместные магические константы;
Комментарии на cp1251 (ну и код);
Полезность комментариев уровня echo $number; // displaying number
Глобалки с объектами вперемешку со статикой
Тестов нет, хотя бы ручных

Пакетный парсер данных
Вызываем метод с массивом данных; в методе вызываем метод обработки одного элемента; и редиректим с оставшимися элементами на себя-же; (эдакая http рекурсия)

Роутинг
Берем и проходим по юри с конца, первый встретившийся элемент, имеющий соответствующий ему файл php - контроллер

Контроллеры-шаблоны
Полностью смешиваем общение с моделью, валидацию и формирование страницы

Шаблонизатор
str_replace по ключам в массиве весь файл в цикле;
Подшаблоны грузим с диска при каждом обращении (в цикле)

Модели, бд
Рид локи на все таблицы даже при чтении;
Не нормализовано;
myisam для числовых таблиц (ну тут всё-еще спорно);
Кодировки в перемешку (cp1251);
Юзер с глобальными правами;
Буквально дублирующие индексы;
Мусорные, неиспользуемые таблицы и поля;
Пересоздаем таблицы из модели при отсутствии, но схема не соответствует нужной (т.е. Была позже отредактирована вручную, без модификации оригинальной схемы)

Локализация
Определяем язык через explode ( “.”, $uri ) [ 1 ]
Делаем локализацию нигде не внося для этого необходимой логики
Разбиваем данные сущностей в таблицах на два языка, но не всех
Для сущностей доступных через имя в uri, делаем транслитерацию кирилицы наживую, получаем мусорную выборку в случае несовпадение транслитерации туда-обратно

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

Прочее
Повсеместно голые SQL в коде
Отсутствие экранизации
Прямой доступ на любые скрипты
Отсутствие проверки прав или вообще наличия пользователя
error_reporting( 0 );

Не осилили отправку почты, молчу уже про соц. авторизацию.

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


Ответы: >>1201472 >>1218668
Аноним 2018/06/02 12:29:39  №1201472 2
>>1201471
*Нет тестов, слово съел
Ответы: >>1201473
Аноним 2018/06/02 12:30:26  №1201473 3
>>1201472
Да блять т.е. *Нет VCS
под валерьянкой что-то вообще по пизде пошел
1-435 Аноним 2018/06/28 04:37:09  №1218668 4
>>1200385

У тебя названия переменных не очень удачные, вроде arrayTemplate_1_2 - получается длинновато и непонятно. Решить можно было 2 способами, вообще без функций, просто выбирая и выводя по 1 слову, либо сделав шаблон всего стиха сразу такого вида: [$words1, $words2, $words3, ["\n"], $words1, ...].

>>1201406

Немного запоздалый ответ, но если ты используешь встроенный в PHP Storm сервер, то это может быть какой-то косяк с его настройкой. Если твой файл имеет расширение php и начинается с маркера <?php, то код должен выполняться.

Для сравнения можно запустить встроенный в PHP сервер (описан тут https://github.com/codedokode/pasta/blob/master/soft/web-server.md#Веб-сервер ).

>>1201471

Это хорошо, если ты видишь такие недостатки.

>>1201598

Тебе надо изучать CSS и позиционирование. Такой вывод можно сделать с помощью inline-block или float.

>>1201676

Есть такое понятие, как стиль оформления кода, надо смотреть, какой стиль используется в твоем проекте. В PSR-1/2 пробелы там не ставятся.

>>1202029

Может быть, у тебя скрипт назван не так, как в книжке? В атрибуте action указывается имя скрипта.