silexIniziare con Silex


Osservazioni

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.

Ciao mondo

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.

Installazione o configurazione

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>