1
0
mirror of https://github.com/restoreddev/phpapprentice.git synced 2025-07-10 18:16:22 +02:00

Added copying of files to build folder

This commit is contained in:
Andrew Davis
2018-09-02 18:24:24 -05:00
parent d0ec26d058
commit e5df68592d
6 changed files with 37 additions and 7 deletions

View File

@ -7,6 +7,7 @@ return [
'code_dir' => __DIR__ . '/code', 'code_dir' => __DIR__ . '/code',
'templates_dir' => __DIR__ . '/assets/templates', 'templates_dir' => __DIR__ . '/assets/templates',
'output_dir' => __DIR__ . '/.build', 'output_dir' => __DIR__ . '/.build',
'files_dir' => __DIR__ . '/assets/files',
'pages' => [ 'pages' => [
Page::create('index', 'index.phtml'), Page::create('index', 'index.phtml'),
Page::create('credits', 'credits.phtml'), Page::create('credits', 'credits.phtml'),

View File

@ -15,7 +15,9 @@ class Build
*/ */
public function buildAll(): void public function buildAll(): void
{ {
$this->cleanPublicFolder(); $this->createOutputFolder();
$this->cleanOutputFolder();
$this->copyFiles();
$pages = config('pages'); $pages = config('pages');
foreach ($pages as $page) { foreach ($pages as $page) {
@ -31,6 +33,8 @@ class Build
*/ */
public function runSingleBuild(string $name): string public function runSingleBuild(string $name): string
{ {
$this->createOutputFolder();
$pages = config('pages'); $pages = config('pages');
foreach ($pages as $page) { foreach ($pages as $page) {
@ -47,7 +51,7 @@ class Build
* *
* @return void * @return void
*/ */
private function cleanPublicFolder(): void private function cleanOutputFolder(): void
{ {
$files = glob(config('output_dir') . '/*.html'); $files = glob(config('output_dir') . '/*.html');
foreach ($files as $file) { foreach ($files as $file) {
@ -55,6 +59,33 @@ class Build
} }
} }
private function copyFiles(): void
{
$filesDir = config('files_dir');
if (!file_exists($filesDir)) {
return;
}
$outputDir = config('output_dir');
foreach (glob($filesDir . '/*') as $file) {
$name = basename($file);
copy($file, $outputDir . '/' . $name);
}
}
/**
* Creates output folder if it does not exist
*
* @return void
*/
private function createOutputFolder(): void
{
if (!file_exists(config('output_dir'))) {
mkdir(config('output_dir'));
}
}
/** /**
* Builds single Page into html and * Builds single Page into html and
* outputs to public directory * outputs to public directory
@ -76,10 +107,6 @@ class Build
} }
$output = $this->getOutput($template, $page->variables); $output = $this->getOutput($template, $page->variables);
if (!file_exists(config('output_dir'))) {
mkdir(config('output_dir'));
}
file_put_contents(config('output_dir') . '/' . $page->name . '.html', $output); file_put_contents(config('output_dir') . '/' . $page->name . '.html', $output);
return $output; return $output;

View File

@ -9,7 +9,6 @@ class BuildTest extends BaseTestCase
public function setUp() public function setUp()
{ {
load_config(__DIR__ . '/static/config.php'); load_config(__DIR__ . '/static/config.php');
mkdir('/tmp/apprentice_output');
} }
public function tearDown() public function tearDown()
@ -53,5 +52,7 @@ class BuildTest extends BaseTestCase
$this->assertEquals($expectedHtml, $html); $this->assertEquals($expectedHtml, $html);
$this->assertEquals($expectedHtml2, $html2); $this->assertEquals($expectedHtml2, $html2);
$this->assertTrue(file_exists('/tmp/apprentice_output/test.txt'));
$this->assertTrue(file_exists('/tmp/apprentice_output/TEST'));
} }
} }

View File

@ -7,6 +7,7 @@ return [
'code_dir' => __DIR__ . '/code', 'code_dir' => __DIR__ . '/code',
'templates_dir' => __DIR__ . '/templates', 'templates_dir' => __DIR__ . '/templates',
'output_dir' => '/tmp/apprentice_output', 'output_dir' => '/tmp/apprentice_output',
'files_dir' => __DIR__ . '/files',
'pages' => [ 'pages' => [
Page::create('index', 'index.phtml'), Page::create('index', 'index.phtml'),
Page::create('test', null, 'test.php', [ Page::create('test', null, 'test.php', [

0
test/static/files/TEST Normal file
View File

View File