Questa sezione fornisce una panoramica di cosa sia Silex e perché uno sviluppatore potrebbe volerlo usare.
Dovrebbe anche menzionare tutti i soggetti di grandi dimensioni all'interno di silex e collegarsi agli argomenti correlati. Poiché la documentazione di silex è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.
Creare web
directory web
nella stessa cartella della directory del vendor
. Crea il file index.php
nella directory web
con i contenuti
<?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();
Per avviare l'app utilizzando l'esecuzione del server integrato PHP
php -S localhost:8080 -t web
Ora puoi aprire il browser e andare a http://localhost:8080
, per vedere
Ciao mondo!
Abbiamo anche definito una rotta dinamica. Vai a http://localhost:8080/hello/<YOUR_NAME>
sostituendo <YOUR_NAME>
con il tuo nome per essere accolto dalla tua prima app Silex.
Considera la seguente struttura di directory per conformarsi alle migliori pratiche:
[ProjectRoot]
|---[app]
| |---[resources]
| routes.php
|---[web]
| |---[resources]
| | |---[css]
| | |---[img]
| | |---[js]
| .htaccess
| index.php
|---[src]
|---[var]
|---[vendor]
composer.json
composer.lock
Il compositore è il modo più flessibile per iniziare Silex. Creare una directory per ospitare l'applicazione Silex (denominata ProjectRoot
sopra), cd
in quella directory ed eseguire il seguente comando per creare un file composer.json
:
composer require silex/silex "~2.0"
Ciò aggiungerà alcuni file e directory nella directory del vendor
, in ProjectRoot
.
Dopodiché, tutto ciò che devi fare è richiedere il file vendor/autoload.php
e creare un'istanza di Silex\Application
nel tuo file index.php
in ProjectRoot/web
. Dopo le definizioni del controller ( routes.php
), chiama il metodo run
sulla tua applicazione:
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>