3. Eigenschappen
Open source software
transparantie, goedkoop, mogelijkheden
Aparte onderdelen, maar werken mooi samen
patForms heeft Propel-ondersteuning (naast andere)
Ext is overal te integreren (servertaal-onafhankelijk, dus ook met PHP (of
ASP, Java, Cobol…))
Ext werkt ook samen met Prototype+script.aculo.us, JQuery of YUI
4. Wanneer gebruiken?
Altijd
Nieuwe projecten
Uiteraard analyse van alle mogelijkheden maken
Anders werken voor wie ervaring heeft met PHP, maar zeker doenbaar
Bestaande projecten
Ideaal als je al met bestaande code zit, en een bestaande databank
Die willen we uiteraard behouden
Maar bestaande “fouten” willen we maskeren
Lithium heeft voor dit trio gekozen bij start eGo v3
6. Wat is Propel?
Object-Relational Mapping (ORM) framework voor PHP5
Database als objecten
Geen gedoe met connecties, escaping, type-casting, …
Werk met objecten, niet met queries
Gegenereerde klassen die uitbreidbaar zijn voor eigen implementaties
Geen SQL meer
“Criteria”-objecten worden opgebouwd
Volgt complexe business-logica
Maar wel nog mogelijk indien gewenst
Database-onafhankelijk
MySQL, Oracle, PostgreSQL, SQLite, en MS SQL Server
Maskeert DB-specifieke dialecten (LIMIT, AUTO_INCREMENT…)
DB-schema in XML-formaat
7. Voorbeeld
INSERT INTO author (first_name, last_name) VALUES
('Jack', 'London');
$author = new Author();
$author->setFirstName(quot;Jackquot;);
$author->setLastName(quot;Londonquot;);
$author->save();
Voordeel?
13. Wat is patForms?
Form-abstractie
Form-elementen als objecten
Geen gedoe met escaping, validatie, foutafhandeling…
Werk met objecten, niet met $_POST
Voorgedefinieerde klassen die uitbreidbaar zijn voor eigen implementaties
Definitie herbruikbaar
Geen HTML meer
“Element”-objecten worden opgebouwd
Volgt complexe business-logica
Maar wel nog mogelijk indien gewenst
Output-onafhankelijk
HTML, maar evengoed XML, PDF, …
Gedeelde code voor gedeelde functionaliteit
15. Elementen tonen (Renderers)
Gewoon in HTML plaatsen
Beetje onhandig, maar het werkt
Nodige code (tags, labels) zit in eenvoudige array
Goed voor integratie in bestaande code
Templating-systeem gebruiken
Code gescheiden van layout
Meer, maar simpele bestanden
Eenvoudig onafhankelijk aan te passen (en door verschillende personen)
Smarty is meest gekend, en ondersteund door patForms
21. Wat is Ext?
Cross-browser Javascript library
Verderzetting (extension) van de Yahoo! UI Library
Sterke UI-widgets
Aanpasbaar en uitbreidbaar
Voorgedefinieerde klassen die uitbreidbaar zijn voor eigen implementaties
Geen geprul meer
Verschillen tussen browsers worden weggewerkt
Ontwikkelen op hoog niveau mogelijk
Maar “gewone” Javascript is natuurlijk nog altijd mogelijk
Goede ondersteuning
“Ext, LLC” is een bedrijf dat betaalde ondersteuning geeft
Grote gemeenschap met vrij te krijgen voorbeelden, uitbreidingen…
23. Koppeling met server-code
Ext is een Javascript-library, en kan dus gekoppeld
worden aan eender welke server-side configuratie
Meest gebruikte dataprotocol is JSON
Eenvoudige structuur
Standaard-functies in PHP, maar ook in vele andere talen
Communicatie is standaard over HTTP, dus geen server-requirements
(wordt wel eens vergeten bij het kijken naar voorbeelden)
Binnen Lithium: eGo
patForms: Handige user interface voor formulier-elementen
Propel: krachtige configuratie voor overzichtspagina’s
Eenvoudig om standaard overal beveiliging op te plakken