Digital Base – Blog » Ontwikkeling

release van laatste symfony 1.x versie

27 January is een belangrijke dat in de geschiedenis ! :-) Uiteraard weten jullie allemaal dat dit de verjaardag is van Wolfgang Amadeus Mozart en de dag waarop Thomas Edison de gloeilamp uitvond. Aan deze lijst mag je ook “de release van de laatste versie van symfony 1.x” toevoegen.

Voor wie er toen al bij was, dit was de blog post van 3 jaar geleden.

« Symfony is more mature than ever, faster than ever, and more configurable and extendable than ever. A lot of websites officially declare using symfony, and we know of dozens of other applications, either Intranet or Internet, running symfony without any problem. The symfony framework is definitely ready to power complex web 2.0 applications with a lot of users. »

Ondertussen zijn we 3 jaar verder en zijn er van symfony 1.x :

  • 163,889 lijnen PHP code compatibel met PHP 5.0
  • 22 stabiele releases
  • meer dan 200 bugs gefixed
  • meer dan 300 plugins
  • honderden, misschien wel duizenden sites die nog steeds askeet gebruiken

Wat nu ? Geen duidelijk antwoord, maar voor iedereen die ondertussen in sf1.3 of 1.3 een form of validatie heeft gemaakt lijken 1.0 forms & validatie een nacht merrie ! Propel 1.2, oude commandline, rare routing format, bah, bleh, uhh !…Onder het motto “wie niets doet, kan niets fout doen” is hier na veel bloed, zweet & tranen symfony 1.2+ uitgekomen, en is symfony ondertussen uitgegroeid naar een stabiel & succesvol framework. De tijd is gekomen om symfony 1.0 te laten varen (R.I.P) en ons te focussen op sf1.4, de nieuwe LTS (long term support) release.

Korte changelog van de laatste 1.x release :

  • r26992: replaced prototype 1.5.0 with 1.5.1.2 (security fix)
  • r24622: allowed I18N functions with __toString methods
  • r24619: fixed incorrect array access of lastModified header
  • r23984: not setting status header for servers in cgi-sapi
  • r23886: fixed notice on undefined uri in sfCacheFilter (fixes #6514)
  • r23725: stimulating autoloading in sfFunctionCache
  • r23543: fixed deprecated use of split for PHP 5.3 (closes #7509)
  • r22498: removed different formatting for currency symbol

Bron : http://www.symfony-project.org/blog/2010/01/27/3-years-after-symfony-1-0-last-release

Website Upgrade (portfolio & framework)

Tussen alle nieuwe projecten hebben we toch nog tijd gevonden om onze eigen website een kleine upgrade te geven. Het hele platform is ge’upgrade naar symfony 1.3. Alleen de digitalbase.be website is geupgrade, de digitalbase.eu draait nog op de oude code.

Als we dit gaan benchmarken krijgen we het volgende .

De oude website (in’t engels en symfony 1.2)

gnelisse@laptop01:~$ sudo ab -t 60 -n 20 http://www.digitalbase.eu/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking www.digitalbase.eu (be patient)...
 
Server Software:        Apache/2.0.59
Server Hostname:        www.digitalbase.eu
Server Port:            80
 
Document Path:          /
Document Length:        16489 bytes
 
Concurrency Level:      1
Time taken for tests:   27.584 seconds
Complete requests:      20
Failed requests:        0
Write errors:           0
Total transferred:      335220 bytes
HTML transferred:       329780 bytes
Requests per second:    0.73 [#/sec] (mean)
Time per request:       1379.212 [ms] (mean)
Time per request:       1379.212 [ms] (mean, across all concurrent requests)
Transfer rate:          11.87 [Kbytes/sec] received
 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       12   15   1.9     14      19
Processing:  1344 1365  15.8   1366    1406
Waiting:     1292 1314  16.2   1311    1356
Total:       1359 1379  15.8   1379    1419
 
Percentage of the requests served within a certain time (ms)
  50%   1379
  66%   1383
  75%   1390
  80%   1394
  90%   1406
  95%   1419
  98%   1419
  99%   1419
 100%   1419 (longest request)

En voor de nieuwe site (in het nederlands & symfony 1.3)

gnelisse@laptop01:~$ sudo ab -t 60 -n 20 http://www.digitalbase.be/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking www.digitalbase.be (be patient)...
 
Server Software:        Apache/2.0.59
Server Hostname:        www.digitalbase.be
Server Port:            80
 
Document Path:          /
Document Length:        25861 bytes
 
Concurrency Level:      1
Time taken for tests:   19.530 seconds
Complete requests:      20
Failed requests:        0
Write errors:           0
Total transferred:      522660 bytes
HTML transferred:       517220 bytes
Requests per second:    1.02 [#/sec] (mean)
Time per request:       976.517 [ms] (mean)
Time per request:       976.517 [ms] (mean, across all concurrent requests)
Transfer rate:          26.13 [Kbytes/sec] received
 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       12   15   2.6     14      23
Processing:   905  962  71.7    930    1190
Waiting:      860  912  70.8    881    1138
Total:        923  976  71.4    943    1203
 
Percentage of the requests served within a certain time (ms)
  50%    943
  66%    964
  75%   1005
  80%   1029
  90%   1084
  95%   1203
  98%   1203
  99%   1203
 100%   1203 (longest request)

Je kan dus duidelijk zien dat symfony 1.3 een pak sneller is dan de oude versie. Daarnaast ook een aantal andere voordelen :

  • geïntegreerde mailer functionaliteit onder vorm van swiftmailer
  • propel 1.4 : en ja wij houden van propel en hebben geen zin in doctrine :-)
  • betere test mogelijkheden : ./symfony test:all –only-failed
  • test resultaten in XML (voor integratie met hudson)

Morgen doe ik nog een follow-up post ivm nieuwe content/portfolio van onze site !

Symfony Plugin voor Eclipse : SfDT

Zonet zag ik een leuke thread op de google groep, blijkbaar werkt er iemand aan een symfony plugin voor eclipse. Ok, er was al symfoclipse, maar closed source, commercieel en werkt niet onder Eclipse 3.4. Deze nieuwe plugin werkt met meerdere versies van Symfony  (1.0, 1.1 and 1.2). De website zegt dat de plugin getest ist met Eclipse 3.3.2 en PDT 1.0.2 maar bij mij installde & werkte hij perfect onder Ganymede (Eclipse 3.4)

Wat kan je met deze plugin ?

  • het aanmaken van modules/applicaties/projecten vanuit Eclipse
  • omzetten van Clay database diagrammen naar schema.xml/yml
  • symfony commandline uitvoeren vanuit symfony

screenshot11

Meer informatie nodig ?

Prachtig werk jongens !

5 tips om RSI te vermijden

Repetitive Strain Injury of beter gekend als RSI, staat voor lichamelijke klachten die voortkomen uit handelingen die herhaaldelijk en gedurende lange tijd uitgevoerd worden. Op kantoor vooral veroorzaakt door het langdurig werken met beeldschermen. Laten we even 5 belangrijke punten aanhalen waar je dient op te letten:

1. Bevorder afwisseling

Wissel het beeldschermwerk regelmatig af met lees-, schrijf- of telefoonwerkzaamheden. Zorg voor wat beweging, en wissel indien mogelijk het zitwerk af met wat staand werk.
Ga na de lunch enkele minuten een frisse neus ophalen, om vervolgens weer fris en monter het werk te hervatten.

Koffie halen is onvoldoende variatie

2. Zet de bureaustoel op de juiste hoogte

Zet de voeten plat op de grond. Stel de hoogte van de stoel zó in dat tussen boven- en onderbeen een hoek zit van ongeveer 90 graden. Zo wordt de bloedcirculatie naar je voeten niet bemoeilijkt.

Je kunt klachten vaak oplossen door op een natuurlijke manier te bewegen

3. Stel het bureau goed af

Nadat de hoogte van de stoel goed is ingesteld, moet het werkblad afgesteld worden op de hoogte van de ellebogen. Is het bureau niet in hoogte verstelbaar? Stel dan de bureaustoel zó in dat de ellebogen op de hoogte van het werkblad komen. Maak eventueel gebruik van een voetenbank.

4. Plaats het beeldscherm op de juiste plek

Plaats het beeldscherm haaks en op enige afstand van een raam, indien mogelijk. Zo worden hinderlijke spiegelingen voorkomen. Zorg ook dat de kantoorverlichting niet in het beeldscherm spiegelt. Zorg er verder voor dat de ogen als je recht vooruit kijkt op gelijke hoogte staan van de bovenste regels op het beeldscherm.

5. De optimale zithouding

Als je rechtop in je bureaustoel gaat zitten zouden je ellebogen en onderarmen de armleuningen níet moeten raken. Zet je armleuningen dus laag genoeg zodat je je armen vrij heen en weer kan bewegen tijdens het typen en muizen.
Je kunt je armleuningen natuurlijk prima gebruiken als je even achteroverhangt in je stoel, als je iets leest of even aan het praten bent. Maar zodra je gaat typen zou je geen hinder mogen ondervinden van de armleuningen.

3 zaken die elke PHP programmeur zou moeten weten

Een lijst van 3 zaken die elke php programmeur zou moeten kennen. Het spreekt voor zich dat je niet alle van onderstaande zaken 100% onder de knie moet hebben of elk product in deze categorie kennen. Wel is het belangrijk dat je het idee hierachter begrijpt en toepast op jouw web toepassingen.

1. Frameworks

Zonder twijfel het belangrijkste bij het ontwikkelen van een webapplicatie. Er zijn altijd meerdere manieren om een doel te bereiken, maar zonder framework is het volgens mijn mening wel moeilijker & trager. In de PHP wereld zijn er een aantal interessante open source framewerken beschikbaar. Deze helpen je om je sneller, consistenter en effectiever code te schrijven. Mijn voorkeur hier gaat uit naar Symfony, CakePHP. Deze frameworks gebruiken het MVC design patroon, wat ons als programmeuurs niet vreemd is. Veel webbedrijven & agencies maken gebruik van een eigen, interne framework, wij hebben zo ook onze eigen framework, nochthans maken we bij nieuwe projecten vaak gebruik van Symfony.

2. Templating

Templating wordt vooral gebruikt om de view/display templates op te scheiden van de actuele code. Op die manier kan een designer / graficus rustig in de templates ‘prullen’ zonder daarbij de achterliggende code naar de knoppen te helpen. Indien je nog nooit gebruik hebt gemaakt van een templating engine, ga dan eens kijken bij Smarty.

Optimaal gebruik van een templating engine (veel frameworks beschikken hierover) vereenvoudigt je code, laat je toe om snel & eenvoudig aanpassingen te doen aan de weergave van je website of applicatie zonder dat je veel kennis nodig hebt van het programmatorische gedeelte.

3. Community / Code Availability

“Don’t reinvent the wheel” : Voor de hand liggend, vanzelfsprekend en logisch. Wij vergeten echter te vaak dat voor bepaalde functionaliteit, problemen reeds ‘out of the box’ oplossingen zijn, hetzij in een php functie of in een classe van een oud project. Probeer dingen te herbruiken, als je dat op de correcte manier doet (OO, MVC) kan je die zaken achteraf herbruiken, na verloop van tijd heb je een eigen bibliotheek van oplossingen / functies / classen die de meest voorkomende zaken aanpakken.

Indien je er echt niet uitkomt is een antwoord in deze ‘online’ wereld nooit ver weg. Er is een grote kans dat er al andere mensen jou vraagstuk / probleem in het verleden opgelost hebben. Zoek daarom altijd op je probleem voor ingewikkelde oplossingen toe te passen. Indien google je niet kan helpen kan je altijd eens op irc of op de mailing list van de betreffende techniek/toepassing gaan zoeken of posten. Niemand kan alles weten, zeker met de enorme lijst van php functies. De berg van gezamelijke informatie zal hoogst waarschijnlijk jouw probleem oplossen.