Subversion-Projekte lars-tiefland.laravel_shop

Revision

Zur aktuellen Revision | Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/*
4
 * This file is part of Psy Shell.
5
 *
6
 * (c) 2012-2022 Justin Hileman
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Psy\TabCompletion\Matcher;
13
 
14
use Psy\Context;
15
use Psy\ContextAware;
16
 
17
/**
18
 * An abstract tab completion Matcher which implements ContextAware.
19
 *
20
 * The AutoCompleter service will inject a Context instance into all
21
 * ContextAware Matchers.
22
 *
23
 * @author Marc Garcia <markcial@gmail.com>
24
 */
25
abstract class AbstractContextAwareMatcher extends AbstractMatcher implements ContextAware
26
{
27
    /**
28
     * Context instance (for ContextAware interface).
29
     *
30
     * @var Context
31
     */
32
    protected $context;
33
 
34
    /**
35
     * ContextAware interface.
36
     *
37
     * @param Context $context
38
     */
39
    public function setContext(Context $context)
40
    {
41
        $this->context = $context;
42
    }
43
 
44
    /**
45
     * Get a Context variable by name.
46
     *
47
     * @param string $var Variable name
48
     *
49
     * @return mixed
50
     */
51
    protected function getVariable(string $var)
52
    {
53
        return $this->context->get($var);
54
    }
55
 
56
    /**
57
     * Get all variables in the current Context.
58
     *
59
     * @return array
60
     */
61
    protected function getVariables(): array
62
    {
63
        return $this->context->getAll();
64
    }
65
}