Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Mixin.php

class Mixin

Same name in this branch
  1. 11.1.x vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Mixin.php \phpDocumentor\Reflection\DocBlock\Tags\Mixin

Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows:

  • If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method.
  • Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited.
  • If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the [root][] path if specified.

Example of a simple mixin: package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = "/v1/{resource=**}:getAcl"; } } package google.storage.v2; service Storage { rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = "/v2/{resource=**}"; } } Example of a mixin configuration: apis:

  • name: google.storage.v2.Storage mixins:

    • name: google.acl.v1.AccessControl

The mixin construct implies that all methods in `AccessControl` are also declared with same name and request/response types in `Storage`. A documentation generator or annotation processor will see the effective `Storage.GetAcl` method after inheriting documentation and annotations as follows: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = "/v2/{resource=**}:getAcl"; } ... } Note how the version in the path pattern changed from `v1` to `v2`. If the `root` field in the mixin is specified, it should be a relative path under which inherited HTTP paths are placed. Example: apis:

  • name: google.storage.v2.Storage mixins:

    • name: google.acl.v1.AccessControl root: acls

This implies the following inherited HTTP annotation: service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; } ... }

Generated from protobuf message <code>google.protobuf.Mixin</code>

Hierarchy

  • class \Google\Protobuf\Internal\Message
    • class \Google\Protobuf\Mixin extends \Google\Protobuf\Internal\Message

Expanded class hierarchy of Mixin

1 string reference to 'Mixin'
Mixin::__construct in vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Mixin.php

File

vendor/google/protobuf/src/Google/Protobuf/Mixin.php, line 77

Namespace

Google\Protobuf
View source
class Mixin extends \Google\Protobuf\Internal\Message {
    
    /**
     * The fully qualified name of the interface which is included.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     */
    protected $name = '';
    
    /**
     * If non-empty specifies a path under which inherited HTTP paths
     * are rooted.
     *
     * Generated from protobuf field <code>string root = 2;</code>
     */
    protected $root = '';
    
    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $name
     *           The fully qualified name of the interface which is included.
     *     @type string $root
     *           If non-empty specifies a path under which inherited HTTP paths
     *           are rooted.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Protobuf\Api::initOnce();
        parent::__construct($data);
    }
    
    /**
     * The fully qualified name of the interface which is included.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     * @return string
     */
    public function getName() {
        return $this->name;
    }
    
    /**
     * The fully qualified name of the interface which is included.
     *
     * Generated from protobuf field <code>string name = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setName($var) {
        GPBUtil::checkString($var, True);
        $this->name = $var;
        return $this;
    }
    
    /**
     * If non-empty specifies a path under which inherited HTTP paths
     * are rooted.
     *
     * Generated from protobuf field <code>string root = 2;</code>
     * @return string
     */
    public function getRoot() {
        return $this->root;
    }
    
    /**
     * If non-empty specifies a path under which inherited HTTP paths
     * are rooted.
     *
     * Generated from protobuf field <code>string root = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setRoot($var) {
        GPBUtil::checkString($var, True);
        $this->root = $var;
        return $this;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
Message::$desc private property @ignore
Message::$unknown private property
Message::appendHelper private function
Message::byteSize public function @ignore
Message::clear public function Clear all containing fields.
Message::convertJsonValueToProtoValue private function
Message::defaultValue private function @ignore
Message::discardUnknownFields public function Clear all unknown fields previously parsed.
Message::existField private function @ignore
Message::fieldByteSize private function @ignore
Message::fieldDataOnlyByteSize private function @ignore
Message::fieldDataOnlyJsonByteSize private function @ignore
Message::fieldJsonByteSize private function @ignore
Message::hasOneof protected function
Message::initWithDescriptor private function @ignore
Message::initWithGeneratedPool private function @ignore
Message::jsonByteSize public function @ignore
Message::kvUpdateHelper private function
Message::mergeFrom public function Merges the contents of the specified message into current message.
Message::mergeFromArray protected function Populates the message from a user-supplied PHP array. Array keys
correspond to Message properties and nested message properties.
Message::mergeFromArrayJsonImpl private function
Message::mergeFromJsonArray protected function
Message::mergeFromJsonString public function Parses a json string to protobuf message.
Message::mergeFromString public function Parses a protocol buffer contained in a string.
Message::normalizeArrayElementsToMessageType private static function Tries to normalize the elements in $value into a provided protobuf
wrapper type $class. If $value is any type other than array, we do
not do any conversion, and instead rely on the existing protobuf
type checking. If $value is an array, we process…
Message::normalizeToMessageType private static function Tries to normalize $value into a provided protobuf wrapper type $class.
If $value is any type other than an object, we attempt to construct an
instance of $class and assign $value to it using the setValue method
shared by all wrapper types.
Message::parseFieldFromStream private function @ignore
Message::parseFieldFromStreamNoTag private static function @ignore
Message::parseFromJsonStream public function @ignore
Message::parseFromStream public function @ignore
Message::readOneof protected function
Message::readWrapperValue protected function
Message::repeatedFieldDataOnlyByteSize private function @ignore
Message::serializeFieldToJsonStream private function @ignore
Message::serializeFieldToStream private function @ignore
Message::serializeMapFieldToStream private function @ignore
Message::serializeRepeatedFieldToStream private function @ignore
Message::serializeSingularFieldToStream private function @ignore
Message::serializeToJsonStream public function @ignore
Message::serializeToJsonString public function Serialize the message to json string.
Message::serializeToStream public function @ignore
Message::serializeToString public function Serialize the message to string.
Message::skipField private function @ignore
Message::whichOneof protected function
Message::writeOneof protected function
Message::writeWrapperValue protected function
Message::__debugInfo public function
Mixin::$name protected property The fully qualified name of the interface which is included.
Mixin::$root protected property If non-empty specifies a path under which inherited HTTP paths
are rooted.
Mixin::getName public function The fully qualified name of the interface which is included.
Mixin::getRoot public function If non-empty specifies a path under which inherited HTTP paths
are rooted.
Mixin::setName public function The fully qualified name of the interface which is included.
Mixin::setRoot public function If non-empty specifies a path under which inherited HTTP paths
are rooted.
Mixin::__construct public function Constructor. Overrides Message::__construct
RSS feed
Powered by Drupal