silexErste Schritte mit Silex


Bemerkungen

In diesem Abschnitt erhalten Sie einen Überblick darüber, was Silex ist und warum ein Entwickler es verwenden möchte.

Es sollte auch alle großen Themen in Silex erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für silex neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.

Hallo Welt

Erstellen Sie ein web in demselben Ordner wie das vendor . Erstellen Sie die index.php Datei im web mit Inhalt

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

So starten Sie die App mithilfe des integrierten PHP -Servers

php -S localhost:8080 -t web
 

Jetzt können Sie den Browser öffnen und zu http://localhost:8080 navigieren

Hallo Welt!

Wir haben auch eine dynamische Route definiert. Navigieren Sie zu http://localhost:8080/hello/<YOUR_NAME> ersetzen Sie <YOUR_NAME> durch Ihren eigenen Namen, der von Ihrer ersten Silex-App begrüßt werden soll.

Installation oder Setup

Berücksichtigen Sie die folgende Verzeichnisstruktur, um Best Practices zu erfüllen:

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

Composer ist der flexibelste Einstieg in Silex. Erstellen Sie ein Verzeichnis zum Hosten Ihrer Silex-Anwendung (oben genanntes ProjectRoot ), cd in dieses Verzeichnis und führen Sie den folgenden Befehl aus, um eine composer.json Datei zu erstellen:

composer require silex/silex "~2.0"
 

Dadurch werden einige Dateien und Verzeichnisse unter ProjectRoot zum vendor ProjectRoot .

Danach müssen Sie vendor/autoload.php Datei vendor/autoload.php anfordern und eine Instanz von Silex\Application in Ihrer Datei index.php unter ProjectRoot/web erstellen. routes.php nach Ihren Controller-Definitionen ( routes.php ) die run Methode für Ihre Anwendung auf:

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>