Ta sekcja zawiera przegląd tego, czym jest silex i dlaczego deweloper może chcieć go użyć.
Powinien również wymieniać wszelkie duże tematy w silex i link do powiązanych tematów. Ponieważ Dokumentacja dla silex jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.
Utwórz katalog web
w tym samym folderze, co katalog vendor
. Utwórz plik index.php
w katalogu web
z zawartością
<?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();
Aby uruchomić aplikację przy użyciu wbudowanego serwera PHP , uruchom
php -S localhost:8080 -t web
Teraz możesz otworzyć przeglądarkę i przejść do http://localhost:8080
, aby zobaczyć
Witaj świecie!
Zdefiniowaliśmy również jedną dynamiczną trasę. Przejdź do http://localhost:8080/hello/<YOUR_NAME>
zastępując <YOUR_NAME>
własnym nazwiskiem, aby zostać przywitanym przez pierwszą aplikację Silex.
Rozważ następującą strukturę katalogów, aby zachować zgodność z najlepszymi praktykami:
[ProjectRoot]
|---[app]
| |---[resources]
| routes.php
|---[web]
| |---[resources]
| | |---[css]
| | |---[img]
| | |---[js]
| .htaccess
| index.php
|---[src]
|---[var]
|---[vendor]
composer.json
composer.lock
Kompozytor to najbardziej elastyczny sposób na rozpoczęcie pracy z Silex. Utwórz katalog do obsługi aplikacji Silex (nazwany ProjectRoot
powyżej), cd
do tego katalogu i uruchom następującą komendę, aby utworzyć plik composer.json
:
composer require silex/silex "~2.0"
Spowoduje to dodanie niektórych plików i katalogów do katalogu vendor
obszarze ProjectRoot
.
Następnie wszystko, co musisz zrobić, to wymagać pliku vendor/autoload.php
i utworzyć instancję Silex\Application
w pliku index.php
w ProjectRoot/web
. Po definicjach kontrolera ( routes.php
) wywołaj metodę run
w aplikacji:
ProjectRoot / web / index.php
require_once __DIR__ . '/../vendor/autoload.php';
$app = new Silex\Application();
require_once __DIR__ . '/../app/routes.php';
$app->run();
ProjectRoot / app / trasy.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>