在 Laravel 7.0 使用 VarExporter 生成 PHP 檔案

前言

一個 Laravel 的語言檔是由 PHP 的陣列所組成,如果想要生成一個類似這樣的 PHP 檔案,可以使用 symfony/var-exporter 套件,這個套件在 Laravel 框架中已經被引入。

使用方法

輸出陣列

單純輸出一個陣列。

1
2
3
4
5
6
7
use Symfony\Component\VarExporter\VarExporter;

$data = VarExporter::export([
'foo' => 'bar',
]);

dd($data);

輸出結果:

1
2
3
4
5
"""
[\n
'foo' => 'bar',\n
]
"""

生成檔案

生成一個 PHP 檔案。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use Symfony\Component\VarExporter\VarExporter;

$data = vsprintf('%s%s%s%s%s%s%s', [
'<?php',
PHP_EOL,
PHP_EOL,
'return ',
VarExporter::export([
'foo' => 'bar',
]),
';',
PHP_EOL,
]);

$path = sprintf('%s/%s.php', app()->langPath().DIRECTORY_SEPARATOR.'en', 'example');

file_put_contents($path, $data);

匯出結果:

1
2
3
4
5
<?php

return [
'foo' => 'bar',
];