mirror of
https://gh.wpcy.net/https://github.com/aspirepress/AspireCloud.git
synced 2026-05-31 00:04:27 +08:00
* fix: switch redis driver to predis because laravel is hopeless * chore: add spatie/laravel-permission * build: composer update and bump * style: death to captain obvious (zap laravel's banner comments) * feat: initial roles and perms * chore: assign User role on User created * refactor: rename 'aspire_press' config key to 'aspirecloud' * feat: require json content-type on admin api routes * chore: implement BulkImport endpoint * chore: give RepoAdmin users BulkImport permissions * docs: update README
28 lines
581 B
PHP
28 lines
581 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http;
|
|
|
|
use App\Utils\JSON;
|
|
use Generator;
|
|
use Illuminate\Http\Request;
|
|
|
|
trait JsonLines
|
|
{
|
|
public function lazyJsonLines(Request $request): Generator
|
|
{
|
|
$handle = $request->getContent(asResource: true);
|
|
try {
|
|
while (($line = fgets($handle)) !== false) {
|
|
$line = trim($line);
|
|
if (!$line) {
|
|
continue;
|
|
}
|
|
yield JSON::toAssoc($line);
|
|
}
|
|
} finally {
|
|
\Safe\fclose($handle);
|
|
}
|
|
}
|
|
}
|