Всичко беше ясно как трябва да се направи. Съвсем стандартен MVC, който трябва да подсигури една среда за Remote Procedure Calls. Планирах да го направя като standalone, затова всичките функции за CRUD-а се написаха в един бащин клас, през цялата логика се викаше Object Factory и от там $$name->method() присъстваше във всяка RPC функция. Просто и лесно, а резултата е прекрасен.
Логиката беше следната:
- Базата данни съдържа три таблици - "потребители", "услуги" и "потребители/услуги". Останалото е ясно ;)
- Пише се един бащин клас с основните функции за интерфейса (Create, Read, Update, Delete) по универсален начин за първите две таблици;
- Синовете на класа съдържат името на таблицата и полетата от тази таблица в един масив, чрез който се генерират MySQL заявките;
- Създава се gateway файла за RPC-тата, където се викат класовите функции на съответните обекти;
- JavaScript/AJAX имплементацията на съответните заявки, като резултата след това се изобразява в съответния панел, а списъкът се опреснява;
- Имплементация на интерфейса за връзките с 2 мултиселектбокса;
- Документация :)
Само един проблем обаче ми остана нерешен и неясен. В точка 5 през цялото време трябваше да се опреснява една част от страницата, базирана на резултата от друга, заради AJAX заявките. Всичко беше написано модуларно в PHP логиката и трябваше да се предават параметри, които се връщат от другата страница. PHP-то за листинга и за формулярите винаги трябваше да знае дали става въпрос за потребителите или за услугите. Реших проблема с глобални JavaScript променливи, но със сигурност има по-добри решения. Мисля, че JSON би се включил добре в ситуацията, но още не съм работил с него и дори не знам откъде да чета. Някой ако има предложения да пише в коментарите.
1 comment:
Sega namerih kak se pravi poslednoto po eleganten nachin. http://www.phppatterns.com/docs/design/observer_pattern
Post a Comment