如何在Laravel中包含遗留PHP代码层次结构
我正在将一个遗留PHP应用程序移植到Laravel,需要将各种PHP文件中定义的函数包含到Laravel控制器中。将这些文件复制到Laravel项目中并不方便,因为它们仍将在站点的非Laravel部分使用,我希望确保代码仍然是共享的。我如何使用Laravel中的某个地方的如何在Laravel中包含遗留PHP代码层次结构,php,laravel,include,require,relative-path,Php,Laravel,Include,Require,Relative Path,我正在将一个遗留PHP应用程序移植到Laravel,需要将各种PHP文件中定义的函数包含到Laravel控制器中。将这些文件复制到Laravel项目中并不方便,因为它们仍将在站点的非Laravel部分使用,我希望确保代码仍然是共享的。我如何使用Laravel中的某个地方的require(),以及所有遗留PHP文件的相对路径 例如,在页面顶部,我将转换为Laravel: <?php require("../include.php"); require_once("../../trades/
require()
,以及所有遗留PHP文件的相对路径
例如,在页面顶部,我将转换为Laravel:
<?php
require("../include.php");
require_once("../../trades/trades_include.php");
require_once("account_access_page.php");
require_once("../includes/accounts.php");
加载文件的最佳方法可能是使用composer。转到Laravel应用程序根目录中的composer.json
,并将其添加到“自动加载”部分:
"files": [
"../include.php",
"../../trades/trades_include.php"
// and so on...
],
路径是相对于目录composer.json
的
添加文件后,请运行composer dump autoload
@Andy执行上述操作后,您可能需要在项目根目录中运行composer dump autoload
。@lukasgeiter这难道不意味着将为应用程序中的每个路由加载这些文件吗?最好只为需要它们的路由加载它们。@lukasgeiter我刚刚将文件添加到composer.json
,但是嵌套的require()
s不起作用。当我进入页面时,我得到警告:require_once(../../config.php):无法打开流:第5行的/vagrant/pub/ca/include.php中没有这样的文件或目录
@Andy Yes这将包括在每个路由中。嵌套的请求可能不起作用,因为相对路径现在是错误的。。。如果我发现一些有用的东西,我会给你回复的。啊,这就是不好用,即使我复制了遗留代码并将文件添加到composer.json中,所包含文件中的全局变量似乎对其他文件不可见。我还是PHP新手,我不太确定应该如何解决这个问题。
"files": [
"../include.php",
"../../trades/trades_include.php"
// and so on...
],