# disk-usage-insights/1.6/src/Domain/Collect/DetermineDirCountJob.php

Disk Usage Insights, version 1.6. 38 lines.

- Page: https://pluginprobe.com/plugins/disk-usage-insights/1.6/code/src/Domain/Collect/DetermineDirCountJob.php
- Raw: https://pluginprobe.com/plugins/disk-usage-insights/1.6/raw/src/Domain/Collect/DetermineDirCountJob.php
- Modified: 2024-12-19T11:33:52+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/disk-usage-insights/1.6/code/src/Domain/Collect/DetermineDirCountJob.php#L10-L20`.

```php
<?php

namespace Mgleis\DiskUsageInsights\Domain\Collect;

use Mgleis\DiskUsageInsights\Domain\Jobs\BaseJob;
use Mgleis\DiskUsageInsights\Domain\Jobs\PhaseCoordinatorJob;

class DetermineDirCountJob extends BaseJob {

    public function work() {
        $this->log(self::class);

        $db = $this->queue->db;
        $stmt = $db->prepare("
            UPDATE fileentries
            SET dir_count = COALESCE(
                (
                    SELECT COUNT(*)
                    FROM fileentries AS sub
                    WHERE sub.parent_id = fileentries.id
                ), 0)
            WHERE type = 'dir';
        ");
        $stmt->execute();

        $this->queue->push((new PhaseCoordinatorJob())->toArray());
    }

    public function toArray() {
        return ['type' => self::class, 'args' => []];
    }

    public function toDescription(): string {
        return 'Calculating dir counts...';
    }

}

```
