Microsoft s'est intéressé de plus en plus à l'écosystème PHP ces dernières années afin de lui offrir un accueil de choix. Christophe Villeneuve et Pierre Couzy feront le tour des bonnes habitudes à acquérir, notamment les aspects spécifiques à Windows. Paramétrage, sécurité, déploiement, extensions, outils, ORM, etc. Session interactive, venez avec vos questions !
PHP : écrire et déployer des applications maintenables !
1.
2.
3. Un petit quiz ?
Select * from MaTable order by Select login from user where id=31
rand()
Select password from user
where id=31
If (password === pwd) select …
Machin = select toto from … C’est corrigé ?
Oui.
If ! cache(« machin ») Testé ?
Cache(« machin ») = Machin Oui, la page fonctionne au poil
Bon, on déploie !
blabla
8. Les outils
Liés avec le système d'exploitation
Linux, Mac, Windows
Environnement embarqué (AMP)
Wampserver, EasyPHP, Xampp, Mampp, WebMatrix
IDE (Editeurs dits intelligents)
Eclipse, NetBean, PHPstorm, Zend Studio
(y a même VS.php pour Visual Studio)
11. La version de PHP
L'OS
Profil de performance différent entre les différentes
versions PHP
(5.2 et 5.3 pour windows)
Impact sur les versions majeures
Fonctions obsolètes
Vieux workarounds qui cessent de fonctionner
Nouveaux bugs
Impact sur les versions mineures
Corrections apportées suite à l'analyse par CoVerity
Gestion d'erreurs parfois subtilement différente
Exemples : Eval / PDO
Choix du runtime va avoir de grosses conséquences
12. PHP 5.4
Comment s'y préparer ?
Un overview des nouveautés et différences
Serveur HTTP → php -S localhost:8000
Les traits
E_STRICT couvert par error_reporting (E_ALL)
L'impact sur vos applications
Evolutions des ARRAYs
Economie de mémoire en désactivant
des données venant de $_POST
L'impact sur windows
13.
14. Les extensions, c’est facile !
Calendar : installé ou pas ?
Mb_string : en mod_php sur 5.2 en mutualisé
Si l’un active mb_string les autres en 'profitent'
Si vous ajoutez une extension dans une install existante,
vous prenez quelle version ?
La fin du cauchemar sous Windows
VC 9 NTS pour IIS
VC 6 TS (Apache) : NON, stop, laissez tomber !
15. Extensions
Installer PHP sans extensions
Activer le reporting
Ajouter le strict minimum
Mettez php.ini au carré
Ne pas jeter
Les extensions inutiles
26. ORM ou pas ORM ?
Les gros :
Doctrine, Propel
Les petits :
Micro-ORM
Kohana, Paris, ADODB
Vous devez faire un choix :
Plus c'est gros moins on le comprend
Quand on choisit un composant, on le supporte (on
maintient les versions, on suit les patches, etc.)
Aucun ORM = plein de problèmes
27. NoSQL ?
Pour
Montée en charge séduisante
Gestion de déploiement familière
Contre
Qui s’y frotte …
Pour en savoir plus remontez dans le temps
(session était à 13h00)
34. Montée en charge
Code Réseau
Profils de charge inattendus Temps de réponse plus long
→ Un appel synchrone à FB → Lag qui passe de 1 à 10 ms
oublié sur la Home Page
Base de données Matériel
L'historique est dans la base de Quelques mégas sur disque,
données
→ Pourquoi la question ? → c'est raisonnable ?
40. Il reste... le déploiement
SMTP FTP / FTPs
Quelques emails Pour la mise en prod
Votre hébergeur
Exports divers et variés
Pour du SPAM
Service dédié et externe Reparamétrage
(cristend,etc.)
Outils
SendGrid
Sarbacane
EMailing Automate (EMA)
En PHP
Emailing
phpList