silexsilex 시작하기


비고

이 섹션에서는 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 이동하여

안녕하세요!

또한 하나의 동적 경로를 정의했습니다. 첫 번째 Silex 앱이 인사하려면 자신의 이름으로 http://localhost:8080/hello/<YOUR_NAME> 대체하는 http://localhost:8080/hello/<YOUR_NAME> <YOUR_NAME> 로 이동하십시오.

설치 또는 설정

모범 사례를 준수하기 위해 다음 디렉터리 구조를 고려하십시오.

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

작곡가 는 Silex를 시작하는 가장 유연한 방법입니다. 당신 렉스의 (명명 된 응용 프로그램을 호스팅 할 디렉토리 생성 ProjectRoot 위), cd 그 디렉토리로하고 만들려면 다음 명령을 실행 composer.json 파일을 :

composer require silex/silex "~2.0"
 

그러면 ProjectRoot 아래의 vendor 디렉토리에 일부 파일과 디렉토리가 추가됩니다.

그 후에, vendor/autoload.php 파일이 필요하고 ProjectRoot/webindex.php 파일에 Silex\Application 인스턴스를 생성하기 index.php 됩니다. 컨트롤러 정의 ( routes.php ) 다음에 애플리케이션의 run 메소드를 호출하십시오.

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>