silexНачало работы с силекс


замечания

В этом разделе представлен обзор того, что такое 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>