Overview

Namespaces

  • Pharborist
    • Constants
    • ControlStructures
    • Exceptions
    • Functions
    • Generators
    • Namespaces
    • Objects
    • Operators
    • Types
    • Variables

Classes

  • Pharborist\Variables\CompoundVariableNode
  • Pharborist\Variables\GlobalStatementNode
  • Pharborist\Variables\ReferenceVariableNode
  • Pharborist\Variables\StaticVariableNode
  • Pharborist\Variables\StaticVariableStatementNode
  • Pharborist\Variables\VariableNode
  • Pharborist\Variables\VariableVariableNode

Interfaces

  • Pharborist\Variables\VariableExpressionNode
  • Overview
  • Namespace
  • Class
 1: <?php
 2: namespace Pharborist\Objects;
 3: 
 4: use Pharborist\Token;
 5: use Pharborist\TokenNode;
 6: 
 7: trait VisibilityTrait {
 8:   /**
 9:    * @var TokenNode
10:    */
11:   protected $visibility;
12: 
13:   /**
14:    * @return TokenNode
15:    */
16:   public function getVisibility() {
17:     return $this->visibility;
18:   }
19: 
20:   /**
21:    * @param string|integer|TokenNode|NULL $visibility
22:    * @return $this
23:    */
24:   public function setVisibility($visibility) {
25:     if ($visibility === NULL) {
26:       $this->removeVisibility();
27:     }
28:     else {
29:       if ($visibility === 'private' || $visibility === T_PRIVATE) {
30:         $visibility = Token::_private();
31:       }
32:       elseif ($visibility === 'protected' || $visibility === T_PROTECTED) {
33:         $visibility = Token::_protected();
34:       }
35:       elseif ($visibility === 'public' || $visibility === T_PUBLIC) {
36:         $visibility = Token::_public();
37:       }
38: 
39:       if (isset($this->visibility)) {
40:         $this->visibility->replaceWith($visibility);
41:       }
42:       else {
43:         /** @var \Pharborist\ParentNode $this */
44:         $this->prepend([
45:           $visibility,
46:           Token::space(),
47:         ]);
48:         $this->visibility = $visibility;
49:       }
50:     }
51:     return $this;
52:   }
53: 
54:   /**
55:    * Remove the visibility modifier.
56:    */
57:   protected function removeVisibility() {
58:     // Remove whitespace after visibility keyword.
59:     $this->visibility->next()->remove();
60:     // Remove visibility keyword.
61:     $this->visibility->remove();
62:   }
63: }
64: 
Pharborist API documentation generated by ApiGen