Je wilt graag gebruik maken van PHP op jouw website? Uiteraard kun je bij Vevida standaard gebruik maken van PHP. PHP staat voor PHP: Hypertext Preprocessor en is de meest gebruikte scripttaal voor het web. Het doel van PHP is om webdevelopers snel dynamisch gegenereerde pagina’s te laten schrijven.
Inhoudsopgave
- Waar is PHP voor te gebruiken?
- Beschikbare PHP-versies bij Vevida
- Informatie verschillende PHP-versies
- Informatie PHP-configuratie website
- Problemen met PHP
- PHP bij Vevida, en verder?
- PHP short_open_tag
- MySQL-databasetoegang: MySQLi of PDO
- PHP-code optimalisatie
Waar is PHP voor te gebruiken?
PHP leent een groot deel van zijn syntaxis van de programmeertalen C, Java en Perl, met een aantal PHP-specifieke features daaraan toegevoegd. Hierdoor is PHP voor vele doeleinden geschikt. Het beste komt het tot zijn recht als het wordt ingezet voor dynamische websites. Je kunt hierbij denken aan:
- Content management systemen (CMS’en) en blogs,
- Gastenboeken en forums,
- Mediagalerij en fotoboeken,
- Wiki’s (MediaWiki) en webshops/e-commerce.
Bestanden die PHP-code bevatten moeten eindigen met de extensie .php
.
Beschikbare PHP-versies bij Vevida
Vevida biedt ondersteuning op een aantal verschillende PHP-versies. Sowieso kan je bij ons altijd de nieuwste (stable) PHP versie vinden, maar voor compatibiliteit blijven oudere PHP versies beschikbaar zolang deze door PHP worden ondersteund. Welke versie momenteel standaard is, vind je in ons artikel Welke PHP-versie moet ik gebruiken?
Informatie verschillende PHP-versies
Per PHP-versie worden functies aangemerkt als deprecated (verouderd) en worden een versie later verwijderd. Maak je hiervan gebruik in jouw PHP-code, dan levert dat een nare foutmelding op. Op de volgende URL’s vind je welke functies aangemerkt zijn en worden als deprecated:
- http://php.net/manual/en/migration74.deprecated.php
- http://php.net/manual/en/migration73.deprecated.php
- http://php.net/manual/en/migration72.deprecated.php
We raden we je aan om bij te blijven met beschikbare PHP-versies. Informatie over het migreren van PHP versies vind je in het artikel PHP migreren naar nieuwere versies.
Informatie PHP-configuratie website
Als je graag wilt weten van welke PHP-versie uw website gebruik maakt en hoe PHP geconfigureerd is, dan kun je een bestandje op de website plaatsen met daarin:
<?php echo 'PHP-versie: ' . phpinfo(); ?>
Sla dit bestand op, bijvoorbeeld als versie.php
. Uploadt het bestand naar de map www
van jouw website en dan kun je het aanroepen via de URL http://www.example.com/versie.php
. Vervang example.com met je eigen domeinnaam.
Problemen met PHP
Als je problemen ondervindt met PHP dan kun je natuurlijk contact opnemen met onze klantenservice. Doe dit bij voorkeur via het onderdeel Support op MyVevida. Vermeld hier wel extra informatie bij, zoals waar we jouw scripts kunnen vinden, welke foutmeldingen optreden, e.d. Helaas kunnen wij niet garanderen dat wij alle problemen kunnen oplossen. Probeer daarom eerst om het antwoord te vinden via internet.
Je kunt eenvoudig zelf PHP-foutmeldingen weergeven en opslaan. Dit helpt enorm.
PHP bij Vevida, en verder?
Wij kunnen je hier legio voorbeelden geven van PHP-scripts en stukjes code, z.g. code-snippets. Omdat de mogelijkheden echt ontelbaar zijn doen we dat niet en geven we je hier algemeen advies over het gebruik van PHP bij Vevida.
PHP short_open_tag
De PHP-instelling short_open_tag bepaalt of de verkorte vorm van PHP’s open- en sluittags gebruikt kunnen worden. Hieronder verstaan we: <? ?>. In de Vevida PHP-configuratie is het gebruik hiervan niet mogelijk.
Gebruik van short_open_tag
wordt door de PHP-community gezien als een luie instelling. Omdat het niet nodig is alle code voluit te schrijven, bestaat de kans dat andere (belangrijke) zaken ook vergeten worden. Hierom is altijd al het advies geweest om volledige labels te gebruiken: <?php ?>
Ondanks het feit dat deze short_open_tag instelling uitgeschakeld is, is het gebruik van <?=
voor verkorte echo-statements wél mogelijk. Dit zit in de PHP-core.
MySQL-databasetoegang: MySQLi of PDO
Als je verbinding wilt maken met jouw MySQL-database, maak dan gebruik van de MySQLi of PHP Data Objects (PDO) extensie. De ext/mysql-functies (mysql_*) zijn verouderd en verwijderd uit PHP.
Daarnaast bieden MySQLi en PDO beveiligingsopties tegen bijvoorbeeld SQL injection, bijvoorbeeld door ondersteuning van Prepared Statements.
Wanneer PDO? Wanneer MySQLi?
Wanneer kun je het beste kiezen voor PDO als database abstraction layer (DAL)? Of wanneer juist MySQLi?
De PHP-ontwikkelaars hebben een Feature comparison-tabel gemaakt. Hierin staan alle voor- en nadelen duidelijk en overzichtelijk weergegeven. Je vindt deze tabel op de pagina Choosing an API van PHP.
Als je een webapplicatie ontwikkelt die eenvoudig van meerdere soorten databases gebruik moet kunnen maken (MySQL, PostgreSQL, Microsoft SQL Server), maak dan gebruik van PDO. Het grote voordeel van PDO is de ondersteuning voor verschillende databasetypen, zonder grote wijzigingen in de achterliggende code.
PHP-code optimalisatie
je vindt op de website The PHP Benchmark een groot aantal, veel gebruikte PHP-codevoorbeelden en hoe dit presteert qua snelheid en performance. Erg handig!
Andere belangrijke tips zijn:
- Ontwikkel voor de hoogste door Vevida aangeboden PHP-versie.
- Houd je aan een code-standaard, voor nette en overzichtelijke PHP-code. Een voorbeeld hiervan is van Zend (http://framework.zend.com/manual/1.12/en/coding-standard.coding-style.html).
- Declareer PHP variabelen vooraf, maar maak geen onnodige variabelen aan:
$beschrijving = strip_tags( $_POST['beschrijving'] ); echo $beschrijving;
doet hetzelfde als:
echo strip_tags( $_POST['beschrijving'] );waarbij deze laatste de helft van de hoeveelheid geheugen gebruikt!
4. Cast datatypen naar hun juiste type: een string is een string en een integer is een integer (nummeriek), maar een boolean (TRUE of FALSE, 1 of 0) is géén integer. Laat dit PHP niet zelf bepalen (Type Juggling).
5. Voer geen MySQL-database queries uit binnen een lus in PHP (foreach
, while
, for
), maar doe dit daarbuiten.
6. Optimaliseer echo en printopdrachten. Bijvoorbeeld:
echo "dit is een "; echo "zin verdeeld over "; echo "in totaal vier "; echo "regels ";
kan beter herschreven worden naar een van de volgende voorbeelden:
echo "dit is een zin verdeeld over niet vier, maar een regel"; echo "dit is een zin verdeeld over meerdere regels, in een echo-commando";
Hierin zijn ook eenvoudig variabelen te gebruiken:
$linenumbers = "1"; echo "dit is een zin verdeeld over $linenumbers regel"; echo 'dit is een zin verdeeld over '. $linenumbers .' regel'; // let op het verschil tussen ' en " in bovenstaande voorbeelden.