Het Silverheels Framework
maakt het makkelijk
Het Silverheels Framework is mijn raamwerk voor PHP applicaties en geboren uit onvrede over bestaande frameworks als CakePHP en CodeIgniter. Het is de basis voor elke site en webapplicatie van mijn hand. Acht regels PHP-code voor een interactieve site? Met Silverheels is dat eerder regel dan uitzondering.
De basis
- Opzet volgens het MVC principe
- Broncode van een project en code van Silverheels wordt gecombineerd tot éen product en kan vervolgens worden uitgerold naar een testserver, de productieserver en archieven.
- Klasses worden alleen geladen als ze nodig zijn
- Centrale instellingen en een slim geheugen is mogelijk voor elk object en elke klasse, zonder dat deze hiervoor aangepast hoeven te worden
- Bijna elk object is onafhankelijk, Silverheels verbindt de onderdelen aan elkaar
- Compatibel met PEAR, Zend Framework en andere externe componenten
- Invoer wordt aangepast voor het onderdeel dat er gebruik van wil maken
Communicatie met een database is simpel
- Tabellen in de database zijn direct aanspreekbaar, zonder extra configuratiebestanden
- Aanmaak van formulieren en validatie gebeurt automatisch aan de hand van het database-model. Data, getallen en tekenreeksen worden herkend en zodoende gevalideerd
- Een databasemodel bevat standaard de volgende functies: paginatie, filters (van toepassing op elke lees-query), aanspreekbaar als Array en te gebruiken in foreach-loops, sorteerfuncties, statische queries (worden gedurende een aangegeven periode opgeslagen in het geheugen).
Slimheden
- Uitvoer van elke pagina is beschikbaar als HTML, CSV, pure tekst en JSON
- In teksten: herkenning van links, afbeeldingen, BBCode en een eigen opmaak-syntaxis
- Bevat een CSS-parser en Layout Engine geschreven in PHP; intern kan hiermee een browser nagebootst worden.
- Hyperlinks die verwijzen naar de huidige pagina worden voorzien van de CSS-klasse "current"
- Javascript bestanden worden zo gesorteerd dat er geen problemen met afhankelijkheden kunnen ontstaan
- Oudere browsers krijgen middels Javascript ondersteuning voor de nieuwste CSS-selectors en eigenschappen.
- Een periodiek uitgevoerde taak schoont het geheugen op en versnelt het systeem
Besparing van bandbreedte
- Javascript en CSS bestanden worden altijd gecombineerd om HTTP-requests te besparen
- Afbeeldingen worden verkleind als ze volgens CSS-regels kleiner worden weergegeven dan ze werkelijk zijn (dit gebeurt met behulp van de Layout Engine)