silexAan de slag met Silex


Opmerkingen

Deze sectie geeft een overzicht van wat Silex is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook grote onderwerpen binnen Silex vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de Documentatie voor silex nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Hallo Wereld

Maak een web in dezelfde map als de vendor . Maak index.php bestand in web met inhoud

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

App starten met PHP ingebouwde server uitvoeren

php -S localhost:8080 -t web
 

Nu kunt u de browser openen en naar http://localhost:8080 navigeren om te zien

Hallo Wereld!

We hebben ook één dynamische route gedefinieerd. Navigeer naar http://localhost:8080/hello/<YOUR_NAME> waarbij <YOUR_NAME> vervangen door uw eigen naam om te worden begroet door uw eerste Silex-app.

Installatie of instellingen

Overweeg de volgende mapstructuur om te voldoen aan best practices:

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

Componist is de meest flexibele manier om aan de slag te gaan met Silex. Maak een map voor het hosten van uw Silex-applicatie (hierboven ProjectRoot ), cd naar die map en voer de volgende opdracht uit om een composer.json bestand te maken:

composer require silex/silex "~2.0"
 

Hiermee worden enkele bestanden en mappen toegevoegd aan de vendor , onder ProjectRoot .

Daarna hoeft u alleen het bestand vendor/autoload.php te gebruiken en een exemplaar van Silex\Application in uw index.php bestand onder ProjectRoot/web . Na de definities van uw controller ( routes.php ), roept u de run methode op uw applicatie aan:

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>