3. News
Profundo leier inn Sverre, nok en gang :-)
PHP UK Conference er like om hjørnet…
PHP 7.2 RC6 ble lagt ut på torsdag
(GA 30. nov)
Så nå kan dere planlegge oppgradering i 2018 :-)
Symfony 4 slippes senere i november
Gledelig å se at det er fokus på forenkling og
utvikler-vennlighet. Silex utgår, fordi Symfony 4
har så få mandatory dependencies :-)
.env blir stadig omtalt
4. Environment variables
.env fil for konfigurasjon er best practice
Brukes til databaseinnstillinger, API
keys, osv - alt som kan variere mellom
test og prod miljø.
Introdusert i Symfony 3.2, og Laravel
har “alltid” hatt det…
5. Heder og ære
til en trofast
sjel
Nå som 2017 nærmere seg
slutt, så har vi sett litt på
statistikken. Vi har en som
har deltatt på 19 av 21
events i KristiansandPHP!
21. Anbefalinger
Kast exception, istedet for å returnere
null
Spesial case (dummy object), kan
returneres - istedet for null
Anbefaler global aller middleware
håndtering av errors, ikke inline (det er
vanskelig å vedlikeholde…)
23. Do not mess with null
don`t accept null
don`t return null
Nullable parameters force us to check for
null :-(
24. Custom exception
Caller kan velge å håndtere enkelt
exceptions, og kaste resten videre
Custom excepiton klasser kan ha
attributter for bedre oppfølging
Kan gjerne implementere interface som
tilsier en 404 side
25. Tips
Named Constructors techniques
Dette er god måte å skrive gode på
En klasse kan bare en konstruktor,
men vi kan instansiere en klasse via
forskjellige static methods som
returnerer new self
26.
27. Laravel intro - Freek
Spatie har lagt ut over 150 pakker nå…
Laravel debug, er en debug bar som likner
ganske mye på den vi har i Symfony.
Freek anbefaler den.
Han snakket mye om jobs - veldig kjekt
for å kjøre kode regelmessig
28.
29.
30. Testing
Tidligere så var det mange foredrag om
rammeverk på konferanser, men nå er
det på plass, alle bruker rammeverk
Nå er det testing som er interessant,
dessverre. Målet er nå å gjøre testing til
en uinteressant selvfølgelighet…
33. Test trender
Det er en generell dragning vekk fra unit-
tester (med intensiv mocking av alt),
over til function/acceptance testing
Vi tester mer kode i samme test
Gjerne med db kall
TDD osv er fortsatt anbefalt
34. What to test
Critical business scenarios
Security cases
Kompleks algoritme
Ting som er vanskelig/tidkrevende å
teste manuelt
41. Microservices
En webservice skal ha bare en oppgave (men
den trenger ikke være liten)
Kalles via (REST) API
Kan ha egen db
Independent
Takle failure og nedetid
42. Pitfall: distributed
monolith
Common lib (bruk heller små lib`s)
Avoid nano services
Interdepent deployments
Løsning: API versions, feature flag
Temporal coupling
Avhengigheter gir dårlig performance
43. Misc tips
RabbitMQ, f.eks. sende epost
Innstillinger via .env file
Ramsey UUID - f.eks til PURL sider
(istedet for å bruke id)
Events ble stadig nevnt, det gjør koden
enklere
44. Symphony
Symphony 4.0 og 3.4 er samme kode, og blir lagt
ut i slutten av november
500+ nye features
4.0 krever PHP 7.1 og har fjernet endel deprecated
3.4 er LTS (3 år)
4.4 om 2 år blir neste LTS
45. Om Symfony koden
15 personer i core team
1.500 contributes
Bruker pull request på alle commits
47. Filestructor er oppdatert
Det meste i app-folder er flyttet ut
Bundle er ikke lengre for egen kode, det er
bare for Symfony core, og 3.parts kode
.yml har blitt til .yaml (offisiell extention)
48. Alt er mindre, lettere og
raskere
Services opprettes on demand (i dag så
har containeren de liggende…)
Silex utgår, fordi en basic install er så lett
nå
49. Controller 5-10-20 rule
Rule of thumb:
Only define 5 variables or less
Contain 10 actions or less
20 lines of code or less in each action