Deze sectie geeft een overzicht van wat Silex is en waarom een ontwikkelaar het misschien wil gebruiken.
Het moet ook grote onderwerpen binnen Silex vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de Documentatie voor silex nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.
Maak een web
in dezelfde map als de vendor
. Maak index.php
bestand in web
met inhoud
<?php // web/index.php require_once __DIR__.'/../vendor/autoload.php'; $app = new Silex\Application(); $app->get("/", function () { return "Hello world!"; }); $app->get("/hello/{name}", function ($name) use ($app) { return "Hello ".$app->escape($name); }); $app->run();
App starten met PHP ingebouwde server uitvoeren
php -S localhost:8080 -t web
Nu kunt u de browser openen en naar http://localhost:8080
navigeren om te zien
Hallo Wereld!
We hebben ook één dynamische route gedefinieerd. Navigeer naar http://localhost:8080/hello/<YOUR_NAME>
waarbij <YOUR_NAME>
vervangen door uw eigen naam om te worden begroet door uw eerste Silex-app.
Overweeg de volgende mapstructuur om te voldoen aan best practices:
[ProjectRoot]
|---[app]
| |---[resources]
| routes.php
|---[web]
| |---[resources]
| | |---[css]
| | |---[img]
| | |---[js]
| .htaccess
| index.php
|---[src]
|---[var]
|---[vendor]
composer.json
composer.lock
Componist is de meest flexibele manier om aan de slag te gaan met Silex. Maak een map voor het hosten van uw Silex-applicatie (hierboven ProjectRoot
), cd
naar die map en voer de volgende opdracht uit om een composer.json
bestand te maken:
composer require silex/silex "~2.0"
Hiermee worden enkele bestanden en mappen toegevoegd aan de vendor
, onder ProjectRoot
.
Daarna hoeft u alleen het bestand vendor/autoload.php
te gebruiken en een exemplaar van Silex\Application
in uw index.php
bestand onder ProjectRoot/web
. Na de definities van uw controller ( routes.php
), roept u de run
methode op uw applicatie aan:
ProjectRoot / web / index.php
require_once __DIR__ . '/../vendor/autoload.php';
$app = new Silex\Application();
require_once __DIR__ . '/../app/routes.php';
$app->run();
ProjectRoot / app / routes.php
$app->get("/", function () {
return new \Symfony\Component\HttpFoundation\Response('Hello World!');
});
ProjectRoot / web / .htaccess
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>