nolispe
Доброго дня, написал недавно простенькую программу для учёта потреблённых калорий.
Если хотите запустить, я использовал встроенный веб-сервер.
Буду рад критике, если не затруднит, конечно.
mkramer
Никто не будет качать архив. Выложи в гитхаб
nolispe
Спасибо, выложил на гитлаб.
https://gitlab.com/xisipag869/src
ADSoft
вот вроде все грамотно, по канонам, ООП, абстракции и прочее
но блин разметка в классах…. у вас же и View есть….. вся разметка должна быть там …ИМХОну и функционала то никакого… просто чтоб попрактиковаться в php, тогда ладно….
а то ведь с тем же успехом можно калории в блокнотике в текстовый файл писать ))))сделали бы базу продуктов с калориями — чтоб выбрал по быстрому какие продукты — сколько — а калории тебе само посчиталось
nolispe
> но блин разметка в классах…. у вас же и View есть….. вся разметка должна быть там …ИМХО
Это один из моментов, который меня смущает. Я сначала хотел так сделать, но подумал, что это будет излишним нагромождением в представлении (хотелось оставить его простым, на уровне простой вставки переменных). Но да, вы правы, метод рендер превратился во что-то отвратительное.
> а то ведь с тем же успехом можно калории в блокнотике в текстовый файл писать ))))
То, что функционал можно полностью заменить если и не блокнотом, то простой базой данных, я понимаю, практиковался.
> сделали бы базу продуктов с калориями — чтоб выбрал по быстрому какие продукты — сколько — а калории тебе само посчиталось
Если абстрагироваться от того, что это просто практика, то надо бы ещё дату записывать и статистика потребления калорий. А про базу — я когда-то искал, не нашёл открытую нормальную базу данных калорийности продуктов, тут прийдётся использовать АПИ какого-то сервиса.
Спасибо!
mkramer
Рекомендую уйти от паттерна Registry, перейти на DI-Container.
nolispe
Спасибо, учту.
Это я сейчас читаю Зандстру, у него активно используется реестр.
MouseZver
если овладеешь composer, Зандстру можешь выкинуть.
PHP:
$load = require ‘vendor/autoload.php’; $load -> addPsr4( ‘WebCalMan\’, __DIR__ . DIRECTORY_SEPARATOR );вместо
autoloader.php
nolispe
А при чём Зандстра к композеру? Я про книгу его.
За совет благодарю, изучения композера есть в планах.
mkramer
Как одно с другим связано?
musicman3
POST/GET/SERVER через функцию валидации проведите, а не напрямую в $_GET и т.п. Текст внутри файлов стараются выводить в i18n, но не критично в принципе.
Код (Text):
$resultTable .= ‘ <td><input type=»hidden» value=»‘ . Registry::MODIFY_ACTION . ‘» name=»action»><input type=»hidden» name=»id» value=»‘ . $mainArrayKey . ‘»><input type=»submit» value=»@»> </form></td> <td> <form action = «‘ . Registry::FORM_ACTION . ‘» method=»get»> <input type=»hidden» value=»‘ . Registry::DELETE_ACTION . ‘» name = «action»> <input type=»hidden» value=»‘ . $mainArrayKey . ‘» name=»id»> <input type=»submit» value=»X»> </form> </td> </tr>’; }Вид в контроллере. Нужно выносить.
А вообще я не люблю критиковать чужую работу, так как в нее вложен труд. Всякие каноны, шаблоны, практики и т.п. — это обычно как дополнение к работе и не так важно как понятный код ,который в принципе у Вас есть. Остальное приложится, появится свой стиль или навык какого-то общепринятого стиля. Хорошее форматирование и правильные комментарии — это важные вещи, которые используются в Вашем коде. Поэтому я считаю что Вы молодец, и нужно идти вперед. Если считаете что тема достойна вашего времени, то это же очень хорошо.
nolispe
Спасибо!
Похожие записи:
- Выбрать из массива чисел диапазон
- выполнение кода кнопки после перезагрузки страницы
- Как и куда добавить условие IF в моем коде?
- Функция batch_recursive_count_if с уровнем распаковки для произвольной вложенной итерируемой реализации произвольного типа в C ++
- «Указатель наблюдателя» означает, что он будет обновляться, когда заостренный объект перемещается в памяти.