【问题标题】:Looking to shorten php include paths希望缩短 php 包含路径
【发布时间】:2015-12-23 19:09:23
【问题描述】:

我创建了一个托管在 /var/www/html/project 的 ubunutu 服务器上的 php 登录脚本。但是,当我在我的 PHP 脚本中包含文件时,我希望能够使用缩短的路径,例如 include project/class.php 而不必使用 include var/www/html/project/class.php。

我使用 composer .json 在使用 psr-4 的供应商文件夹中生成自动加载器。 index.php 文件位于 /var/www/html/project/index.php 中。我的会话类在 /var/www/html/project/classes/session.php 中。我只想说。包括类/session.php

有没有办法做到这一点,如果有,怎么做?

谢谢

【问题讨论】:

  • 如果加载并执行包含的主文件位于/var/www/html/project 中,则包含将只是class.php
  • 查看你在 php.ini 中的包含路径。
  • 或者直接附加到你的主脚本中。 php.net/manual/en/function.set-include-path.php
  • 或者您可以定义一个常量用作短路径。
  • 我使用 composer .json 在使用 psr-4 的供应商文件夹中生成自动加载器。 index.php 文件位于 /var/www/html/project/index.php 中。我的会话类在 /var/www/html/project/classes/session.php 中。我只想说。包括类/session.php

标签: php apache webserver


【解决方案1】:

在 composer.json 中使用它从 Composer 加载您的类。

{
    "autoload": {
        "classmap": ["/var/www/html/project/"]
    }
}

Composer 将在上述目录中为您搜索类。

您也可以像这样在 composer.json 中添加特定文件。您可以在这两种情况下传递多个参数。

{
    "autoload": {
        "files": ["var/www/html/project/class.php"]
    }
}

那么你只需要包含 autoloader.php 然后composer会为你找到类以供更多参考,请参阅本节。

https://getcomposer.org/doc/04-schema.md#classmap

【讨论】:

  • 我使用 psr-4,我希望它可以工作,有解决方案吗?通过使用“使用...等等。我正在引用我的自动加载,但是我仍然找不到我的文件
  • 如果你想在 index.php 中包含会话,首先你需要在 index.php 中添加这一行 require "..//autoloader.php" 现在添加 use 行像这样使用 NameSpace\For\SessoinClass;现在在 index.php 中使用 SessionClass
猜你喜欢
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-08
  • 2013-11-09
相关资源
最近更新 更多