php / php/php-src

Feature: walker function: walker(".") returns an object model of the entire directory / an expansive alternative for scandir()

Offen
#22,104 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Feature Status: Needs Triage
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.1k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

Here is my current code for demonstrating the purpose. The dev community shall decide on the final verdict.

<?php
    function walker($directory) {
        foreach (scandir($directory) as $item) {
            if ($item == '.' || $item == '..') continue;
            if ($directory == "." && ($item == "api.php" || $item == 'index.html')) continue;
            $dl[$item] = [
                "item_type" => is_dir("{$directory}/{$item}") ? "folder" : "file",
                "child" => walker("{$directory}/{$item}"),
            ];
        }
        return $dl;
    }
?>

Here's how I'm currently using it :) with some html css and js
Image

How it looks like when I use echo and json_encode.
Image

I'll be making a pull request if it got a lot of good impressions.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der Überprüfung des vorgeschlagenen walker($directory)-Beispiels und seines vorgesehenen Objektmodells für das rekursive Durchlaufen von Verzeichnissen. Vergleiche die Anfrage mit dem bestehenden Verhalten von scandir() und bestimme, ob eine konkrete PHP-API, ein Umfang und Abschlusskriterien definiert werden können; im Issue werden derzeit keine Quelldateien oder Tests genannt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php
Bereich
backend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.