Drupal 8无法从自定义模块获取路径位置

时间:2017-10-08 20:15:49

标签: drupal-8

我在Drupal 8中创建了一个模块,需要从模块文件夹加载csv文件,但我无法做到,我已经尝试过:< / p>

$directory = drupal_get_path('module', 'my_module');
$file = 'source.csv';
$path = $directory . '/' . $file;
kint($path);

// open the CVS file
$handle = fopen($path, 'r');
if (!$handle) {
  // ...
}

但是我在加载文件时得到false,所以看起来这不是正确的方法。

2 个答案:

答案 0 :(得分:0)

我找到了一种方法来使用以下代码:

$file = 'source.csv';
$path = __DIR__ . '/' . $file;
// open the CVS file
$handle = @fopen($path, 'r');
if (!$handle) {
  // ...
}

如果有更好的方法让我知道。

答案 1 :(得分:0)

基本上是:

$moduleDir = drupal_get_path('module','my_module');

是正确的方法

所以如果你的source.csv文件位于 modules / MY_MODULE / files / sources.csv

那么你应该可以在my_module.module文件或其他地方执行以下操作:

$file = $moduleDir . DIRECTORY_SEPARATOR . 'files' . DIRECTORY_SEPARATOR . 'sources.csv;
if(file_exists($file)){
  //do your stuff
}