docu_system/classes/ScssPhp-ScssPhp-Importer-Importer.html
Ulf Gebhardt 50de610cf6
generated new version
missing changes

more

more

more
2024-11-21 02:49:15 +01:00

674 lines
41 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title> SYSTEM - PHP Framework &raquo; \ScssPhp\ScssPhp\Importer\Importer
</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
<base href="../">
<link href="css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="https://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->
<script src="js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
<script src="js/jquery.mousewheel.min.js" type="text/javascript"></script>
<script src="js/bootstrap.js" type="text/javascript"></script>
<script src="js/template.js" type="text/javascript"></script>
<script src="js/prettify/prettify.min.js" type="text/javascript"></script>
<link rel="shortcut icon" href="img/favicon.ico"/>
<link rel="apple-touch-icon" href="img/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="img/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="img/apple-touch-icon-114x114.png"/>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> </a>
<a class="brand" href="index.html">SYSTEM - PHP Framework</a>
<div class="nav-collapse">
<ul class="nav">
<li class="dropdown">
<a href="#api" class="dropdown-toggle" data-toggle="dropdown">
API Documentation <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a>Namespaces</a></li>
<li><a href="\LIB">LIB</a></li>
<li><a href="\GIT">GIT</a></li>
<li><a href="\vakata">vakata</a></li>
<li><a href="\Michelf">Michelf</a></li>
<li><a href="\MatthiasMullie">MatthiasMullie</a></li>
<li><a href="\PHPDocMD">PHPDocMD</a></li>
<li><a href="\ScssPhp">ScssPhp</a></li>
<li><a href="\SYSTEM">SYSTEM</a></li>
</ul>
</li>
<li class="dropdown" id="charts-menu">
<a href="#charts" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="graph_class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#reports" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="errors.html">
<i class="icon-list-alt"></i>&#160;Errors
</a>
</li>
<li>
<a href="markers.html">
<i class="icon-list-alt"></i>&#160;Markers
</a>
</li>
<li>
<a href="deprecated.html">
<i class="icon-list-alt"></i>&#160;Deprecated
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="go_to_top">
<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>
</div>
</div>
<div id="___" class="container">
<noscript>
<div class="alert alert-warning">
Javascript is disabled; several features are only available if Javascript is enabled.
</div>
</noscript>
<style>
.deprecated h2 {
text-decoration: line-through;
}
</style>
<div class="row">
<div class="span4">
<div class="btn-group view pull-right" data-toggle="buttons-radio">
<button class="btn details" title="Show descriptions and method names"><i class="icon-list"></i></button>
<button class="btn simple" title="Show only method names"><i class="icon-align-justify"></i></button>
</div>
<div class="btn-group visibility" data-toggle="buttons-checkbox">
<button class="btn public active" title="Show public elements">Public</button>
<button class="btn protected" title="Show protected elements">Protected</button>
<button class="btn private" title="Show private elements">Private</button>
<button class="btn inherited active" title="Show inherited elements">Inherited</button>
</div>
<ul class="side-nav nav nav-list">
<li class="nav-header">
<i class="icon-custom icon-method"></i> Methods
<ul>
<li class="method public">
<a href="#method_canonicalize" title="canonicalize :: If $url is recognized by this importer, returns its canonical format.">
<span class="description">If $url is recognized by this importer, returns its canonical format.</span><pre>canonicalize</pre>
</a>
</li>
<li class="method public">
<a href="#method_couldCanonicalize" title="couldCanonicalize :: Without accessing the filesystem, returns whether passing $url to
{@see canonicalize} could possibly return $canonicalUrl.">
<span class="description">Without accessing the filesystem, returns whether passing $url to
{@see canonicalize} could possibly return $canonicalUrl.</span><pre>couldCanonicalize</pre>
</a>
</li>
<li class="method public">
<a href="#method_isNonCanonicalScheme" title="isNonCanonicalScheme :: Returns whether the given URL scheme (without `:`) should be considered
&quot;non-canonical&quot; for this importer.">
<span class="description">Returns whether the given URL scheme (without `:`) should be considered
&quot;non-canonical&quot; for this importer.</span><pre>isNonCanonicalScheme</pre>
</a>
</li>
<li class="method public">
<a href="#method_load" title="load :: Loads the Sass text for the given $url, or returns `null` if
this importer can&#039;t find the stylesheet it refers to.">
<span class="description">Loads the Sass text for the given $url, or returns `null` if
this importer can&#039;t find the stylesheet it refers to.</span><pre>load</pre>
</a>
</li>
</ul>
</li>
<li class="nav-header protected">» Protected
<ul>
<li class="method protected">
<a href="#method_getContainingUrl" title="getContainingUrl :: The canonical URL of the stylesheet that caused the current {@see canonicalize}
invocation.">
<span class="description">The canonical URL of the stylesheet that caused the current {@see canonicalize}
invocation.</span><pre>getContainingUrl</pre>
</a>
</li>
<li class="method protected">
<a href="#method_isFromImport" title="isFromImport :: Whether the current {@see canonicalize} invocation comes from an `@import`
rule.">
<span class="description">Whether the current {@see canonicalize} invocation comes from an `@import`
rule.</span><pre>isFromImport</pre>
</a>
</li>
</ul>
</li>
<li class="nav-header private">» Private
<ul>
</ul>
</li>
<li class="nav-header">
<i class="icon-custom icon-constant"></i> Constants
<ul>
</ul>
</li>
</ul>
</div>
<div class="span8">
<div class="element class">
<h1>Importer</h1>
<small style="display: block; text-align: right">
Implements <abbr title="\Stringable">Stringable</abbr>
</small>
<p class="short_description">A base class for importers that resolves URLs in `@import`s to the contents
of Sass files.</p>
<div class="details">
<div class="long_description">
<p>Importers should implement {@see \ScssPhp\ScssPhp\Importer__toString} to provide a human-readable description
of the importer. For example, the default filesystem importer returns its
load path.</p>
</div>
<table class="table table-bordered">
<tr>
<th>
package
</th>
<td>
<p>Application</p>
</td>
</tr>
</table>
<h3><i class="icon-custom icon-method"></i> Methods</h3>
<a id="method_canonicalize"></a>
<div class="element clickable method public method_canonicalize" data-toggle="collapse" data-target=".method_canonicalize .collapse">
<h2>If $url is recognized by this importer, returns its canonical format.</h2>
<pre>canonicalize(\League\Uri\Contracts\UriInterfaceurl) : ?\League\Uri\Contracts\UriInterface</pre>
<div class="labels">
<span class="label">abstract</span> </div>
<div class="row collapse">
<div class="detail-description">
<div class="long_description"><p>Note that canonical URLs <em>must</em> be absolute, including a scheme. Returning
<code class="prettyprint">file:</code> URLs is encouraged if the imported stylesheet comes from a file on
disk.</p>
<p>If Sass has already loaded a stylesheet with the returned canonical URL,
it re-uses the existing parse tree. This means that importers <strong>must
ensure</strong> that the same canonical URL always refers to the same stylesheet,
<em>even across different importers</em>.</p>
<p>This may return <code class="prettyprint">null</code> if $url isn't recognized by this importer.</p>
<p>If this importer's URL format supports file extensions, it should
canonicalize them the same way as the default filesystem importer:</p>
<ul>
<li>
<p>The importer should look for stylesheets by adding the prefix <code class="prettyprint">_</code> to the
URL's basename, and by adding the extensions <code class="prettyprint">.sass</code> and <code class="prettyprint">.scss</code> if the
URL doesn't already have one of those extensions. For example, if the
URL was <code class="prettyprint">foo/bar/baz</code>, the importer would look for:</p>
<ul>
<li>
<code class="prettyprint">foo/bar/baz.sass</code>
</li>
<li>
<code class="prettyprint">foo/bar/baz.scss</code>
</li>
<li>
<code class="prettyprint">foo/bar/_baz.sass</code>
</li>
<li>
<code class="prettyprint">foo/bar/_baz.scss</code>
</li>
</ul>
<p>If the URL was <code class="prettyprint">foo/bar/baz.scss</code>, the importer would just look for:</p>
<ul>
<li>
<code class="prettyprint">foo/bar/baz.scss</code>
</li>
<li>
<code class="prettyprint">foo/bar/_baz.scss</code>
</li>
</ul>
<p>If the importer finds a stylesheet at more than one of these URLs, it
should throw an exception indicating that the import is ambiguous. Note
that if the extension is explicitly specified, a stylesheet with the
opposite extension may exist.</p>
</li>
<li>
<p>If none of the possible paths is valid, the importer should perform the
same resolution on the URL followed by <code class="prettyprint">/index</code>. In the example above,
it would look for:</p>
<ul>
<li>
<code class="prettyprint">foo/bar/baz/_index.sass</code>
</li>
<li>
<code class="prettyprint">foo/bar/baz/index.sass</code>
</li>
<li>
<code class="prettyprint">foo/bar/baz/_index.scss</code>
</li>
<li>
<code class="prettyprint">foo/bar/baz/index.scss</code>
</li>
</ul>
<p>As above, if the importer finds a stylesheet at more than one of these
URLs, it should throw an exception indicating that the import is
ambiguous.</p>
</li>
</ul>
<p>If no stylesheets are found, the importer should return <code class="prettyprint">null</code>.</p>
<p>Calling {@see \ScssPhp\ScssPhp\Importer\canonicalize} multiple times with the same URL must return the
same result. Calling {@see \ScssPhp\ScssPhp\Importer\canonicalize} with a URL returned by {@see \ScssPhp\ScssPhp\Importer\canonicalize}
must return that URL. Calling {@see \ScssPhp\ScssPhp\Importer\canonicalize} with a URL relative to one
returned by {@see \ScssPhp\ScssPhp\Importer\canonicalize} must return a meaningful result.</p>
</div>
<table class="table">
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
</table>
<h3>Arguments</h3>
<div class="subelement argument">
<h4>url</h4>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
\League\Uri\Contracts\UriInterface</code><p></p>
</div>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
<h3>Response</h3>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
?\League\Uri\Contracts\UriInterface</code><p></p>
</div>
</div>
</div>
<a id="method_couldCanonicalize"></a>
<div class="element clickable method public method_couldCanonicalize" data-toggle="collapse" data-target=".method_couldCanonicalize .collapse">
<h2>Without accessing the filesystem, returns whether passing $url to
{@see canonicalize} could possibly return $canonicalUrl.</h2>
<pre>couldCanonicalize(\League\Uri\Contracts\UriInterfaceurl, \League\Uri\Contracts\UriInterfacecanonicalUrl) : bool</pre>
<div class="labels">
</div>
<div class="row collapse">
<div class="detail-description">
<div class="long_description"><p>This is expected to be very efficient, and subclasses are allowed to
return false positives if it would be inefficient to determine whether
$url would actually resolve to $canonicalUrl. Subclasses are not allowed
to return false negatives.</p>
</div>
<table class="table">
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
</table>
<h3>Arguments</h3>
<div class="subelement argument">
<h4>url</h4>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
\League\Uri\Contracts\UriInterface</code><p></p>
</div>
<div class="subelement argument">
<h4>canonicalUrl</h4>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
\League\Uri\Contracts\UriInterface</code><p></p>
</div>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
<h3>Response</h3>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
bool</code><p></p>
</div>
</div>
</div>
<a id="method_getContainingUrl"></a>
<div class="element clickable method protected method_getContainingUrl" data-toggle="collapse" data-target=".method_getContainingUrl .collapse">
<h2>The canonical URL of the stylesheet that caused the current {@see canonicalize}
invocation.</h2>
<pre>getContainingUrl() : ?\League\Uri\Contracts\UriInterface</pre>
<div class="labels">
<span class="label">final</span> </div>
<div class="row collapse">
<div class="detail-description">
<div class="long_description"><p>This is only set when the containing stylesheet has a canonical URL, and
when the URL being canonicalized is either relative or has a scheme for
which {@see \ScssPhp\ScssPhp\Importer\isNonCanonicalScheme} returns <code class="prettyprint">true</code>. This restriction ensures that
canonical URLs are always interpreted the same way regardless of their
context.</p>
<p>Subclasses should only access this from within calls to {@see \ScssPhp\ScssPhp\Importer\canonicalize}.
Outside of that context, its value is undefined and subject to change.</p>
</div>
<table class="table">
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
</table>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
<h3>Response</h3>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
?\League\Uri\Contracts\UriInterface</code><p></p>
</div>
</div>
</div>
<a id="method_isFromImport"></a>
<div class="element clickable method protected method_isFromImport" data-toggle="collapse" data-target=".method_isFromImport .collapse">
<h2>Whether the current {@see canonicalize} invocation comes from an `@import`
rule.</h2>
<pre>isFromImport() : bool</pre>
<div class="labels">
<span class="label">final</span> </div>
<div class="row collapse">
<div class="detail-description">
<div class="long_description"><p>When evaluating <code class="prettyprint">@import</code> rules, URLs should canonicalize to an
<a href="https://sass-lang.com/documentation/at-rules/import#import-only-files">import-only file</a> if one exists for the URL being canonicalized.
Otherwise, canonicalization should be identical for <code class="prettyprint">@import</code> and <code class="prettyprint">@use</code>
rules.</p>
<p>Subclasses should only access this from within calls to {@see \ScssPhp\ScssPhp\Importer\canonicalize}.
Outside of that context, its value is undefined and subject to change.</p>
</div>
<table class="table">
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
</table>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
<h3>Response</h3>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
bool</code><p></p>
</div>
</div>
</div>
<a id="method_isNonCanonicalScheme"></a>
<div class="element clickable method public method_isNonCanonicalScheme" data-toggle="collapse" data-target=".method_isNonCanonicalScheme .collapse">
<h2>Returns whether the given URL scheme (without `:`) should be considered
&quot;non-canonical&quot; for this importer.</h2>
<pre>isNonCanonicalScheme(stringscheme) : bool</pre>
<div class="labels">
</div>
<div class="row collapse">
<div class="detail-description">
<div class="long_description"><p>An importer may not return a URL with a non-canonical scheme from
{@see \ScssPhp\ScssPhp\Importer\canonicalize}. In exchange, {@see \ScssPhp\ScssPhp\Importer\getContainingUrl} is available within
{@see \ScssPhp\ScssPhp\Importer\canonicalize} for absolute URLs with non-canonical schemes so that the
importer can resolve those URLs differently based on where they're loaded.</p>
<p>This must always return the same value for the same $scheme. It is
expected to be very efficient.</p>
</div>
<table class="table">
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
</table>
<h3>Arguments</h3>
<div class="subelement argument">
<h4>scheme</h4>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
string</code><p></p>
</div>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
<h3>Response</h3>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
bool</code><p></p>
</div>
</div>
</div>
<a id="method_load"></a>
<div class="element clickable method public method_load" data-toggle="collapse" data-target=".method_load .collapse">
<h2>Loads the Sass text for the given $url, or returns `null` if
this importer can&#039;t find the stylesheet it refers to.</h2>
<pre>load(\League\Uri\Contracts\UriInterfaceurl) : ?\ScssPhp\ScssPhp\Importer\ImporterResult</pre>
<div class="labels">
<span class="label">abstract</span> </div>
<div class="row collapse">
<div class="detail-description">
<div class="long_description"><p>The $url comes from a call to {@see \ScssPhp\ScssPhp\Importer\canonicalize} for this importer.</p>
<p>When Sass encounters an <code class="prettyprint">@import</code> rule in a stylesheet, it first calls
{@see \ScssPhp\ScssPhp\Importer\canonicalize} and {@see \ScssPhp\ScssPhp\Importer\load} on the importer that first loaded that
stylesheet with the imported URL resolved relative to the stylesheet's
original URL. If either of those returns <code class="prettyprint">null</code>, it then calls
{@see \ScssPhp\ScssPhp\Importer\canonicalize} and {@see \ScssPhp\ScssPhp\Importer\load} on each importer in order with the URL as it
appears in the <code class="prettyprint">@import</code> rule.</p>
<p>If the importer finds a stylesheet at $url but it fails to load for some
reason, or if $url is uniquely associated with this importer but doesn't
refer to a real stylesheet, the importer may throw an exception that will
be wrapped by Sass.</p>
</div>
<table class="table">
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
<tr>
<th>
</th>
<td>
</td>
</tr>
</table>
<h3>Arguments</h3>
<div class="subelement argument">
<h4>url</h4>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
\League\Uri\Contracts\UriInterface</code><p></p>
</div>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
<h3>Response</h3>
<code>
Deprecated: Please use getType in phar:///app/lib/system/lib/phpdocumentor/lib/phpDocumentor.phar/src/phpDocumentor/Descriptor/Traits/CanHaveAType.php on line 50
?\ScssPhp\ScssPhp\Importer\ImporterResult</code><p></p>
</div>
</div>
</div>
</div>
</div>
<a id="\ScssPhp\ScssPhp\Importer\Importer"></a>
<ul class="breadcrumb">
<li><a href="index.html"><i class="icon-custom icon-class"></i></a></li>
<li><span class="divider">\</span><a href="\ScssPhp\ScssPhp\Importer">Importer</a></li>
<li class="active"><span class="divider">\</span><a href="\ScssPhp\ScssPhp\Importer\Importer">Importer</a></li>
</ul>
</div>
</div>
</div>
<footer class="span12">
Template is built using <a href="https://getbootstrap.com/">Twitter Bootstrap 2</a> and icons provided by
<a href="https://glyphicons.com/">Glyphicons</a>.<br/>
Documentation is powered by <a href="https://www.phpdoc.org/">phpDocumentor </a> and<br/>
generated on Thu, 21 Nov 2024 01:33:24 +0000.<br/>
</footer>
</body>
</html>