Я должен сделать сайт с PHP, и я решил использовать Slim и Twig. Но мои начальники не хотят, чтобы я использовал виртуальный хост. Поэтому у меня возникают проблемы, когда я тестирую сайт с помощью MAMP, потому что сайт находится в подкаталоге, например http://localhost:8888/subdir
.Как получить корневой URL-адрес для Slim-приложения в поддире?
Когда я пытаюсь получить доступ к активу, я не могу использовать абсолютный путь, потому что это заставит меня написать /subpath/path/to/asset
. Но когда мы будем развертывать приложение, не будет субпатов. Как я могу корневать веб-сайт, как если бы был виртуальный хост?
Вы можете увидеть некоторые из моего кода ниже:
index.php
<?php
require 'vendor/autoload.php';
include 'database.php';
use app\controller\ConfigController;
$app = new \Slim\Slim();
$app->get('/', function() {
echo "accueil";
})->name("root");
$app->group('/Admin', function() use ($app) {
$app->get("/", function(){
$ctrl = new ConfigController();
$ctrl->index();
})->name("indexAdmin");
});
.htaccess (в локальном хосте: 8888/подкаталоге)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [QSA,L]
ConfigController (называемая функцией)
public function index() {
$loader = new \Twig_Loader_Filesystem("app/view/Admin");
$twig = new \Twig_Environment($loader);
$template = $twig->loadTemplate('Index.twig');
echo $template->render(array(
'css' => "admin.css"
));
}
шаблон называют Twig средой
<!doctype html>
<html lang="fr">
<head>
<link rel="stylesheet" type="text/css" href="/app/assets/stylesheets/{{ css }}">
</head>
<body>
[...]
Когда я поиск в Google и Stack Overflow, все говорили, чтобы сделать виртуальный хост, но я не могу. Будет ли другое решение?
Эй @ Аманитет, добро пожаловать в С.О. Используете ли вы пакет slim/views для интеграции Twig в приложение? –
Эй! Ni i dont –