De krachtige Phalcon PHP-frameworkmodule inschakelen in ServBay
ServBay is een krachtige lokale webontwikkelomgeving, speciaal ontworpen voor ontwikkelaars en geïntegreerd met diverse toonaangevende technologieën. Voor PHP-ontwikkelaars levert ServBay een vooraf geïnstalleerde, high-performance Phalcon-frameworkmodule en een bijzonder eenvoudige activeringsmethode. Phalcon staat bekend als een razendsnel en efficiënt PHP-framework, waarvan het modulaire ontwerp ontwikkelaars helpt bij het bouwen van krachtige webapplicaties.
Introductie van het Phalcon-framework
Phalcon is een open source, volledig PHP-framework, beroemd om zijn uitzonderlijke snelheid en uiterst lage resourceverbruik. In tegenstelling tot de meeste frameworks die volledig in PHP zijn ontwikkeld, is Phalcon geschreven in C en wordt het als een PHP-extensie geladen. Dankzij deze unieke architectuur excelleert Phalcon op het gebied van prestaties, terwijl het toch een complete en krachtige set aan functionaliteiten biedt.
Belangrijkste kenmerken
- Hoge prestaties: Omdat Phalcon direct als een C-extensie draait, voert het applicaties aanzienlijk sneller uit dan frameworks die alleen in PHP zijn gebouwd. Tevens vraagt het minder geheugen en CPU bij het verwerken van verzoeken.
- Lage overhead: Het ontwerp van Phalcon optimaliseert resourcegebruik waardoor het ook bij zware belasting snel blijft draaien.
- Rijke functionaliteit: Phalcon ondersteunt een volledige MVC-architectuur (Model-View-Controller), krachtige ORM (Object Relational Mapping), een templatesysteem, flexibel routeringsmechanisme, caching, queue-services en meer – geschikt voor complexe webontwikkelingsbehoeften.
- Gebruiksgemak: Ondanks dat de kern in C geschreven is, ontwikkelen programmeurs met de vertrouwde PHP-syntaxis. Het framework biedt een heldere API en uitgebreide documentatie, waardoor de leercurve laag blijft.
- Modulair ontwerp: Alle componenten van Phalcon zijn onderling ontkoppeld en modulair opgezet, waardoor ontwikkelaars naar behoefte onderdelen kunnen gebruiken of vervangen.
Vooraf geïnstalleerde Phalcon-modules in ServBay
ServBay ondersteunt diverse gangbare PHP-versies en levert bijbehorende, compatibele Phalcon-modules standaard mee. ServBay blijft deze versies en gerelateerde softwarepakketten continu bijwerken om altijd de nieuwste technologie te ondersteunen. Welke Phalcon-versie met welke PHP-versie meegeleverd wordt, check je eenvoudig in het pakketbeheer binnen ServBay. Hieronder vind je een aantal veelvoorkomende combinaties (ServBay kan nieuwere of uitgebreidere versies ondersteunen):
- PHP 5.6, 7.0, 7.1: Phalcon 3.4.5
- PHP 7.2, 7.3, 7.4: Phalcon 4.1.2
- PHP 8.0, 8.1, 8.2, 8.3: Phalcon 5.7.0
- PHP 8.4, 8.5-dev: Phalcon 5.8.0
Hoe de Phalcon-module inschakelen
Het inschakelen van de Phalcon-module in ServBay is zeer intuïtief. Standaard is Phalcon uitgeschakeld om je omgeving licht en snel te houden. Je schakelt het module eenvoudig in via de grafische interface van ServBay.
Aanbevolen methode: Activeren via de grafische interface van ServBay
Dit is de aanbevolen en eenvoudigste manier:
- Open de ServBay-applicatie.
- Ga naar de Talen (Languages) optie in de linker menubalk.
- Zoek en selecteer in de pakketlijst de PHP-versie waarvoor je Phalcon wilt activeren, bijvoorbeeld
PHP 8.3
ofPHP 8.4
. - Klik aan de rechterzijde van de gekozen PHP-versie op Extensies (Extensions).
- Zoek in het venster met extensies de Phalcon-module.
- Zet de Phalcon-module aan via de schakelknop links van de module.
- Klik op Opslaan (Save) onderaan het venster.
- Je krijgt een melding om de betreffende PHP-service opnieuw te starten. Bevestig dit door op herstarten te klikken.
Na het opnieuw starten is de Phalcon-module succesvol ingeladen in de door jou gekozen PHP-versie.
Handmatig via het configuratiebestand inschakelen (voor gevorderden)
Voor geavanceerde automatisering of foutopsporing kun je de Phalcon-module ook handmatig inschakelen via bewerking van het PHP-configuratiebestand.
Stap 1: Bepaal het configuratiebestand
Vind eerst de conf.d
-map die hoort bij de gewenste PHP-versie; dit is de standaardplek voor PHP-extensieconfiguratie. Voor PHP 8.3 is het pad bijvoorbeeld:
bash
/Applications/ServBay/etc/php/8.3/conf.d/phalcon.ini
1
Open dit bestand met een teksteditor.
Stap 2: Bewerk het Phalcon-configuratiebestand
Zoek de volgende inhoud in het bestand en verwijder het puntkomma (;
) vóór extension = phalcon.so
om de extensie te activeren:
ini
[Phalcon]
; Uncomment the following line to enable Phalcon
extension = phalcon.so
1
2
3
2
3
Na bewerking moet dit eruitzien als:
ini
[Phalcon]
extension = phalcon.so
1
2
2
Stap 3: PSR-module inschakelen (alleen PHP 7.2 - PHP 7.4)
Let op: Als je Phalcon via de grafische interface van ServBay inschakelt, sla deze stap dan over.
Voor PHP 7.2 tot en met 7.4 vereist Phalcon de PSR-extensie (PHP Standards Recommendations). ServBay heeft deze PSR-extensie al vooraf geïnstalleerd, je hoeft alleen zeker te weten dat deze ook geactiveerd is. Controleer in het phalcon.ini
bestand of het aparte PSR-configuratiebestand (meestal psr.ini
) of de volgende regels zijn geactiveerd (dus zonder puntkomma):
ini
; Uncomment both Psr & Phalcon to enable Phalcon
[Psr]
extension = psr.so
[Phalcon]
extension = phalcon.so
1
2
3
4
5
6
2
3
4
5
6
Stap 4: PHP-service herstarten
Of je nu de grafische interface of handmatig configuratiebestanden hebt bewerkt: je moet altijd de betreffende PHP-service herstarten nadat je een extensie hebt gewijzigd.
Ga in de hoofdpagina van de ServBay-applicatie of via het Pakketten (Packages) scherm naar de betreffende PHP-versie en klik op de herstartknop (meestal een cirkelvormige pijl) bij het pakket.
Controleren of de Phalcon-module actief is
De makkelijkste manier om te checken of de Phalcon-extensie geladen is, is met PHP’s runtime informatie (phpinfo()
).
- Maak een nieuw bestand aan in de rootmap van jouw ServBay-website, bijvoorbeeld
phpinfo.php
. Staat jouw siteservbay.demo
in/Applications/ServBay/www/servbay.demo
, maak het bestand dan daar aan. - Voeg deze inhoud toe aan
phpinfo.php
:php<?php phpinfo(); ?>
1
2
3 - Bezoek in je browser het juiste adres, zoals
https://servbay.demo/phpinfo.php
. - Zoek op de PHP-info pagina naar het gedeelte "Phalcon". Als hier informatie over Phalcon wordt getoond (versienummer, configuraties), dan is de module succesvol geladen.
Afbeelding: Zoek naar Phalcon-informatie in de phpinfo-uitvoer
Voorbeeldgebruik
Na het activeren van de Phalcon-module kun je direct webapplicaties met het Phalcon-framework ontwikkelen. Hieronder staat een eenvoudig voorbeeld waarmee je snel een basis-Phalcon-app draait binnen ServBay.
We gaan er vanuit dat je de projectbestanden opslaat in /Applications/ServBay/www/phalcon-demo
.
Stap 1: Maak de projectstructuur aan
Creëer volgende mappen en bestanden volgens Phalcon’s aanbevolen projectstructuur:
/Applications/ServBay/www/phalcon-demo/
├── app/
│ ├── controllers/
│ │ └── IndexController.php
│ └── views/
│ └── index/
│ └── index.phtml
└── public/
└── index.php
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Stap 2: Websiteconfiguratie in ServBay
Maak in ServBay een nieuw Website-profiel aan, stel de domeinnaam in als phalcon-demo.servbay.demo
, wijs de root directory toe aan het public
-pad van het project (/Applications/ServBay/www/phalcon-demo/public
), en zorg dat je de PHP-versie gebruikt waarin je Phalcon hebt geactiveerd.
Stap 3: Schrijf de voorbeeldcode
Front Controller:
public/index.php
Dit is het entry-point van de app.php<?php use Phalcon\Autoload\Loader; use Phalcon\Di\FactoryDefault; use Phalcon\Mvc\View; use Phalcon\Mvc\Url; use Phalcon\Mvc\Application; // Definieer projectbasis en app-directory constanten define('BASE_PATH', dirname(__DIR__)); // Verwijst naar /Applications/ServBay/www/phalcon-demo define('APP_PATH', BASE_PATH . '/app'); // Verwijst naar /Applications/ServBay/www/phalcon-demo/app // Registreer de autoloader zodat controllers en modellen gevonden worden $loader = new Loader(); $loader->setDirectories( [ APP_PATH . '/controllers/', APP_PATH . '/models/', // Indien modellen aanwezig, registreer deze map ook ] ); $loader->register(); // Maak een dependency injection-container (DI) $container = new FactoryDefault(); // Registreer de view-service in de DI-container $container->set( 'view', function () { $view = new View(); $view->setViewsDir(APP_PATH . '/views/'); // Zet het pad naar de viewbestanden return $view; } ); // Registreer de URL-service in de DI-container $container->set( 'url', function () { $url = new Url(); $url->setBaseUri('/'); // Zet de basis-URL return $url; } ); // Maak een Phalcon Applicatie-instantie $application = new Application($container); try { // Verwerk het verzoek en stuur de response $response = $application->handle( $_SERVER["REQUEST_URI"] ); $response->send(); } catch (\Exception $e) { // Vang uitzonderingen af en toon een foutmelding echo 'Exception: ', $e->getMessage(); } ?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62Controller:
app/controllers/IndexController.php
Controller voor de homepage.php<?php use Phalcon\Mvc\Controller; use Phalcon\Support\Version; // Haal versieklasse op voor Phalcon-versie class IndexController extends Controller { // Standaardactie (Action) public function indexAction() { // Verkrijg de huidige Phalcon-versie $phalconVersion = new Version(); $versionString = $phalconVersion->get(); // Geef de versie door aan de view $this->view->phalconVersion = $versionString; // Render het viewbestand app/views/index/index.phtml } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20View:
app/views/index/index.phtml
Toont een welkomstboodschap en de Phalcon-versie.html<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello ServBay with Phalcon</title> <style> body { font-family: sans-serif; margin: 40px; text-align: center; } h1 { color: #333; } p { color: #666; } </style> </head> <body> <h1>Hello ServBay!</h1> <p>Je hebt met succes een Phalcon-app in ServBay gestart.</p> <p>Huidige Phalcon-versie: **<?= $phalconVersion ?>**</p> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Stap 4: Toegang tot de applicatie
Controleer of Nginx/Caddy en de geselecteerde PHP-versie in ServBay draaien. Open in je browser de domeinnaam die je zojuist configureerde, bijvoorbeeld https://phalcon-demo.servbay.demo
. Je zou nu "Hello ServBay!" en de huidige Phalcon-versie te zien moeten krijgen.
Afbeelding: Succesvol draaiende Phalcon-demoapplicatie
Let op
- Zorg dat de gebruikte PHP-versie compatibel is met jouw Phalcon-project.
- Herstart altijd de juiste PHP-service nadat je configuratiebestanden bewerkt hebt.
- Bij problemen, bekijk eerst de PHP-foutlog en de webserver (Nginx/Caddy) logs. Die vind je meestal in
/Applications/ServBay/var/log/
.
Veelgestelde vragen (FAQ)
Vraag 1: Ik heb Phalcon ingeschakeld, maar zie het niet in phpinfo()
. Wat nu?
Antwoord:
- Controleer of je het juiste configuratiebestand voor de bedoelde PHP-versie hebt aangepast (indien handmatig geactiveerd).
- Controleer of de puntkomma (
;
) vóórextension = phalcon.so
is weggehaald. - Herstart de juiste PHP-service.
- Check of je websiteconfiguratie ook daadwerkelijk deze PHP-versie gebruikt.
- Bekijk in ServBay de PHP-foutlog voor eventuele meldingen over mislukte extensielading.
Vraag 2: Mijn Phalcon-app geeft een foutmelding Class 'Phalcon\...' not found
. Wat is de oorzaak?
Antwoord: Dit geeft meestal aan dat de Phalcon-module niet actief is in de actieve PHP-omgeving. Herhaal de stappen uit deze gids voor activeren en valideren van Phalcon en controleer in phpinfo()
of Phalcon zichtbaar is. Indien de module actief is, controleer dan je code op namen-ruimte-fouten of fouten in autoload-instellingen.
Vraag 3: Heeft Phalcon extra afhankelijkheden nodig?
Antwoord: Voor PHP 7.2 tot 7.4 vereist Phalcon de PSR-extensie. ServBay levert PSR standaard mee; je hoeft alleen te zorgen dat zowel extension = psr.so
als extension = phalcon.so
zijn ingeschakeld in phalcon.ini
. Voor PHP 8.0 en nieuwer is dit meestal niet nodig, omdat Phalcon 5.x PSR-standaarden intern al verwerkt.
Samenvatting
ServBay maakt het instellen van het Phalcon-framework in je lokale ontwikkelomgeving bijzonder eenvoudig. Dankzij de gebruiksvriendelijke grafische interface of simpele configuratiebestanden activeer je snel de high-performance Phalcon-module voor elk gewenste PHP-versie. In combinatie met brede ondersteuning voor andere webtechnologieën in ServBay, kunnen ontwikkelaars snel een uitgebreide, efficiënte en krachtige ontwikkelomgeving neerzetten voor Phalcon-projecten. Met Phalcon’s uitstekende performance bouw je in no-time moderne webapplicaties die snel laden en weinig resources vragen.