Beste Tweakers,
Ik ben sinds enige tijd werkzaam voor een Internet bureau, gericht op de automotive branch. Wij hebben een paar hele mooie producten op onze CV staan. Denk hierbij aan een autovoorraad systeem, een afspraakplanner voor werkplaatsen, een car configurator of een taxatie module.
Zelf ben ik altijd ingezet voor websites binnen het bedrijf, maar sinds kort ben ik actief betrokken bij de producten. Inmiddels heb ik al een paar (in mijn ogen) goede punten doorgevoerd voor 1 van de producten waar ik zelf mee bezig ben, maar een paar standaard manieren van voorgaande collega's zijn mij echt een doorn in het oog.
Zo heb ik inmiddels een framework geïntroduceerd binnen het bedrijf. Symfony 2. Dat is in mijn ogen al een hele vooruitgang. Want de ontwikkelings is voorheen een beetje blijven steken op niet object georiënteerde php code waarin veel mysql functies verwerkt zitten die met ingang van php 7 sowieso al niet meer werken. Tevens werd er ook geen gebruik gemaakt van bijvoorbeeld MVC of een andere dergelijke aanpak.
probleemstelling
Je moet je voorstellen dat onze producten in bestaande websites worden geïntegreerd. Dat kunnen websites zijn die wij zelf hebben geschreven of websites van andere partijen. De oude manier van integreren zijn gebaseerd op file_get_contents en een document waarin 50+ regels staan met php code die een klant dan in zijn website moet plaatsen. Eveneens gaat het hier vaak om een hele boel if else constructies die een extra pad achter een baseUrl plaatsen om uiteindelijk een url + een heleboel parameters te creëren, dat dient om de request naar de server op te bouwen. In mijn ogen echt hopeloos.
Dat laatste probleem heb ik nu zelf opgelost met een paar classes, die dit voor je doen. In principe hoef je alleen maar de juiste class aan te spreken in combinatie met de juiste klant id en de rest gaat vanzelf door de juiste method aan te spreken binnen die class.
Overigens ben ik meer van het opbouwen van een request middels cUrl in plaats van alleen een file_get_contents te gebruiken. Hiermee heb je uiteraard veel meer controle over de request.
Het resultaat is dan een product dat binnen een website draait, maar wel een totaal ander onderdeel is. De gedachte is mooi. De uitwerking in mij ogen minder. Veel van de acties binnen het product werken alleen met JavaScript en zijn daardoor niet te indexeren. Mijn voorgangers hebben hiervoor een constructie bedacht op basis van htaccess. Met een paar 100 regels htaccess worden alle requests ongeschreven in iets wat onze producten snappen. Niet echt ideaal ook in mijn ogen.
Je zult snappen dat dit heel erg gevoelig is voor bugs. Iets wat we ook dagelijks helaas meerdere keren aan de lijve ondervinden. Daarbij is het niet makkelijk om een nieuwe versie van een product uit te rollen zonder dat daar bij klanten die een website niet bij ons afnemen altijd wel iets stuk gaat.
Daarnaast is er het probleem van de Development toolbar in Symfony. Door het project in delen, stukken template, te implementeren mis deze in zijn geheel. Daardoor mis je dus veel debug informatie bij foutmeldingen. Ook als je product live niet meer werkt is dit heel vervelend, al heb je altijd inzage in de log bestanden.
aanpak
Mede daarom ben ik eigenlijk op zoek naar een nieuwe manier van het "includen" van onze producten. En ik ben heel erg benieuwd naar de technieken die anderen gebruiken.
Één van de oplossingen die ik in gedachten heb is het welbekende iframe. Al krijg ik daar wel wat kritiek op vanuit de SEO hoek. Maar volgens mij is het zeer goed mogelijk om een product in een iframe te plaatsen en met wat JavaScript tegen de parent aan te praten in verband met de afmetingen.
Een ander idee was om gebruik te maken van bijvoorbeeld hinclude, maar voor zover ik kan opmaken is deze library niet meer actief in ontwikkeling.
Oplossing
Dit onderdeel kan ik tot op heden niet invullen. Ik vraag mij af of er ontwikkelaars zijn die ook tegen deze problemen zijn gestuit en welke oplossing zij daarvoor bedacht hebben, of welke technieken zij gebruiken om hiermee om te gaan.
Ik kon mij zeer moeilijk voorstellen dat wij de enige zijn met dit probleem en dacht wel een paar goede antwoorden te vinden via Google. Het tegendeel bleek waar, want ik kom eigenlijk weinig tegen op dit gebied. Niemand lijkt hetzelfde probleem te hebben.
Het kan natuurlijk ook zijn dat we het beter op een héél andere manier kunnen aanpakken, dat lees ik hier dan ook graag terug.
Ik ben sinds enige tijd werkzaam voor een Internet bureau, gericht op de automotive branch. Wij hebben een paar hele mooie producten op onze CV staan. Denk hierbij aan een autovoorraad systeem, een afspraakplanner voor werkplaatsen, een car configurator of een taxatie module.
Zelf ben ik altijd ingezet voor websites binnen het bedrijf, maar sinds kort ben ik actief betrokken bij de producten. Inmiddels heb ik al een paar (in mijn ogen) goede punten doorgevoerd voor 1 van de producten waar ik zelf mee bezig ben, maar een paar standaard manieren van voorgaande collega's zijn mij echt een doorn in het oog.
Zo heb ik inmiddels een framework geïntroduceerd binnen het bedrijf. Symfony 2. Dat is in mijn ogen al een hele vooruitgang. Want de ontwikkelings is voorheen een beetje blijven steken op niet object georiënteerde php code waarin veel mysql functies verwerkt zitten die met ingang van php 7 sowieso al niet meer werken. Tevens werd er ook geen gebruik gemaakt van bijvoorbeeld MVC of een andere dergelijke aanpak.
probleemstelling
Je moet je voorstellen dat onze producten in bestaande websites worden geïntegreerd. Dat kunnen websites zijn die wij zelf hebben geschreven of websites van andere partijen. De oude manier van integreren zijn gebaseerd op file_get_contents en een document waarin 50+ regels staan met php code die een klant dan in zijn website moet plaatsen. Eveneens gaat het hier vaak om een hele boel if else constructies die een extra pad achter een baseUrl plaatsen om uiteindelijk een url + een heleboel parameters te creëren, dat dient om de request naar de server op te bouwen. In mijn ogen echt hopeloos.
Dat laatste probleem heb ik nu zelf opgelost met een paar classes, die dit voor je doen. In principe hoef je alleen maar de juiste class aan te spreken in combinatie met de juiste klant id en de rest gaat vanzelf door de juiste method aan te spreken binnen die class.
Overigens ben ik meer van het opbouwen van een request middels cUrl in plaats van alleen een file_get_contents te gebruiken. Hiermee heb je uiteraard veel meer controle over de request.
Het resultaat is dan een product dat binnen een website draait, maar wel een totaal ander onderdeel is. De gedachte is mooi. De uitwerking in mij ogen minder. Veel van de acties binnen het product werken alleen met JavaScript en zijn daardoor niet te indexeren. Mijn voorgangers hebben hiervoor een constructie bedacht op basis van htaccess. Met een paar 100 regels htaccess worden alle requests ongeschreven in iets wat onze producten snappen. Niet echt ideaal ook in mijn ogen.
Je zult snappen dat dit heel erg gevoelig is voor bugs. Iets wat we ook dagelijks helaas meerdere keren aan de lijve ondervinden. Daarbij is het niet makkelijk om een nieuwe versie van een product uit te rollen zonder dat daar bij klanten die een website niet bij ons afnemen altijd wel iets stuk gaat.
Daarnaast is er het probleem van de Development toolbar in Symfony. Door het project in delen, stukken template, te implementeren mis deze in zijn geheel. Daardoor mis je dus veel debug informatie bij foutmeldingen. Ook als je product live niet meer werkt is dit heel vervelend, al heb je altijd inzage in de log bestanden.
aanpak
Mede daarom ben ik eigenlijk op zoek naar een nieuwe manier van het "includen" van onze producten. En ik ben heel erg benieuwd naar de technieken die anderen gebruiken.
Één van de oplossingen die ik in gedachten heb is het welbekende iframe. Al krijg ik daar wel wat kritiek op vanuit de SEO hoek. Maar volgens mij is het zeer goed mogelijk om een product in een iframe te plaatsen en met wat JavaScript tegen de parent aan te praten in verband met de afmetingen.
Een ander idee was om gebruik te maken van bijvoorbeeld hinclude, maar voor zover ik kan opmaken is deze library niet meer actief in ontwikkeling.
Oplossing
Dit onderdeel kan ik tot op heden niet invullen. Ik vraag mij af of er ontwikkelaars zijn die ook tegen deze problemen zijn gestuit en welke oplossing zij daarvoor bedacht hebben, of welke technieken zij gebruiken om hiermee om te gaan.
Ik kon mij zeer moeilijk voorstellen dat wij de enige zijn met dit probleem en dacht wel een paar goede antwoorden te vinden via Google. Het tegendeel bleek waar, want ik kom eigenlijk weinig tegen op dit gebied. Niemand lijkt hetzelfde probleem te hebben.
Het kan natuurlijk ook zijn dat we het beter op een héél andere manier kunnen aanpakken, dat lees ik hier dan ook graag terug.