В этом разделе представлен обзор того, что такое silex, и почему разработчик может захотеть его использовать.
Следует также упомянуть о любых крупных предметах в силексе и ссылки на связанные темы. Поскольку документация для silex нова, вам может потребоваться создать начальные версии этих связанных тем.
Создайте web
каталог в той же папке, что и каталог vendor
. Создайте файл index.php
в web
каталоге с содержимым
<?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();
Запуск приложения с использованием встроенного сервера PHP
php -S localhost:8080 -t web
Теперь вы можете открыть браузер и перейти к http://localhost:8080
, чтобы увидеть
Привет, мир!
Мы также определили один динамический маршрут. Перейдите в http://localhost:8080/hello/<YOUR_NAME>
заменив <YOUR_NAME>
своим именем, которое будет приветствоваться вашим первым приложением Silex.
Рассмотрите следующую структуру каталогов, чтобы соответствовать лучшим практикам:
[ProjectRoot]
|---[app]
| |---[resources]
| routes.php
|---[web]
| |---[resources]
| | |---[css]
| | |---[img]
| | |---[js]
| .htaccess
| index.php
|---[src]
|---[var]
|---[vendor]
composer.json
composer.lock
Композитор - самый гибкий способ начать работу с Silex. Создайте каталог для размещения вашего приложения Silex (Named ProjectRoot
выше), cd
в этом каталоге и выполните следующую команду для создания файла composer.json
:
composer require silex/silex "~2.0"
Это добавит некоторые файлы и каталоги в каталог vendor
в ProjectRoot
.
После этого вам потребуется только файл vendor/autoload.php
и создать экземпляр Silex\Application
в файле index.php
в ProjectRoot/web
. После определения вашего контроллера ( routes.php
) вызовите метод run
в своем приложении:
ProjectRoot / веб / index.php
require_once __DIR__ . '/../vendor/autoload.php';
$app = new Silex\Application();
require_once __DIR__ . '/../app/routes.php';
$app->run();
ProjectRoot / приложение / routes.php
$app->get("/", function () {
return new \Symfony\Component\HttpFoundation\Response('Hello World!');
});
ProjectRoot / веб / .htaccess
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>