<----
					
						- Henrik Akselsen
- Jobber i Frontkom
- Jobbet med Drupal i 1,5 år
- Drupal.org: 410273
PHP
					
						- Brukes av 78% av alle websider der serverspråket er kjent
- Kanskje det mest utskjelte av alle programmeringsspråk
- (Bortsett fra C++)
						The great crime of PHP is its utter banality. Its continued propularity (sic) is living proof that quality is irrelevant; cheap and popular and everywhere always wins. PHP is the Nickelback of programming languages.
					
					- Jeff Atwood
				
				
					
						As it has evolved into an increasingly powerful system, Drupal has gotten increasingly complex and is not as easy to start developing with as it once was. Many developers are nervous about continuing that trend.
					
					- Dries, 16 feb 2012
				
								
				
				
				
					
						It has not always been the case, but the last 5 years have been an amazing journey for PHP.
					
					Fabien Potencier, Symfony2 hovedutvikler
				
				
					Drupal 8
					Core initiatives
					
						- Configuration Management
- HTML5
- Layouts
- Mobile
- Multilingual
- Views in Core
- Web Services
- Hjelp til
					
Drupal 8
					Core initiatives
					
						- Lar Dries Skalere
- Slipper 10000 pågående samtaler selv
- Dries koordinerer initiativeierne, eierne koordinere initiativene
MVC
					
						- Ansvarsdeling
- Kodere kan holde på med modeller + kontrollere
- Designere kan holde på med Views
- Ruby on Rails, Express, Django
						Drupal 7 som "MVC"
						- Model: Database (MySQL)
- Views: Templates (tpl.php)
- Controller: "Alt annet"
Drupal 8 som 'MVC'
					
						- Model: ingen store endringer
- Views: Twig
- Controller: Mange elementer fra Symfony
Er ikke phptemplate bra nok lizm?
					
						- Templatesystem: Separere Presentasjon fra logikk
- PHP som templatespråk gir for mye kraft til presentasjonslaget
- Resultat: Messy og usikker kode
We hand themers a loaded gun and tell them to hammer in a nail with it. Oh, and be careful
	
					John Albin (Drupalcon, Denver)
					
				
				
				
				
					
					
	< ?php 
	echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') 
	?>
					
				
				
				
					Symfony
					
						- En mengde moduler for PHP som gjør mange oppgaver lettere og sikrere
- Sammen utgjør alle modulene et komplett rammeverk for å utvikle sider i PHP
- Drupal 8 adopsjon er en stor seier for Symfony
- Sunshine PHP vil ha et eget spor med kun symfony
- Første stabile release tidlig 2013
Symfony
					
						- Request/Response, snarere enn MVC
- Objektorientert
							- Request-objekt
- Response-objekt
- Vil håndtere svært mye av lav-nivå funksjonalitet i Drupal 8
- Inkludert og integrert - ikke egen installasjon
HttpFoundation
						
							- Definerer et objekt-orienter lag over HTTP specification.
- request/response
- prepare() - sørger for at responsen følger http spec
- session management
- 'Erstatter' Globale variabler
								- clientIP = $_SERVER['REMOTE_ADDR']
- Mer her
Routing
						
							- Skille utseendet på en URL fra håndteringen
- Mapper en HTTP request til et sett med konfigurasjonsvariabler.
- Mer her
EventDispatcher
						
							- Symfonys hook system
- Observer Pattern
- Vil ikke erstatte hooksystemet fullstendig i denne omgang
- vs hooks: 
								
									- objektorientert
- testbart
- selvforklarende
- mulig å kjøre flere
- Listeners i motsetning til function_exists
 
- Mer her
DependcyInjector
							
								- The Dependency Injection component allows you to standardize and centralize the way objects are constructed in your application.
- Array av objekter (på steroider)
- Mer her
HttpKernel
							
								- Den dynamiske delen av HTTTP spesifikasjonen
- En tynn wrapper over request/response
- Har som 'mål' å konvertere et requestobjekt til Responseobjekt
- handle() tar en Request returnerer en Response.
- Mer her
HTTP Testing
							
								- Integrer med PHPUnit
- Unit tester og funksjonelle tester
- $crawler = $client->request('GET', '/demo/hello/world');
- $this->assertEquals(42, $result);
- Mer her
Caching
								
									- Ikke caching på applikasjonsnivå, forholder seg til http-spesifikasjonen
- Cache-Control Expires ($response->setClientTtl)
- Validation
- Expiration + validation
- Mål: Aldri lage den samme responsen 2 ganger
- ESI - Edge Side includes
- Mer her
		- Færre drupalismer
- Unngå NIH
- Lettere å samarbeide med andre siter