silexDémarrer avec silex


Remarques

Cette section fournit une vue d'ensemble de ce qu'est silex et pourquoi un développeur peut vouloir l'utiliser.

Il devrait également mentionner tous les grands sujets dans silex, et établir un lien avec les sujets connexes. La documentation de silex étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.

Bonjour le monde

Créez web répertoire web dans le même dossier que le répertoire du vendor . Créer un fichier index.php dans web répertoire web avec le contenu

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

Pour démarrer l'application à l'aide du serveur PHP intégré, exécutez

php -S localhost:8080 -t web
 

Maintenant, vous pouvez ouvrir le navigateur et accéder à http://localhost:8080 , pour voir

Bonjour le monde!

Nous avons également défini un itinéraire dynamique. Accédez à http://localhost:8080/hello/<YOUR_NAME> remplaçant <YOUR_NAME> par votre propre nom pour être accueilli par votre première application Silex.

Installation ou configuration

Envisagez la structure de répertoires suivante pour vous conformer aux meilleures pratiques:

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

Composer est le moyen le plus flexible de démarrer avec Silex. Créez un répertoire pour héberger votre application Silex (Named ProjectRoot ci-dessus), cd à ce répertoire et exécutez la commande suivante pour créer un fichier composer.json :

composer require silex/silex "~2.0"
 

Cela ajoutera des fichiers et des répertoires dans vendor répertoire du vendor , sous ProjectRoot .

Après cela, il vous suffit de demander le fichier vendor/autoload.php et de créer une instance de Silex\Application dans votre fichier index.php sous ProjectRoot/web . Après vos définitions de contrôleur ( routes.php ), appelez la méthode d' run sur votre application:

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>