如何在 Laravel 中包含遗留 PHP 代码层次结构

问题描述 投票:0回答:2

我正在将旧版 PHP 应用程序移植到 Laravel,并且需要将各种 PHP 文件中定义的函数包含到 Laravel 控制器中。将这些文件复制到 Laravel 项目中并不方便,因为它们仍将在站点的非 Laravel 部分中使用,并且我想确保代码仍然是共享的。如何在 Laravel 中的某个位置使用

require()
以及所有旧 PHP 文件的相对路径?

例如在页面顶部我正在转换为 Laravel:

<?php

require("../include.php");
require_once("../../trades/trades_include.php");
require_once("account_access_page.php");
require_once("../includes/accounts.php");

如您所见,../include.php 包含具有相对路径的其他文件:

<?php

require_once("general.php");

require_once("../../config.php");
require_once("../../includes/utility.php");
require_once("../../includes/session_helper.php");

require_once("../../includes/date.php");
require_once("../../includes/form.php");
require_once("../../includes/mysql.php");
require_once("../../includes/page.php");
require_once("../../includes/table.php");

编辑:在

composer.json
中包含文件并不能解决我的问题,因为嵌套
require_once()
失败。有谁知道解决方法吗?

php laravel include require relative-path
2个回答
6
投票

加载文件的最佳方法可能是使用 Composer。转到 Laravel 应用程序根目录中的

composer.json
并将其添加到
"autoload"
部分:

"files": [
    "../include.php",
    "../../trades/trades_include.php"
    // and so on...
],

路径是相对于

composer.json
所在目录的。

添加文件后,运行

composer dump-autoload


0
投票

您可以查看此链接:

Laravel 的遗产:如何使老化的 PHP 应用程序现代化

https://tighten.com/insights/converting-a-legacy-app-to-laravel/

© www.soinside.com 2019 - 2024. All rights reserved.