Получите иерархию каталога с PHP

Хорошо, давайте шаг за шагом.


По первому вопросу. В большинстве случаев вам не следует этого делать, вместо этого вы должны рассматривать sublime_text как пакет. Структура должна выглядеть следующим образом:

├───sublime_text
|       __init__.py
│       sublime.py
│       sublime_plugin.py

И вы должны использовать ее как from sublime_text import sublime в других ваших пакетах. Это может быть лучше, поскольку вы не будете слишком сильно загрязнять глобальное пространство имен. Или, если это не обычный пакет, которым вы хотите поделиться между многими другими пакетами, вы можете напрямую включить его как подмодуль в свой основной пакет.

Или, если вы действительно хотите это сделать, вы можете поместить эти два файла в корневой каталог и использовать:

...
packages = find_packages(),
py_modules=["sublime", "sublime_plugin"],
...

Для второго вопроса. Поскольку это пакет, вы можете добавить этот путь к пакетам: packages=[""]. Или для удобства вы можете использовать packages=find_packages(). Это поможет вам найти все пакеты в текущем каталоге, который является "".


Третий вопрос. В основном это не правильно, вам просто нужно представить то, что нужно пользователю в PyPi. Для docs вы должны использовать сайт readthedocs . А для других примеров и тестов просто оставьте их на своем Github. Этого достаточно.

9
задан Callum 19 March 2009 в 00:34
поделиться

4 ответа

function dir_contents_recursive($dir) {
    // open handler for the directory
    $iter = new DirectoryIterator($dir);

    foreach( $iter as $item ) {
        // make sure you don't try to access the current dir or the parent
        if ($item != '.' && $item != '..') {
            if( $item->isDir() ) {
                // call the function on the folder
                dir_contents_recursive("$dir/$item");
            } else {
                // print files
                echo $dir . "/" .$item->getFilename() . "<br>";
            }
        }
    }
}
12
ответ дан 4 December 2019 в 11:08
поделиться
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)) as $f) {
    echo "$f \r\n";   
}
5
ответ дан 4 December 2019 в 11:08
поделиться

Используйте scandir ()

0
ответ дан 4 December 2019 в 11:08
поделиться
$dir = "/home/user/stuff/";
$scan = scandir($dir);

foreach ($scan as $output) {
    echo "$output" . "<br />";
}
0
ответ дан 4 December 2019 в 11:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: