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.
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.
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>