silexKomma igång med silex


Anmärkningar

Det här avsnittet ger en översikt över vad silex är och varför en utvecklare kanske vill använda den.

Den bör också nämna alla stora ämnen inom silex och länka till relaterade ämnen. Eftersom dokumentationen för silex är ny kan du behöva skapa initialversioner av relaterade ämnen.

Hej världen

Skapa web i samma mapp som vendor . Skapa index.php fil i web med innehåll

<?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();

För att starta app med PHP inbyggd serverkörning

php -S localhost:8080 -t web
 

Nu kan du öppna webbläsaren och navigera till http://localhost:8080 , för att se

Hej världen!

Vi definierade också en dynamisk rutt. Navigera till http://localhost:8080/hello/<YOUR_NAME> ersätt <YOUR_NAME> med ditt eget namn för att hälsas av din första Silex-app.

Installation eller installation

Överväg att följa katalogstrukturen för att följa bästa praxis:

[ProjectRoot]
    |---[app]
    |    |---[resources]
    |    routes.php
    |---[web]
    |    |---[resources]
    |    |    |---[css]
    |    |    |---[img]
    |    |    |---[js]
    |    .htaccess
    |    index.php
    |---[src]
    |---[var]
    |---[vendor]
    composer.json
    composer.lock
 

Kompositör är det mest flexibla sättet att komma igång med Silex. Skapa en katalog för att vara värd för din Silex-applikation (Namnet ProjectRoot ovan), cd till den katalogen och kör följande kommando för att skapa en composer.json fil:

composer require silex/silex "~2.0"
 

Detta kommer att lägga till vissa filer och kataloger i vendor , under ProjectRoot .

Efter det behöver du bara kräva vendor/autoload.php filen och skapa en förekomst av Silex\Application i din index.php fil under ProjectRoot/web . Efter handkontrollen definitioner ( routes.php ), ring run metoden i din ansökan:

ProjectRoot / webb / 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 / webb / Htaccess

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [QSA,L]
</IfModule>