[PHP] Лекция 8, Домашно - дискусия и решения


13

Колеги, споделям своето решение:

Структурата на проекта ми е следната:

 

Както виждате, в папката public_html имам един единствен файл - index.php. Това ми се явява single entry point в проекта. От там пренасочвам накъдето е необходимо.

Използвал съм кода от домашното, като почти не съм го променял. Моля, не коментирайте решението, т.е. готовото решение, което ни беше дадено, то има доста пропуски.

Ще се радвам да коментирате, критикувате и пишете своите забележки само по новия елемент от домашното, а именно разделянето на бизнес логиката от презентацията. Точно това е моят дял в домашното :).




Отговори



0

Едно решение и от мен. Този път доста го обмислях, защото отделянето на бизнес логиката от view-то е ясна, но имаше проблем с обработката на самата бизнес логика, по скоро с разделянето и спрямо страницата която се зарежда.

Реших, че е най- просто да инклудвам различен модел в зависимост от страницата, която се извиква.

Това е самото решение:

КОД

Показвам само кода, защото не виждам никакъв смисъл от демо.


от krasi.nikolov (1412 точки)


0
Една забележка, която вече бях писал и на друг колега:
Няма никаква нужда от ред 7 във файла index.php. Така или иначе, при всички случаи, по-надолу в кода ти си инициализираш променливата $page.

от georgi.s.yankov (6219 точки)


0

Georgi Yankov Извинявай, може ли да ми обясниш този ред ${$key} = $value; от функцията renderLayoutWithContentFile. Разбирам за какво го използваш, но не ми е ясен синтаксиса.


от dessy.tomova (151 точки)


0
То може и така: $$key = $value;
Погледни тук: http://php.net/manual/en/language.variables.variable.php

от georgi.s.yankov (6219 точки)

0
мерси схванах :)

от dessy.tomova (151 точки)


0

https://github.com/TooSexyforU/Php_refactoring

Най- доброто решение! Не можете да отречете


от Asa (0 точки)


0
И защо реши, че е най-доброто? :)
На мен първото нещо, което ми се наби на очи е, че всичките файлове и папки са ти в root директорията на проекта "Php_refactoring".

от georgi.s.yankov (6219 точки)

0
аз пък се чудя защо от view файловете викаш тези, които държат логиката, а не обратното? има ли такава практика? признавам, че не съм запозната.

от arabella (2576 точки)



0

Само едно доизпипване мога да предложа на колегата Georgi Yankov. Линковете в горната част на страницата може да се отделят в отделен файл, който да участва в layout-ите - примерно menu.php. Ето така изглежда той при мен:

Меню:    Начало    |    Добави книга    |    Добави автор

Това се появява във всеки файл и се пести малко писане на код. Освен това така менюто може да се стилизира на по-късен етап, да се мести по екрана и всички благинки, които layout-тите ни дават.


от themagicis (262 точки)


0
Здравейте,
Благодаря за споделените домашни. Системата вече не разрешава да проверяваме домашните на колегите си, някой знае ли защо е така?
Имам един въпрос, на който се надявах някой да отговори. Знаете ли как се прави автоматичното пренасочване от различни адреси, които потребителите могат да въведат в уеб браузъра (например books.php, error.php, etc.) винаги към index.php ? Имам подозрение, че това не става в PHP а през настройките на хостинг акаунта (htaccess) или нещо от сорта?
Благодаря и поздрави, Денислав

от d3nyy (22 точки)


0
"Системата вече не разрешава да проверяваме домашните на колегите си, някой знае ли защо е така?" - Какво точно ти дава, тъй като при мен го няма този проблем?
Относно другия въпрос можеш да потърсиш информация за htaccess и mod_rewrite.

от georgi.s.yankov (6219 точки)

0
Нямам линк "Оцени домашно" :/

от d3nyy (22 точки)



0
Благодарности за полезният ресурс за хората с безброй неща на главата :)
Пропускането на една лекция веднага се отразява :/

от metodiew (0 точки)


0

Моля Ви слагайте някой default user (примерно root) и без парола на връзките с базата данни. Понякога губя доста време да видя къде сте задали връзката към базата данни и съответно да ги коригирам.

Освен това, ако някой колега получи 3-4 еднакви оценки, да знае че са от мен, нещо ми се бъгна и когато тръгвам да оценявам все ми дава този адрес:

https://telerikacademy.com/Courses/HomeworkEvaluations/Evaluate/921

Отделно след submit ми отчита като оценено домашното.

Поздрави


от kpacu (1114 точки)


0
Краси, ти ходиш ли на лекции?


0
да, ходя :)

от kpacu (1114 точки)


0

XAHxhahx 
Браво. И излиза разработчика виновен, че някои хора не знаят как да подкарват нещата. Сто пъти съм го свялал да го проверявам, плюс това го има и в github - проверете и кажете, че не работи, та да знам да се беся. :)

Коментар №1

Здравей, съжалявам но не можах да добавя книга, нито автор, нито нищо... всичко е мн хубаво на външен вид... но при мен не работи... което не отговаря на изискването "Работи ли коректно темплейтната система".


от lekanosht (21 точки)