silex开始使用silex


备注

本节概述了silex是什么,以及开发人员可能想要使用它的原因。

它还应该提到silex中的任何大型主题,并链接到相关主题。由于silex的文档是新的,您可能需要创建这些相关主题的初始版本。

你好,世界

在与vendor 目录相同的文件夹中创建web 目录。在web 目录中创建包含内容的index.php 文件

<?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
 

Composer是最灵活的Silex入门方式。创建一个目录来托管您的Silex应用程序(上面命名为ProjectRoot ), cd 到该目录并运行以下命令来创建composer.json 文件:

composer require silex/silex "~2.0"
 

这将在ProjectRoot 下将一些文件和目录添加到vendor 目录中。

之后,您需要做的就是需要vendor/autoload.php 文件,并在ProjectRoot/web 下的index.php 文件中创建Silex\Application 实例。在您的控制器定义( 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>