Sections

Class Phalcon\Assets\Asset

Source on GitHub

Namespace Phalcon\Assets
Implements AssetInterface

Represents an asset

$asset = new \Phalcon\Assets\Asset("js", "js/jquery.js");

Properties

/**
 * @var array
 */
protected attributes;

/**
 * @var bool
 */
protected isAutoVersion = false;

/**
 * @var bool
 */
protected filter;

/**
 * @var bool
 */
protected isLocal;

/**
 * @var string
 */
protected path;

/**
 * @var string
 */
protected sourcePath;

/**
 * @var string
 */
protected targetPath;

/**
 * @var string
 */
protected targetUri;

/**
 * @var string
 */
protected type;

/**
 * Version of resource
 *
 * @var string|null
 */
protected version;

Methods

public function __construct( string $type, string $path, bool $isLocal = bool, bool $filter = bool, array $attributes = [], string $version = null, bool $isAutoVersion = bool );

Asset constructor.

public function getAssetKey(): string;

Gets the asset’s key.

public function getAttributes(): array;

Gets extra HTML attributes.

public function getContent( string $basePath = null ): string;

Returns the content of the asset as an string Optionally a base path where the asset is located can be set

public function getFilter(): bool;
public function getPath(): string;
public function getRealSourcePath( string $basePath = null ): string;

Returns the complete location where the asset is located

public function getRealTargetPath( string $basePath = null ): string;

Returns the complete location where the asset must be written

public function getRealTargetUri(): string;

Returns the real target uri for the generated HTML

public function getSourcePath(): string;
public function getTargetPath(): string;
public function getTargetUri(): string;
public function getType(): string;
public function getVersion(): string | null;

Version of resource

public function isAutoVersion(): bool;

Checks if the asset is using auto version

public function isLocal(): bool;

Checks if the asset is local or not

public function setAttributes( array $attributes ): AssetInterface;

Sets extra HTML attributes

public function setAutoVersion( bool $flag ): AssetInterface;
public function setFilter( bool $filter ): AssetInterface;

Sets if the asset must be filtered or not

public function setIsLocal( bool $flag ): AssetInterface;

Sets if the asset is local or external

public function setPath( string $path ): AssetInterface;

Sets the asset’s path

public function setSourcePath( string $sourcePath ): AssetInterface;

Sets the asset’s source path

public function setTargetPath( string $targetPath ): AssetInterface;

Sets the asset’s target path

public function setTargetUri( string $targetUri ): AssetInterface;

Sets a target uri for the generated HTML

public function setType( string $type ): AssetInterface;

Sets the asset’s type

public function setVersion( string $version ): AssetInterface;

Sets the asset’s version

protected function phpFileExists( string $filename ): bool;

@todo to be removed when we get traits

protected function phpFileGetContents( string $filename );

Class Phalcon\Assets\Asset\Css

Source on GitHub

Namespace Phalcon\Assets\Asset
Uses Phalcon\Assets\Asset
Extends AssetBase

Represents CSS assets

Methods

public function __construct( string $path, bool $local = bool, bool $filter = bool, array $attributes = [], string $version = null, bool $autoVersion = bool );

Phalcon\Assets\Asset\Css constructor

Class Phalcon\Assets\Asset\Js

Source on GitHub

Namespace Phalcon\Assets\Asset
Uses Phalcon\Assets\Asset
Extends AssetBase

Represents JavaScript assets

Methods

public function __construct( string $path, bool $local = bool, bool $filter = bool, array $attributes = [], string $version = null, bool $autoVersion = bool );

Phalcon\Assets\Asset\Js constructor

Interface Phalcon\Assets\AssetInterface

Source on GitHub

Namespace Phalcon\Assets

Interface for custom Phalcon\Assets resources

Methods

public function getAssetKey(): string;

Gets the asset’s key.

public function getAttributes(): array | null;

Gets extra HTML attributes.

public function getFilter(): bool;

Gets if the asset must be filtered or not.

public function getType(): string;

Gets the asset’s type.

public function setAttributes( array $attributes ): AssetInterface;

Sets extra HTML attributes.

public function setFilter( bool $filter ): AssetInterface;

Sets if the asset must be filtered or not.

public function setType( string $type ): AssetInterface;

Sets the asset’s type.

Class Phalcon\Assets\Collection

Source on GitHub

Namespace Phalcon\Assets
Uses ArrayIterator, Countable, IteratorAggregate
Implements Countable, IteratorAggregate

Collection of asset objects

Properties

/**
 * @var array
 */
protected assets;

/**
 * @var array
 */
protected attributes;

/**
 * Should version be determined from file modification time
 *
 * @var bool
 */
protected autoVersion = false;

/**
 * @var array
 */
protected codes;

/**
 * @var array
 */
protected filters;

/**
 * @var bool
 */
protected isLocal = true;

/**
 * @var bool
 */
protected join = true;

/**
 * @var string
 */
protected prefix = ;

/**
 * @var string
 */
protected sourcePath = ;

/**
 * @var bool
 */
protected targetIsLocal = true;

/**
 * @var string
 */
protected targetPath = ;

/**
 * @var string
 */
protected targetUri = ;

/**
 * @var string
 */
protected version = ;

Methods

public function add( AssetInterface $asset ): Collection;

Adds an asset to the collection

public function addCss( string $path, mixed $isLocal = null, bool $filter = bool, array $attributes = [], string $version = null, bool $autoVersion = bool ): Collection;

Adds a CSS asset to the collection

public function addFilter( FilterInterface $filter ): Collection;

Adds a filter to the collection

public function addInline( Inline $code ): Collection;

Adds an inline code to the collection

public function addInlineCss( string $content, bool $filter = bool, array $attributes = [] ): Collection;

Adds an inline CSS to the collection

public function addInlineJs( string $content, bool $filter = bool, array $attributes = [] ): Collection;

Adds an inline JavaScript to the collection

public function addJs( string $path, mixed $isLocal = null, bool $filter = bool, array $attributes = [], string $version = null, bool $autoVersion = bool ): Collection;

Adds a JavaScript asset to the collection

public function count(): int;

Return the count of the assets

public function getAssets(): array;
public function getAttributes(): array;
public function getCodes(): array;
public function getFilters(): array;
public function getIterator(): \Traversable;

Returns the generator of the class

@link https://php.net/manual/en/iteratoraggregate.getiterator.php

public function getJoin(): bool;
public function getPrefix(): string;
public function getRealTargetPath( string $basePath ): string;

Returns the complete location where the joined/filtered collection must be written

public function getSourcePath(): string;
public function getTargetIsLocal(): bool;
public function getTargetPath(): string;
public function getTargetUri(): string;
public function getVersion(): string;
public function has( AssetInterface $asset ): bool;

Checks this the asset is added to the collection.

use Phalcon\Assets\Asset;
use Phalcon\Assets\Collection;

$collection = new Collection();

$asset = new Asset("js", "js/jquery.js");

$collection->add($asset);
$collection->has($asset); // true
public function isAutoVersion(): bool;

Checks if collection is using auto version

public function isLocal(): bool;
public function join( bool $flag ): Collection;

Sets if all filtered assets in the collection must be joined in a single result file

public function setAttributes( array $attributes ): Collection;

Sets extra HTML attributes

public function setAutoVersion( bool $flag ): Collection;
public function setFilters( array $filters ): Collection;

Sets an array of filters in the collection

public function setIsLocal( bool $flag ): Collection;

Sets if the collection uses local assets by default

public function setPrefix( string $prefix ): Collection;

Sets a common prefix for all the assets

public function setSourcePath( string $sourcePath ): Collection;

Sets a base source path for all the assets in this collection

public function setTargetIsLocal( bool $flag ): Collection;

Sets if the target local or not

public function setTargetPath( string $targetPath ): Collection;

Sets the target path of the file for the filtered/join output

public function setTargetUri( string $targetUri ): Collection;

Sets a target uri for the generated HTML

public function setVersion( string $version ): Collection;

Sets the version

final protected function addAsset( AssetInterface $asset ): bool;

Adds an asset or inline-code to the collection

Class Phalcon\Assets\Exception

Source on GitHub

Namespace Phalcon\Assets
Extends \Exception

Exceptions thrown in Phalcon\Assets will use this class

Interface Phalcon\Assets\FilterInterface

Source on GitHub

Namespace Phalcon\Assets

Interface for custom Phalcon\Assets filters

Methods

public function filter( string $content ): string;

Filters the content returning a string with the filtered content

Class Phalcon\Assets\Filters\Cssmin

Source on GitHub

Namespace Phalcon\Assets\Filters
Uses Phalcon\Assets\FilterInterface
Implements FilterInterface

Minify the CSS - removes comments removes newlines and line feeds keeping removes last semicolon from last property

Methods

public function filter( string $content ): string;

Filters the content using CSSMIN

NOTE: This functionality is not currently available

Class Phalcon\Assets\Filters\Jsmin

Source on GitHub

Namespace Phalcon\Assets\Filters
Uses Phalcon\Assets\FilterInterface
Implements FilterInterface

Deletes the characters which are insignificant to JavaScript. Comments will be removed. Tabs will be replaced with spaces. Carriage returns will be replaced with linefeeds. Most spaces and linefeeds will be removed.

Methods

public function filter( string $content ): string;

Filters the content using JSMIN

NOTE: This functionality is not currently available

Class Phalcon\Assets\Filters\None

Source on GitHub

Namespace Phalcon\Assets\Filters
Uses Phalcon\Assets\FilterInterface
Implements FilterInterface

Returns the content without make any modification to the original source

Methods

public function filter( string $content ): string;

Returns the content as is

Class Phalcon\Assets\Inline

Source on GitHub

Namespace Phalcon\Assets
Implements AssetInterface

Represents an inline asset

$inline = new \Phalcon\Assets\Inline("js", "alert('hello world');");

Properties

/**
 * @var array
 */
protected attributes;

/**
 * @var string
 */
protected content;

/**
 * @var bool
 */
protected filter;

/**
 * @var string
 */
protected type;

Methods

public function __construct( string $type, string $content, bool $filter = bool, array $attributes = [] );

Phalcon\Assets\Inline constructor

public function getAssetKey(): string;

Gets the asset’s key.

public function getAttributes(): array;
public function getContent(): string;
public function getFilter(): bool;
public function getType(): string;
public function setAttributes( array $attributes ): AssetInterface;

Sets extra HTML attributes

public function setFilter( bool $filter ): AssetInterface;

Sets if the asset must be filtered or not

public function setType( string $type ): AssetInterface;

Sets the inline’s type

Class Phalcon\Assets\Inline\Css

Source on GitHub

Namespace Phalcon\Assets\Inline
Uses Phalcon\Assets\Inline
Extends InlineBase

Represents an inlined CSS

Methods

public function __construct( string $content, bool $filter = bool, array $attributes = [] );

Phalcon\Assets\Inline\Css constructor

Class Phalcon\Assets\Inline\Js

Source on GitHub

Namespace Phalcon\Assets\Inline
Uses Phalcon\Assets\Inline
Extends InlineBase

Represents an inline JavaScript

Methods

public function __construct( string $content, bool $filter = bool, array $attributes = [] );

Phalcon\Assets\Inline\Js constructor

Class Phalcon\Assets\Manager

Source on GitHub

Namespace Phalcon\Assets
Uses Phalcon\Assets\Asset\Css, Phalcon\Assets\Asset\Js, Phalcon\Assets\Inline\Css, Phalcon\Assets\Inline\Js, Phalcon\Di\AbstractInjectionAware, Phalcon\Html\Helper\Element, Phalcon\Html\Helper\Link, Phalcon\Html\Helper\Script, Phalcon\Html\TagFactory
Extends AbstractInjectionAware

Manages collections of CSS/JavaScript assets

Properties

/**
 * @var array
 */
protected collections;

/**
 * @var bool
 */
protected implicitOutput = true;

/**
 * @var array
 */
protected options;

/**
 * @var TagFactory
 */
protected tagFactory;

Methods

public function __construct( TagFactory $tagFactory, array $options = [] );

Manager constructor.

public function addAsset( Asset $asset ): Manager;

Adds a raw asset to the manager

public function addAssetByType( string $type, Asset $asset ): Manager;

Adds a asset by its type

public function addCss( string $path, bool $local = bool, bool $filter = bool, array $attributes = [], string $version = null, bool $autoVersion = bool ): Manager;

Adds a CSS asset to the ‘css’ collection

public function addInlineCode( Inline $code ): Manager;

Adds a raw inline code to the manager

public function addInlineCodeByType( string $type, Inline $code ): Manager;

Adds an inline code by its type

public function addInlineCss( string $content, bool $filter = bool, array $attributes = [] ): Manager;

Adds an inline CSS to the ‘css’ collection

public function addInlineJs( string $content, bool $filter = bool, array $attributes = [] ): Manager;

Adds an inline JavaScript to the ‘js’ collection

public function addJs( string $path, bool $local = bool, bool $filter = bool, array $attributes = [], string $version = null, bool $autoVersion = bool ): Manager;

Adds a JavaScript asset to the ‘js’ collection

$assets->addJs("scripts/jquery.js");
$assets->addJs("http://jquery.my-cdn.com/jquery.js", false);
public function collection( string $name ): Collection;

Creates/Returns a collection of assets

public function collectionAssetsByType( array $assets, string $type ): array;

Creates/Returns a collection of assets by type

public function exists( string $name ): bool;

Returns true or false if collection exists.

if ($manager->exists("jsHeader")) {
    // \Phalcon\Assets\Collection
    $collection = $manager->get("jsHeader");
}
public function get( string $name ): Collection;

Returns a collection by its id.

$scripts = $assets->get("js");
public function getCollections(): Collection[];

Returns existing collections in the manager

public function getCss(): Collection;

Returns the CSS collection of assets

public function getJs(): Collection;

Returns the CSS collection of assets

public function getOptions(): array;

Returns the manager options

public function has( string $name ): bool;

Returns true or false if collection exists.

if ($manager->has("jsHeader")) {
    // \Phalcon\Assets\Collection
    $collection = $manager->get("jsHeader");
}
public function output( Collection $collection, string $type ): string | null;

Traverses a collection calling the callback to generate its HTML

public function outputCss( string $name = null ): string;

Prints the HTML for CSS assets

public function outputInline( Collection $collection, mixed $type ): string;

Traverses a collection and generate its HTML

public function outputInlineCss( string $name = null ): string;

Prints the HTML for inline CSS

public function outputInlineJs( string $name = null ): string;

Prints the HTML for inline JS

public function outputJs( string $name = null ): string;

Prints the HTML for JS assets

public function set( string $name, Collection $collection ): Manager;

Sets a collection in the Assets Manager

$assets->set("js", $collection);
public function setOptions( array $options ): Manager;

Sets the manager options

public function useImplicitOutput( bool $implicitOutput ): Manager;

Sets if the HTML generated must be directly printed or returned