Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przetwarzanie danych csv/xml, przykłady, wzorce, porady
Forum PHP.pl > Forum > PHP
duch4ever
Witam, muszę napisać moduł importujący dane z plików csv/xml do sklepu. Pisałem już kiedyś takie coś ale wyszło mi totalne spaghetti więc tym razem szukam porad i ciekawych rozwiązań smile.gif

Można macie jakieś przykłady (github) jak podejść do sprawy od strony obiektowej, konstrukcji takiej aplikacji, klas etc.
Jak zbudować mechanikę pomiędzy plikiem csv z danymi produktu (nazwa, cena etc.) a obiektem w docelowym systemie.
W przyszłości mogą dochodzić inne formaty danych więc aplikacja musi być prosta w rozbudowie, chciałbym trzymać się nowoczesnych standardów.

Będę wdzięczny za wszelakie rady czy przykłady aplikacji.
SmokAnalog
Przede wszystkim trzeba zamienić dane na jakiś przyzwoity format, czyli obiekty i tablice. Nie pisz niczego sam, tylko skorzystaj z wbudowanej obsługi albo bibliotek do czytania CSV/XML. Byli już tacy, co sami się bawili w parsowanie CSV i kończyło się to tragicznie. Na Twoim miejscu zająłbym się osobno przetwarzaniem formatu i osobno użyciem wynikowego obiektu/tablicy w modelach.
duch4ever
Dzięki za zainteresowanie, akurat z csv to prosta sprawa można skorzystać np. z SplFileObject.
Pytanie co dalej smile.gif Mamy tablicę danych i jakiś ProductFactory, do tego walidacja czy dane są poprawne.

Ja myślałem o czymś takim:
1. Jakiś interfejs do odczytu danych żeby niezależnie od formatu pliku zwracał tablicę z danymi produktu
2. Jakiś konwerter/walidator żeby dane skonwertować do poprawnego formatu (nazwy, html opisu)
3. ProductFactory do tworzenia obiektów i zapisu

Przydały by się jakieś przykłady podobny aplikacji.
SmokAnalog
Przykładem może być dowolny ORM. One zwykle pozwalają na stworzenie modelu z tablicy asocjacyjnej, nie ma w tym niczego egzotycznego.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.