Есть ли лучшая практика только для частичной интеграции фреймворка PHP в подкаталог веб-сайта?

Я надеюсь, что этот вопрос не будет широк или субъективен, но я ищу, есть ли (или есть) устоявшиеся способы реализации структуры Laravel на существующем веб-сайте.

В настоящее время мы используем пользовательский CMS для нашего сайта, который охватывает 95% наших потребностей. Тем не менее, я хотел бы создать подкаталог, в котором все его подкаталоги реализуют Laravel. Меня беспокоит, что я не совсем уверен, как работает внутренняя работа Маршрутизации Laravel (и я не уверен, что наша CMS тоже делает свою собственную маршрутизацию за кулисами), поэтому я не хочу, чтобы противоречивые проблемы URI нашей CMS, наступающие на носки Laravel и наоборот.

Я немного знаком с правилами .htaccess, но это (отдельный .htaccess в подкаталоге Laravel) станет ключом к реализации маршрутизации Laravel в этой папке вниз, а не для какой-либо другой страницы на сайт? И если наша CMS сделает свою собственную маршрутизацию, будет ли более высокий уровень .htaccess переопределять более высокий уровень?

Означает ли это что-либо из красных флагов на проблемах, которые могут возникнуть позже в разработке?

Я не думаю, что маршрутизация будет проблемой (Laravel обычно хорошо работает в подкаталоге с точки зрения маршрутизации). Если вы используете URL-адреса помощников Laravel, вы все в порядке.

Более серьезной проблемой с Laravel в подкаталоге является безопасность. Чтобы ваш код всей платформы был доступен для всех, вам необходимо разбить общий каталог и остальную часть структуры.

Я предлагаю эту структуру:

 - laravel_app --- app --- bootstrap --- vendor --- ... - document_root --- your cms stuff --- laravel (laravel "public" directory renamed to whatever url you want it under) ------ index.php ------ .htaccess ------ assets 

Для выполнения этой работы вам необходимо отредактировать два файла:

public/index.php (теперь document_root/laravel/index.php )

 require __DIR__.'/../../laravel_app/bootstrap/autoload.php'; $app = require_once __DIR__.'/../../laravel_app/bootstrap/start.php'; $app->run(); 

app/bootstrap/paths.php (теперь laravel_app/app/bootstrap/paths.php )

 // ... 'public' => __DIR__.'/../../document_root/laravel', // ...