Возможно ли иметь несколько объектов Slim для разных разделов/маршрутов веб-сайта.
Например:
Я уже пробовал модифицировать Apache.htaccess, используя:
RewriteRule ^api front_controller_api.inc.php [QSA,L]
RewriteRule ^admin-panel front_controller_admin.inc.php [QSA,L]
... но это, похоже, нарушает принципы Slim routing, потому что Slim считает, что /api и /admin-panel являются частью URI запроса. Было бы намного проще иметь разные объекты приложения с различными конфигурациями, средними и т.д. Для каждого раздела страницы.
Есть идеи?
Я не знаю, правильно ли это делается, но вы пытаетесь создать структуру папок следующим образом:
public/
|-> api/
|-> index.php
|-> .htaccess
|-> admin-panel/
|-> index.php
|-> .htaccess
ОБНОВИТЬ:
Я "исследовал" еще несколько и придумал другое решение:
public/
|-> .htaccess
|-> admin-panel.php
|-> api.php
.htaccess
:
RewriteEngine On
# Some hosts may require you to use the 'RewriteBase' directive.
# If you need to use the 'RewriteBase' directive, it should be the
# absolute physical path to the directory that contains this htaccess file.
#
# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^admin-panel/ admin-panel.php [QSA,L]
RewriteRule ^api/ api.php [QSA,L]
ОБНОВЛЕНИЕ 2:
С помощью этого решения вам нужно сгруппировать все в '/admin-panel'
или '/api'
в определении маршрута.
Вы можете сделать это легко, используя группы:
$app->group('/api', function () use ($app){
//Your api scope
$app->myCustom = "my custom";
$app->get('/', function () use ($app) {
echo $app->myCustom;
});
});
//Your amazing middleware.
function adminPanelMiddleware() {
echo "This is my custom middleware!<br/>";
}
$app->group('/admin-panel', 'adminPanelMiddleware', function () use ($app){
//Your admin-panel scope
$app->anotherCustom = "another custom";
$app->get('/', function () use ($app) {
echo $app->anotherCustom;
});
});