Skip to content

Commit 530e23d

Browse files
committed
[FEATURE] Add PublishAssetsCommand
vendor/bin/typo3 content-blocks:assets:publish Fixes: #375
1 parent 36ddf16 commit 530e23d

4 files changed

Lines changed: 73 additions & 0 deletions

File tree

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
/*
6+
* This file is part of the TYPO3 CMS project.
7+
*
8+
* It is free software; you can redistribute it and/or modify it under
9+
* the terms of the GNU General Public License, either version 2
10+
* of the License, or any later version.
11+
*
12+
* For the full copyright and license information, please read the
13+
* LICENSE.txt file that was distributed with this source code.
14+
*
15+
* The TYPO3 project - inspiring people to share!
16+
*/
17+
18+
namespace TYPO3\CMS\ContentBlocks\Command;
19+
20+
use Symfony\Component\Console\Command\Command;
21+
use Symfony\Component\Console\Input\InputInterface;
22+
use Symfony\Component\Console\Output\OutputInterface;
23+
use Symfony\Component\DependencyInjection\Attribute\Autoconfigure;
24+
use TYPO3\CMS\ContentBlocks\Loader\AssetPublisher;
25+
use TYPO3\CMS\ContentBlocks\Registry\ContentBlockRegistry;
26+
27+
#[Autoconfigure(tags: [
28+
[
29+
'name' => 'console.command',
30+
'command' => 'content-blocks:assets:publish',
31+
'description' => 'Publish Content Blocks assets into Resources/Public folder of the host extension.',
32+
'schedulable' => false,
33+
],
34+
])]
35+
36+
class PublishAssetsCommand extends Command
37+
{
38+
public function __construct(
39+
protected readonly ContentBlockRegistry $contentBlockRegistry,
40+
protected readonly AssetPublisher $assetPublisher,
41+
) {
42+
parent::__construct();
43+
}
44+
45+
protected function execute(InputInterface $input, OutputInterface $output): int
46+
{
47+
$contentBlocks = $this->contentBlockRegistry->getAll();
48+
$this->assetPublisher->publishAssets($contentBlocks);
49+
return Command::SUCCESS;
50+
}
51+
}

Documentation/ChangeLog/1.3/Index.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,12 @@ Content Blocks defined Types in their installation.
163163
Before Content Blocks 1.3 the Content Blocks Data Processor returned the
164164
raw array for Types not defined by Content Blocks. Check your templates
165165
whether they can be simplified now.
166+
167+
Publish Assets Command
168+
----------------------
169+
170+
The command :bash:`content-blocks:assets:publish` publishes your public Content
171+
Block `assets` into the Resources/Public folder of the host extension. Normally,
172+
this is performed automatically every time Content Blocks is compiled. In some
173+
deployment scenarios this command could be performed in the CI pipeline to
174+
publish assets without the requirement for a database connection.

Documentation/Commands/Index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ available commands.
1515
Make/Index
1616
List/Index
1717
LanguageGenerate/Index
18+
PublishAssets/Index
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.. include:: /Includes.rst.txt
2+
.. _command_publish_assets:
3+
4+
======================
5+
Publish Assets Command
6+
======================
7+
8+
The command :bash:`content-blocks:assets:publish` publishes your public Content
9+
Block `assets` into the Resources/Public folder of the host extension. Normally,
10+
this is performed automatically every time Content Blocks is compiled. In some
11+
deployment scenarios this command could be performed in the CI pipeline to
12+
publish assets without the requirement for a database connection.

0 commit comments

Comments
 (0)