Skip to content

Commit

Permalink
Added latte functions asset and asset_version instead of filters
Browse files Browse the repository at this point in the history
  • Loading branch information
tg666 committed Nov 24, 2022
1 parent 621f837 commit 6a6dd58
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 39 deletions.
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,14 @@ Configuration options are described in official [Symfony documentation](https://
<p>Version: {asset_version 'my/awesome/image.png', 'foo'}</p>
```

You can also use Filter/Helper equivalent. For example if you want to store result in variable:
You can also use a function equivalent. For example if you want to store result in variable:

```latte
{var $filename = 'my/awesome/image.png'}
{var $asset = asset('my/awesome/image.png')}
{var $asset = asset('my/awesome/image.png', 'foo')}
{$filename|asset}
{$filename|asset: foo}
{$filename|asset_version}
{$filename|asset_version: foo}
{var $version = asset_version('my/awesome/image.png')}
{var $version = asset_version('my/awesome/image.png', 'foo')}
```

## Contributing
Expand Down
6 changes: 3 additions & 3 deletions src/DI/AssetExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,13 @@ public function beforeCompile(): void
$resultDefinition = $latteFactory->getResultDefinition();

if (version_compare(Engine::VERSION, '3', '<')) {
# asset filters
$resultDefinition->addSetup('addFilter', [
# asset functions
$resultDefinition->addSetup('addFunction', [
'name' => 'asset',
'callback' => [$this->prefix('@packages'), 'getUrl'],
]);

$resultDefinition->addSetup('addFilter', [
$resultDefinition->addSetup('addFunction', [
'name' => 'asset_version',
'callback' => [$this->prefix('@packages'), 'getVersion'],
]);
Expand Down
2 changes: 1 addition & 1 deletion src/Latte/AssetExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public function getTags(): array
/**
* @return array{asset: callable, asset_version: callable}
*/
public function getFilters(): array
public function getFunctions(): array
{
return [
'asset' => [$this->packages, 'getUrl'],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use function assert;

require __DIR__ . '/../bootstrap.php';

final class AssetMacrosAndFiltersTest extends TestCase
final class AssetMacrosAndFunctionsTest extends TestCase
{
private Engine $engine;

Expand Down Expand Up @@ -46,39 +46,19 @@ final class AssetMacrosAndFiltersTest extends TestCase
]);
}

public function testAssetFilter(): void
public function testAssetFunction(): void
{
$defaultPackage = <<< LATTE
{var \$file = "my/file.json"}
{\$file|asset}
LATTE;

$nestedPackage = <<< LATTE
{var \$file = "my/nested/file.json"}
{\$file|asset: json_manifest_strategy}
LATTE;

$this->assertLatte([
[$defaultPackage, 'https://cdn.example.com/my/file.json?version=2.1'],
[$nestedPackage, '/my/nested/file.abc123.json'],
['{asset("my/file.json")}', 'https://cdn.example.com/my/file.json?version=2.1'],
['{asset("my/nested/file.json", "json_manifest_strategy")}', '/my/nested/file.abc123.json'],
]);
}

public function testAssetVersionFilter(): void
public function testAssetVersionFunction(): void
{
$defaultPackage = <<< LATTE
{var \$file = "my/file.json"}
{\$file|asset_version}
LATTE;

$nestedPackage = <<< LATTE
{var \$file = "my/nested/file.json"}
{\$file|asset_version: json_manifest_strategy}
LATTE;

$this->assertLatte([
[$defaultPackage, '2.1'],
[$nestedPackage, '/my/nested/file.abc123.json'],
['{asset_version("my/file.json")}', '2.1'],
['{asset_version("my/nested/file.json", "json_manifest_strategy")}', '/my/nested/file.abc123.json'],
]);
}

Expand All @@ -92,4 +72,4 @@ LATTE;
}
}

(new AssetMacrosAndFiltersTest())->run();
(new AssetMacrosAndFunctionsTest())->run();

0 comments on commit 6a6dd58

Please sign in to comment.